我有异构源,比如驻留在prem上的平面文件、共享点上的json、提供数据的api等等。哪种是将数据引入bigquery环境的最佳etl工具?
我是GCP的一个更善良的花园学生:(
提前感谢
有很多解决方案可以实现这一点。这取决于几个因素,其中一些因素是:
- 数据摄入频率
- 数据是否需要在写入bigquery之前进行了操作(您的文件可能不会正确格式化(
- 这是手动完成还是自动完成
- 正在写入的数据的大小
如果你只是在寻找ETL工具,你可以找到很多。如果你计划将其扩展到许多管道,你可能想看看像Airflow这样的更高级的工具,但如果你只有几个一次性流程,你可以在GCP中设置一个云功能来实现这一点。您可以调度它(通过cron(,通过HTTP端点或pub/sub调用它。你可以在这里看到一个如何做到这一点的例子
经过几次尝试和数据仓库/数据仓库的设计和架构,我只能向您推荐一件事:在BigQuery中尽快获取数据;无论格式/转换如何。
然后,在BigQuery中,执行查询以格式化、清理、聚合和值化数据。这不是ETL,而是ELT:你从加载数据开始,然后转换它们。
它更快、更便宜、更简单,而且只基于SQL。
只有当您使用only BigQuery作为目的地时,它才有效
如果您从零开始,并且没有遗留工具可供携带,那么以下GCP管理的产品将针对您的用例:
-
云数据融合,";帮助用户有效地构建和管理ETL/ELT数据管道的完全管理的、无代码的数据集成服务";
-
Cloud Composer;一个完全管理的数据工作流编排服务,使您能够编写、调度和监控管道";
-
数据流;一种完全管理的流式分析服务,通过自动缩放和批量处理将延迟、处理时间和成本降至最低;
(不考虑使用云运行、调度程序、工作流、虚拟机等的大量数据集成工具和完全定制的解决方案(
选择一个取决于您的技术技能、实时处理需求和预算。正如Guillaume Blaquiere所提到的,如果BigQuery是您的唯一目的地,那么您应该尝试利用BigQuery的处理能力进行数据转换。