使用 php 将本地文件加载到 bigquery 中
Posted
技术标签:
【中文标题】使用 php 将本地文件加载到 bigquery 中【英文标题】:Load a local file into bigquery with php 【发布时间】:2015-04-20 20:05:16 【问题描述】:希望使用 google-php-api 将本地文件加载到 bigquery 中,目前我正在使用:
$load = new Google_Service_Bigquery_JobConfigurationLoad();
$load->setDestinationTable($table);
$load->setSourceUris()
$load->setSourceFormat('NEWLINE_DELIMITED_JSON');
$load->setMaxBadRecords(1);
$config = new Google_Service_Bigquery_JobConfiguration();
$config->setLoad($load);
$job = new Google_Service_Bigquery_Job();
$job->setConfiguration($config);
$job->setKind('load');
return $this->service->jobs->insert(PROJECT, $job);
我遇到的问题是
$load->setSourceUris()
只接受 google 存储 uri,我想使用本地文件。或者,我可以一次将多行流式传输到 bigquery 中,但是我只想加载一个文件或“批量插入”有没有办法做到这一点?
【问题讨论】:
【参考方案1】:您只能加载上传到 Google Cloud Storage 的文件,不能上传本地文件。您需要先将文件上传到 GCS。
您可以从本地文件批量流式传输文件内容。
【讨论】:
虽然我不介意流式传输,但每个请求的推荐批量大小是多少?我需要平均每分钟插入 60000 个,并希望确保尽可能优化 您可以并行运行作业,流式插入有严格限制,请参见此处:cloud.google.com/bigquery/streaming-data-into-bigquery#quota 没有太多可调整的地方,您有 HTTP 请求大小限制。以上是关于使用 php 将本地文件加载到 bigquery 中的主要内容,如果未能解决你的问题,请参考以下文章
使用本地文件通过 java 库加载 Google BigQuery 表
将数据从 BigQuery 导出到本地 PostgreSQL/MySql 数据库
使用 Google Cloud Datalab 时如何将 .gz 文件加载到 BigQuery?
BigQuery:如何使用传输 API 将文件从 GCS 加载到现有表?
使用 Python,将 google.cloud.bigquery.job.query.QueryJob 输出保存到本地 JSON 文件