【发布时间】:2020-02-10 16:46:20
【问题描述】:
我正在执行一项 ETL 任务,其中我正在查询数据仓库中的表,以查看它是否包含通过连接操作数据库中的表创建的 DataFrame (df) 中的 ID。
DataFrame 仅包含来自操作数据库中每个连接表的 ID 列。我为这些列中的每一列创建了一个变量,例如'billing_profiles_id' 如下:
billing_profiles_dim_id = df['billing_profiles_dim_id']
我正在尝试逐行迭代以查看此处的 ID 是否在数据仓库的“billing_profiles_dim”表中。如果 ID 不存在,我想使用 ODB 中匹配的 ID 行逐行填充 DWH 表:
for key in billing_profiles_dim_id:
sql = "SELECT * FROM billing_profiles_dim WHERE id = '"+str(key)+"'"
dwh_cursor.execute(sql)
result = dwh_cursor.fetchone()
if result == None:
sqlQuery = "SELECT * from billing_profile where id = '"+str(key)+"'"
sqlInsert = "INSERT INTO billing_profile_dim VALUES ('"+str(key)+"','"+billing_profile.name"')
op_cursor = op_connector.execute(sqlInsert)
billing_profile = op_cursor.fetchone()
至少到目前为止,我收到以下错误:
SyntaxError: EOL while scanning string literal
此错误消息指向括号结束处
sqlInsert = "INSERT INTO billing_profile_dim VALUES ('"+str(key)+"','"+billing_profile.name"')
我目前无法解决。我也知道这段代码可能会遇到另一个或两个问题。有人可以看看我如何解决当前的问题,并请确保我走的是正确的道路吗?
【问题讨论】:
标签: python mysql database etl star-schema