如何以 CSV 格式将数据从 Bigquery 导出到外部服务器?

jfk83

我需要自动化一个过程,以从 Google Big Query 中提取数据并导出到 GCP 外部外部服务器中的外部 CSV。

我只是在研究如何做到这一点,我发现了一些可以从我的外部服务器运行的命令。但我更喜欢在 GCP 中做所有事情以避免可能出现的问题。

在 Google 存储中运行对 CSV 的查询

bq --location=US extract --compression GZIP 'dataset.table' gs://example-bucket/myfile.csv

从 Google Storage 下载 csv

gsutil cp gs://[BUCKET_NAME]/[OBJECT_NAME] [OBJECT_DESTINATION]

但我想听听你的建议

琼·格劳·诺埃尔

如果您想完全自动化此过程,我会执行以下操作:

  1. 创建一个云函数来处理导出

这是更轻量级的解决方案,因为 Cloud Functions 是无服务器的,并提供了使用客户端库实现代码的灵活性请参阅快速入门,我建议您使用控制台来创建函数以开始使用。

在这个例子中,我建议您从 HTTP 请求中触发 Cloud Function ,即当函数 URL 被调用时,它将运行其中的代码。

Python 中的示例 Cloud Function 代码,它在发出 HTTP 请求时创建导出:

主文件

from google.cloud import bigquery

def hello_world(request):
    project_name = "MY_PROJECT"
    bucket_name = "MY_BUCKET"
    dataset_name = "MY_DATASET"
    table_name = "MY_TABLE"
    destination_uri = "gs://{}/{}".format(bucket_name, "bq_export.csv.gz")

    bq_client = bigquery.Client(project=project_name)

    dataset = bq_client.dataset(dataset_name, project=project_name)
    table_to_export = dataset.table(table_name)

    job_config = bigquery.job.ExtractJobConfig()
    job_config.compression = bigquery.Compression.GZIP

    extract_job = bq_client.extract_table(
        table_to_export,
        destination_uri,
        # Location must match that of the source table.
        location="US",
        job_config=job_config,
    )  
    return "Job with ID {} started exporting data from {}.{} to {}".format(extract_job.job_id, dataset_name, table_name, destination_uri)

要求.txt

google-cloud-bigquery

请注意,作业将在后台异步运行,您将收到带有作业 ID 的返回响应,您可以使用它来检查 Cloud Shell 中导出作业的状态,方法是运行:

bq show -j <job_id>
  1. 创建Cloud Scheduler计划作业

按照本文档开始。您可以使用标准 cron 格式设置频率,例如0 0 * * *每天午夜运行作业。

作为目标,选择HTTP,在 URL 中放置 Cloud Function HTTP URL(您可以在控制台中的 Cloud Function details 内的 Trigger 选项卡下找到它),然后HTTP method选择GET

创建它,您可以通过按下Run now控制台中按钮在Cloud Scheduler 中对其进行测试

  1. 同步您的外部服务器和存储桶

到目前为止,您只安排了每 24 小时运行一次的导出,现在要将存储桶内容与本地计算机同步,您可以使用该gsutil rsync命令。如果要保存导入,可以说my_exports文件夹,您可以在外部服务器中运行:

gsutil rsync gs://BUCKET_WITH_EXPORTS /local-path-to/my_exports

要在您的服务器中定期运行此命令,您可以外部服务器内的 crontab 中创建一个标准的cron 作业,每天运行,仅在 bigquery 导出后几个小时运行,以确保导出已完成.

额外的

我已将 Cloud Function 中的大部分变量硬编码为始终相同。但是,您可以向函数发送参数,如果您执行POST请求而不是GET请求,并将参数作为数据发送到正文中。

例如,您必须更改 Cloud Scheduler 作业以向POSTCloud Function HTTP URL发送请求,并且在同一位置您可以设置正文以发送有关tabledataset的参数bucket这将允许您在不同的时间从不同的表和不同的存储桶运行导出。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何以CSV表格格式将原始数据Feed从Google Big Query导出到R服务器?

来自分类Dev

如何以特定格式将数据从数据透视表导出到.csv?

来自分类Dev

将数据从bigquery导出到csv

来自分类Dev

BigQuery将表格导出到CSV文件

来自分类Dev

