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, но он не работает.

Ответы на вопрос(1)

Ваш ответ на вопрос