BigQuery 加载较大的 CSV 文件失败

Posted

技术标签:

【中文标题】BigQuery 加载较大的 CSV 文件失败【英文标题】:BigQuery Load Fails on Larger CSV file 【发布时间】:2016-08-10 14:21:13 【问题描述】:

我在 Google 的 BigQuery 上加载较大的文件时遇到问题。问题是当我加载的文件少于 1000 行时,它加载时没有任何错误,但是当我加载的文件超过 10000 行时,我收到加载错误。

BigQuery error in load operation: Error processing job '......': Too many errors encountered.

工作是从 Redshift 导出数据并将其加载到 BigQuery。以下是我的工作方式(步骤):

1. Using "Unload" command, I am exporting Redshift table (having more than 160 columns) as a CSV file into S3
2. Transferring data to Google Cloud
3. Creating a table in BigQuery by specifying data source as Google Cloud bucket.

注意:我几乎使用了 Redshift“卸载”命令中的所有选项,但似乎 BigQuery 不了解更大文件的文件格式。

谁能建议这里可能是什么问题?

【问题讨论】:

@josh-haberman:你能看看我的问题吗? 【参考方案1】:

由于手头的任务是从 Redshift 导出到 BigQuery,您是否尝试过使用工具来自动化此过程?

https://github.com/iconara/bigshift

来自他们的自述文件:

Redshift 的 UNLOAD 生成的 CSV 无法加载到 BigQuery 否 无论您在两端指定什么选项。 Redshift可以引用所有 字段或无,但 BigQuery 不允许使用非字符串字段 引。布尔值和时间戳的格式不兼容,并且 他们希望引用字段中的引号以不同方式转义,以命名 一些事情。

这意味着 BigShift 所做的很多工作是确保数据 从 Redshift 转储的内容与 BigQuery 兼容。去做这个 它读取表模式并转换不同的数据类型,同时 数据被转储。引号被转义,时间戳被格式化,等等 开。

【讨论】:

@theo:你能看看吗? 下面是 bigshift 命令:bigshift --gcp-credentials bq_cred.json --aws-credentials aws_cred.json --rs-credentials rd_cred.json --rs-database customdata --rs-table temp_data --bq-dataset wedata --bq-table temp_data --s3-bucket bigquery-ds --cs-bucket bigquery-ds --max-bad-records 0 --steps unload,transfer,load,cleanup --no-compression false

以上是关于BigQuery 加载较大的 CSV 文件失败的主要内容,如果未能解决你的问题,请参考以下文章

将 300 MB 文件加载到 BigQuery 时出现超时错误

当Big Query加载失败并且CSV表遇到太多错误时,获取更多信息,放弃[重复]

Bigquery 加载列中包含“null”文本的 CSV 文件

将 csv 文件从云存储批量加载到 bigquery

如何在不创建架构的情况下将 CSV 文件加载到 BigQuery

无法将 csv 文件从 GCS 加载到 bigquery