我正在尝试将shell脚本移植到更易读的python版本.原始shell脚本在后台使用"&"启动多个进程(实用程序,监视器等).如何在python中实现相同的效果?我希望这些进程不会在python脚本完成时死掉.我确信它与守护进程的概念有某种关系,但我无法轻易找到如何做到这一点.
是否有任何指南可用于使用 Google Cloud SQL 作为数据流读取源和/或接收器?
在Apache Beam Python SDK 2.1.0 文档中,没有一章提到 Google Cloud SQL。但有关于 BigQuery 的文章。
当我阅读教程Performing ETL from a Relational Database into BigQuery时,我看到他们在此过程中使用导出到文件的数据作为源。这意味着中间必须有一个出口步骤,但这并不理想。
具体使用Cloud SQL时有什么需要注意的具体问题吗?对于源和接收器?
我正在尝试使用 python 管道连接到 CloudSQL。
实际情况
连接功能
def cloudSQL(input):
import pymysql
connection = pymysql.connect(host='<server ip>',
user='...',
password='...',
db='...')
cursor = connection.cursor()
cursor.execute("select ...")
connection.close()
result = cursor.fetchone()
if not (result is None):
yield input
Run Code Online (Sandbox Code Playgroud)
错误
这是使用 DataflowRunner 的错误消息
OperationalError: (2003, "Can't connect to MySQL server on '<server ip>' (timed out)")
Run Code Online (Sandbox Code Playgroud)
云SQL
我有 publicIP(使用 directrunner 从本地进行测试),并且我还尝试激活私有 IP 以查看这是否是与 DataflowRunner 连接的问题
选项2
我也尝试过
connection = pymysql.connect((unix_socket='/cloudsql/' + <INSTANCE_CONNECTION_NAME>,
user='...',
password='...',
db='...')
Run Code Online (Sandbox Code Playgroud)
出现错误:
OperationalError: (2003, "Can't connect to …
Run Code Online (Sandbox Code Playgroud) python google-cloud-sql google-cloud-platform google-cloud-dataflow