Я выполняю задачу ETL, где запрашиваю таблицы в хранилище данных, чтобы узнать, содержит ли они идентификаторы в кадре данных (df), который был создан путем объединения таблиц из оперативной базы данных.
![enter image description here](https://i.stack.imgur.com/4nj0h.png)
Фрейм данных имеет только столбцы идентификаторов из каждой объединенной таблицы в оперативной базе данных. Я создал переменную для каждого из этих столбцов, например, 'billing_profiles_id', как показано ниже:
billing_profiles_dim_id = df['billing_profiles_dim_id']
Я пытаюсь повторять строку за строкой, чтобы увидеть, находится ли здесь идентификатор в таблице 'billing_profiles_dim' Хранилище данных. Там, где идентификатор отсутствует, я хочу заполнить таблицы DWH построчно, используя соответствующие строки идентификатора в ODB:
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"')
, которое в настоящее время я не могу решить. Я также знаю, что этот код может столкнуться с другой проблемой или двумя. Может кто-нибудь посмотреть, как я могу решить текущую проблему и, пожалуйста, убедитесь, что я иду по правильному пути?