Вопрос : Как выполнить запросы SQL через Python для получения данных с нескольких серверов, которые могут иметь разные диалекты SQL (например, когда один серверный диалект использует TOP X, а другой SAMPLE X)?
В настоящее время у меня есть некоторый код, который позволяет мне выполнять запросы к каждому серверу отдельно (что недостаточно):
import pyodbc
import pandas as pd
cnxn = pyodbc.connect('DSN=dsn_name;UID=username;PWD=password')
query = str("""
SELECT *
FROM sqlserver1.tableA
""")
df = pd.read_sql(query, cnxn)
Цель : я хотел бы объединить данные с другого сервера, в основном я хотел бы иметь SQL-запрос на Python, который выглядит примерно так - обработка различных диалектов SQL:
query = str("""
SELECT *
FROM sqlserver1.tableA as sq
INNER JOIN teradataserver2.tableB as tera
ON sq.id = tera.id
""")
.. PS Я попробовал обходной путь, подобный этому:
import pyodbc
import pandas as pd
cnxnServer1 = pyodbc.connect('DSN=dsn_name1;UID=username;PWD=password')
cnxnServer2 = pyodbc.connect('DSN=dsn_name2;UID=username;PWD=password')
queryServer1 = str("""
SELECT *
FROM sqlserver1.tableA
""")
queryServer2 = str("""
SELECT *
FROM teradataserver2.tableB
""")
.. и затем использовал слияние панд.Но это слишком неэффективно .
Примечание : я запускаю Python 3.7