【问题标题】:How to export more than 16000 rows in bigquery table to local machine as CSV file?如何将 bigquery 表中的 16000 多行作为 CSV 文件导出到本地机器?
【发布时间】:2020-12-02 13:05:16
【问题描述】:

我想在 Bigquery 中导出我的 select 语句的输出。有“保存结果”选项可用,但它有 16,000 行的限制。

我怎样才能导出更多?

【问题讨论】:

    标签: google-cloud-platform google-bigquery


    【解决方案1】:

    如果您的数据超过 16,000 行,您需要将查询结果保存为 BigQuery 表。

    之后,使用任何可用选项(例如 Cloud Console、API、bq 或客户端库)将表中的export the data 导入 Google Cloud Storage。

    最后,您可以使用 Google Cloud Storage 中的任何可用方法(Cloud Console、API、gsutil 或客户端库)来download 本地环境中的 CSV 文件。

    暂时是你can't export data from a Table directly to a local file

    【讨论】:

    • 感谢 Daniel Ocando,但我们需要多次生成报告。每次都做这个过程非常耗时。在我们的数据集中也无法创建这么多表
    • 我完全同意,如果您需要某种自动化,使用 Cloud Console 将是错误的探索途径。
    • 您可以使用脚本,使用bq mk 创建表,bq query --destination_table 执行查询,bq extract -destination_forma CSV 传输到 GCS,最后使用 gsutil cp gs://[my-bucket]/[my-csv-file] .download to your cd。跨度>
    • 如果您对可以使用的表数量有某种限制,您可以使用 set an expiration time for the tablebq update command 或使用 bq rm 将其全部删除。跨度>
    • 遗憾的是,如果不遵守 16,000 行的限制,您将无法将文件直接导出到本地 PC。但是有一个公开的Feature Request,我建议你加注星标并关注。
    【解决方案2】:

    使用export function 是一个相当简单的步骤。您可以执行一个简单的查询直接导出到 GCS

    EXPORT DATA OPTIONS(
      uri='gs://MyBucket/path/to/file*.csv',
      format='CSV',
      overwrite=true,
      header=true,
      field_delimiter=',') AS
    SELECT * from MyTable WHERE condition.
    

    但是,生成多个文件的可能性很大。因此,您必须使用 gsutil 获取所有这些。

    Daniel 方案的优势在于,可以选择只将表格导出到一个文件中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-10
      • 2017-05-21
      • 2022-07-11
      • 1970-01-01
      • 2014-03-20
      相关资源
      最近更新 更多