将数据提取到 BigQuery 的最佳方式
Best way to ingest data to bigquery
我有异构源,例如驻留在 prem 上的平面文件,json 在共享点上,api 提供某某数据。将数据引入 bigquery 环境的最佳 etl 工具是什么?
我是 GCP 的幼儿园学生 :)
提前致谢
有很多解决方案可以实现这一点。这取决于几个因素,其中一些是:
- 数据摄取频率
- 数据是否需要
在写入 bigquery 之前进行操作(您的文件可能不会
格式正确)
- 这是手动完成还是自动完成
- 正在写入的数据大小
如果您只是在寻找 ETL 工具,您可以找到很多。如果您计划将其扩展到许多管道,您可能需要查看更高级的工具,如 Airflow,但如果您只有几个 one-off 进程,则可以在 GCP 中设置 Cloud Function 来完成此操作。您可以安排它(通过 cron),通过 HTTP 端点调用它,或 pub/sub。您可以查看如何完成此操作的示例 here
经过多次尝试和 datalake/datawarehouse 设计和架构,我只能向您推荐一件事:尽快在 BigQuery 中提取数据;无论 format/transformation.
然后,在 BigQuery 中,执行查询以格式化、清理、汇总和评估您的数据。这不是 ETL,而是 ELT:您首先加载数据,然后转换它们。
它更快、更便宜、更简单,并且仅基于 SQL。
仅当您仅使用 BigQuery 作为目标时它才有效。
如果您是白手起家并且没有随身携带的遗留工具,则以下 GCP 托管产品针对您的用例:
Cloud Data Fusion,“一种完全托管的 code-free 数据集成服务,可帮助用户有效地构建和管理 ETL/ELT 数据管道”
Cloud Composer,“一种完全托管的数据工作流编排服务,使您能够创作、安排和监控管道”
Dataflow,“一种完全托管的流分析服务,可通过自动缩放和批处理最大限度地减少延迟、处理时间和成本”
(不考虑使用云 运行、调度程序、工作流、虚拟机等的无数数据集成工具和完全定制的解决方案)
选择一个取决于您的技术技能、real-time 处理需求和预算。正如 Guillaume Blaquiere 所提到的,如果 BigQuery 是您唯一的目的地,您应该尝试利用 BigQuery 的处理能力进行数据转换。
我有异构源,例如驻留在 prem 上的平面文件,json 在共享点上,api 提供某某数据。将数据引入 bigquery 环境的最佳 etl 工具是什么?
我是 GCP 的幼儿园学生 :)
提前致谢
有很多解决方案可以实现这一点。这取决于几个因素,其中一些是:
- 数据摄取频率
- 数据是否需要 在写入 bigquery 之前进行操作(您的文件可能不会 格式正确)
- 这是手动完成还是自动完成
- 正在写入的数据大小
如果您只是在寻找 ETL 工具,您可以找到很多。如果您计划将其扩展到许多管道,您可能需要查看更高级的工具,如 Airflow,但如果您只有几个 one-off 进程,则可以在 GCP 中设置 Cloud Function 来完成此操作。您可以安排它(通过 cron),通过 HTTP 端点调用它,或 pub/sub。您可以查看如何完成此操作的示例 here
经过多次尝试和 datalake/datawarehouse 设计和架构,我只能向您推荐一件事:尽快在 BigQuery 中提取数据;无论 format/transformation.
然后,在 BigQuery 中,执行查询以格式化、清理、汇总和评估您的数据。这不是 ETL,而是 ELT:您首先加载数据,然后转换它们。
它更快、更便宜、更简单,并且仅基于 SQL。
仅当您仅使用 BigQuery 作为目标时它才有效。
如果您是白手起家并且没有随身携带的遗留工具,则以下 GCP 托管产品针对您的用例:
Cloud Data Fusion,“一种完全托管的 code-free 数据集成服务,可帮助用户有效地构建和管理 ETL/ELT 数据管道”
Cloud Composer,“一种完全托管的数据工作流编排服务,使您能够创作、安排和监控管道”
Dataflow,“一种完全托管的流分析服务,可通过自动缩放和批处理最大限度地减少延迟、处理时间和成本”
(不考虑使用云 运行、调度程序、工作流、虚拟机等的无数数据集成工具和完全定制的解决方案)
选择一个取决于您的技术技能、real-time 处理需求和预算。正如 Guillaume Blaquiere 所提到的,如果 BigQuery 是您唯一的目的地,您应该尝试利用 BigQuery 的处理能力进行数据转换。