将文本文件 (.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 表的最佳方法的主要内容,如果未能解决你的问题,请参考以下文章