将文本文件 (.txt) 加载到 bigquery 表的最佳方法

Posted

技术标签:

【中文标题】将文本文件 (.txt) 加载到 bigquery 表的最佳方法【英文标题】:Best approach loading a text file (.txt) to bigquery table 【发布时间】:2020-01-23 11:41:59 【问题描述】:

关于将文本文件上传到 bigquery 表的最佳方法是什么,有人有任何实际的想法吗?我有一些压缩文本文件需要从远程 SFTP 服务器下载并将其加载到 bigquery 表中。我应该将它下载到谷歌云存储并从那里上传到 bigquery 以获得更快的速度吗?每个文本文件大约 5GB,并且会进一步增长。 谢谢。

【问题讨论】:

这是一项经常性的任务,还是一次性的? 本地数据源中的数据大小是多少? Sorry 应该是指文本文件 .txt。是的,它将在每个月底重复加载。 【参考方案1】:

根据documentation,如果您从本地数据源加载文件,首先要考虑的是有限制。

从本地数据源加载数据受到以下限制:

加载时不支持通配符和逗号分隔的列表 来自本地数据源的文件。文件必须单独加载。 使用经典 BigQuery 网页界面时,从本地数据加载的文件 源文件的大小不得超过 10 MB,并且包含的​​行数不得超过 16,000 行。

此外,通过上面提供的链接,还有如何使用控制台或 CLI 上传数据的说明。

不过,使用云存储,您可以利用长期存储,这意味着您无需将数据加载到 bigquery 中,而是将数据存储在 Cloud Storage 中。你可以阅读更多关于它的信息here。

最后,我希望你考虑两点External and Natives tables in bigquery。

原生表:由原生 BigQuery 存储支持的表。

外部表:由 BigQuery 外部存储支持的表。更多 信息,请参阅查询外部数据源。

换句话说,您可以使用原生表在 BigQuery 中导入完整数据。因此,在执行数据分析时,它往往会更快。同时,外部表不在 BigQuery 中存储数据,而是从外部源引用数据。

cost of storing in BigQuery 高于 Cloud storage。虽然,查询外部表比查询本机表要慢,主要是在文件非常大的情况下。最后,由于外部表是指向文件的指针,因此您不必等待数据加载。

【讨论】:

以上是关于将文本文件 (.txt) 加载到 bigquery 表的最佳方法的主要内容,如果未能解决你的问题,请参考以下文章

BigQuery - 加载序列文件

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

BigQuery:加载 excel 文件

使用 php 将本地文件加载到 bigquery 中

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

将数据从 .txt 保存并加载到正确的 texbox