ETL到bigquery使用airflow而无需获得许可云存储/cloud sq

2024-05-13 06:49:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经用python完成了从MySql到bigQuery的ETL,但是因为我没有连接google云存储/cloud sql的权限,所以我必须在最后一个日期之前转储数据并进行分区,这种方式很简单,但是不值得,因为花费了很多时间,使用气流从MySql/mongo到bigQuery而不需要google云存储/云sql的ETL是可能的?在


Tags: 数据cloud权限sqlmongogoogle方式时间
2条回答

无论是否有气流,最简单、最有效的方法是:

  • 从数据源提取数据
  • 将数据加载到文件中
  • 将文件放入云存储
  • 对这些文件运行BigQuery加载作业(加载作业是免费的)

如果您不想创建一个文件并将其放入云存储中,还有另一种方法是可能的,更加复杂:将数据流式传输到BigQuery中。在

这样描述,它的接缝不太复杂,但是:

  • 在整个过程中,您必须保持与源和目标的连接
  • 您必须处理错误(读写),并能够在最后一个失败点重新启动
  • 为了优化性能,您必须执行大容量流写入BigQuery。块的大小必须明智地选择。
  • 气流奖励:您必须定义并编写自己的自定义操作符来执行此操作。

顺便说一句,我强烈建议遵循第一个解决方案。在

其他提示:现在,BigQuery can directly request into Cloud SQL database。如果您仍然需要MySQL数据库(用于在其中保留一些引用),可以将其迁移到CloudSQL中,并在Bigquery数据仓库和CloudSQL引用之间执行连接。在

使用flow将MySQL数据库同步到BigQuery确实是可能的。 当然,您需要确保已正确验证与Airflow DAG工作流的连接。 此外,请确保定义要将MySQL中的哪些列拉入并加载到BigQuery中。您还需要选择加载数据的方法。您希望增量加载还是完全加载?一定要制定一种消除重复数据拷贝(消除重复)的技术。在

您可以通过以下链接找到有关此主题的更多信息: How to Sync Mysql into Bigquery in realtime?

以下是设置bigquery帐户和身份验证的一个很好的资源: https://www.youtube.com/watch?v=fAwWSxJpFQ8

你也可以看看stichdata.com网站(https://www.stitchdata.com/integrations/mysql/google-bigquery/) Stitch MySQL集成将在几分钟内将您的MySQL ETL到Google BigQurey,并使其保持最新,而无需不断编写和维护ETL脚本。在这种情况下,Google云存储或云SQL将不再是必需的。在

有关使用Apache Airflow聚合BigQuery数据的更多信息,请参阅以下链接: https://cloud.google.com/blog/products/gcp/how-to-aggregate-data-for-bigquery-using-apache-airflow

相关问题 更多 >