如何将mongoDB数据导出为CSV格式?

来自分类Dev

如何将mongoDB数据导出为CSV格式?

来自分类Dev

将BigQuery表以CSV或JSON格式导出到GCS,生成文件类型文件

来自分类Dev

每天如何将数据从Cloud SQL导出到BigQuery?

来自分类Dev

将所有用户从Active Directory服务器导出到CSV

来自分类Dev

将表从Postgres数据库(服务器上)导出到Java中的CSV文件(本地)

来自分类Dev

将mysql数据导出到localhost中的csv下载文件中,但不在服务器中

来自分类Dev

如何将Logstash数据导出到外部数据库

来自分类Dev

如何将Meteor服务器连接到外部Websocket / Socket IO API?

来自分类Dev

如何将大文件从Google App Engine传输到外部服务器

来自分类Dev

如何将Meteor服务器连接到外部Websocket / Socket IO API?

来自分类Dev

有人如何将数据从MetaTrader 4/5终端发送到外部服务器?

来自分类Dev

如何将角度生成的表从数据库导出为csv格式?

来自分类Dev

如何将文件从SVN导出到远程FTP服务器

来自分类Dev

如何将文件从SVN导出到远程FTP服务器

来自分类Dev

如何以适合 CSV 导出的格式按 ID 对行进行分组?

来自分类Dev

如何以 csv 或 txt 格式导出带有串联名称的表格?

来自分类Dev

如何以随机顺序将数据帧写入hdfs csv?

来自分类Dev

如何将PostgreSQL中的结果数据导出到.CSV?

来自分类Dev

如何使用Java将数据从Cassandra导出到CSV文件

来自分类Dev

如何使用jdbc将数据从Postgresql导出到.csv文件?

来自分类Dev

Alasql如何将数据导出到CSV

来自分类Dev

如何将Nagios数据导出到CSV?

来自分类Dev

Alasql如何将数据导出到CSV

来自分类Dev

如何将TensorFlow培训数据导出到CSV

Related 相关文章

  1. 1

    如何以CSV表格格式将原始数据Feed从Google Big Query导出到R服务器?

  2. 2

    如何以特定格式将数据从数据透视表导出到.csv?

  3. 3

    将数据从bigquery导出到csv

  4. 4

    BigQuery将表格导出到CSV文件

  5. 5

    如何将mongoDB数据导出为CSV格式?

  6. 6

    如何将mongoDB数据导出为CSV格式?

  7. 7

    将BigQuery表以CSV或JSON格式导出到GCS,生成文件类型文件

  8. 8

    每天如何将数据从Cloud SQL导出到BigQuery?

  9. 9

    将所有用户从Active Directory服务器导出到CSV

  10. 10

    将表从Postgres数据库(服务器上)导出到Java中的CSV文件(本地)

  11. 11

    将mysql数据导出到localhost中的csv下载文件中,但不在服务器中

  12. 12

    如何将Logstash数据导出到外部数据库

  13. 13

    如何将Meteor服务器连接到外部Websocket / Socket IO API?

  14. 14

    如何将大文件从Google App Engine传输到外部服务器

  15. 15

    如何将Meteor服务器连接到外部Websocket / Socket IO API?

  16. 16

    有人如何将数据从MetaTrader 4/5终端发送到外部服务器?

  17. 17

    如何将角度生成的表从数据库导出为csv格式?

  18. 18

    如何将文件从SVN导出到远程FTP服务器

  19. 19

    如何将文件从SVN导出到远程FTP服务器

  20. 20

    如何以适合 CSV 导出的格式按 ID 对行进行分组?

  21. 21

    如何以 csv 或 txt 格式导出带有串联名称的表格?

  22. 22

    如何以随机顺序将数据帧写入hdfs csv?

  23. 23

    如何将PostgreSQL中的结果数据导出到.CSV?

  24. 24

    如何使用Java将数据从Cassandra导出到CSV文件

  25. 25

    如何使用jdbc将数据从Postgresql导出到.csv文件?

  26. 26

    Alasql如何将数据导出到CSV

  27. 27

    如何将Nagios数据导出到CSV?

  28. 28

    Alasql如何将数据导出到CSV

  29. 29

    如何将TensorFlow培训数据导出到CSV

热门标签

归档