BigQuery для потоковой передачи 'insertAll' с PHP
Мы направляем большой объем данных на стороне сервера в BigQuery, используяGoogle-апи-PHP-клиент библиотека. Потоковая передача работает отлично, кроме производительности.
Наше нагрузочное тестирование дает нам среднее время 1000 мс (1 сек) для потоковой передачи одной строки в BigQuery. Мы не можем заставить клиента ждать более 200 мс. Мы проверили с меньшими полезными нагрузками, и время остается тем же. Асинхронные звонки на стороне клиента для нас не вариант.
Строка кода «узкое место»:
$service->tabledata->insertAll(PROJECT_NUMBER, DATA_SET, TABLE, $request);
Посмотрев под капот библиотеки, вызов для вставки строки - просто запрос cURL (Curl.php в библиотеке).
Есть ли способ изменить insertAll (), чтобы сделать его быстрее? Мы не заботимся о результате, поэтому увольнение сработало бы для нас. Мы попытались установить CURLOPT_CONNECTTIMEOUT_MS и CURLOPT_TIMEOUT_MS в базовом запросе cCURL, но он не работает.