我想使用Cloud Dataflow从MySQL加载数据到BigQuery。任何人都可以分享文章或工作经验,从MySQL加载数据到BigQuery使用云数据流与Python语言?谢谢你
gg58donl1#
您可以使用apache_beam.io.jdbc读取MySQL数据库,使用BigQuery I/O写入BigQuery。Beam知识是意料之中的,所以我建议先看看Apache Beam Programming Guide。如果您正在寻找一些预构建的东西,我们有Google提供的JDBC到BigQuery模板,它是开源的(here),但它是用Java编写的。
luaexgnf2#
如果只想将数据从MySQL复制到BigQuery,可以先将MySql数据导出到Cloud Storage,然后将此文件加载到BigQuery表中。我认为在这种情况下不需要使用Dataflow,因为您没有复杂的转换和业务逻辑,它只对应于一个副本。通过sql查询和gcloud cli将MySQL数据导出到Cloud Storage:
MySQL
BigQuery
MySql
Cloud Storage
Dataflow
sql
gcloud
gcloud sql export csv INSTANCE_NAME gs://BUCKET_NAME/FILE_NAME \ --database=DATABASE_NAME \ --offload \ --query=SELECT_QUERY \ --quote="22" \ --escape="5C" \ --fields-terminated-by="2C" \ --lines-terminated-by="0A"
通过gcloud cli和bq将csv文件加载到BigQuery表:
bq
csv
bq load \ --source_format=CSV \ mydataset.mytable \ gs://mybucket/mydata.csv \ ./myschema.json
./myschema.json是BigQuery表格纲要。
./myschema.json
2条答案
按热度按时间gg58donl1#
您可以使用apache_beam.io.jdbc读取MySQL数据库,使用BigQuery I/O写入BigQuery。
Beam知识是意料之中的,所以我建议先看看Apache Beam Programming Guide。
如果您正在寻找一些预构建的东西,我们有Google提供的JDBC到BigQuery模板,它是开源的(here),但它是用Java编写的。
luaexgnf2#
如果只想将数据从
MySQL
复制到BigQuery
,可以先将MySql
数据导出到Cloud Storage
,然后将此文件加载到BigQuery
表中。我认为在这种情况下不需要使用
Dataflow
,因为您没有复杂的转换和业务逻辑,它只对应于一个副本。通过
sql
查询和gcloud
cli将MySQL
数据导出到Cloud Storage
:通过
gcloud
cli和bq
将csv
文件加载到BigQuery
表:./myschema.json
是BigQuery
表格纲要。