通过 Jupyter Lab 中的 SQL 魔法连接到 SQL 服务器
Connecting to SQL Server via SQL magics in Jupyter Lab
我正在尝试使用 SQL 魔法通过 Jupyter Labs 连接到我们的远程 sql 服务器数据库。我可以使用传统的连接字符串进行连接,但是 SQL 魔法似乎不起作用(这意味着我做错了什么)。下面是工作中的 pyodbc 连接:
conn = pyodbc.connect('Driver={SQL Server};'
'Server=Server;'
'Database=DB;'
'Trusted_Connection=yes;')
但是当我尝试连接 magics 时出现错误,提示未提供连接字符串
%load_ext sql
%sql engine = create_engine("mssql+pyodbc://user:password@server/db")
理想情况下,我想使用 DSN 连接 Magics(我也尝试过但没有成功):
%load_ext sql
%sql engine = create_engine("mssql+pyodbc://DSN;Trusted_Connection = Yes")
对建立连接有帮助吗?
在 Jupyter 单元中尝试这个:
import urllib
params = urllib.parse.quote_plus("DRIVER={SQL SERVER};SERVER=Server;DATABASE=DB;TRUSTED_CONNECTION=YES")
"mssql+pyodbc:///?odbc_connect=%s" % params
然后 运行 单元格和 copy/paste 从其计算返回到魔法中的编码字符串。
%%sql mssql+pyodbc:///?odbc_connect=DRIVER%3D%7BSQL+SERVER%7D%3BSERVER%3DServer%3BDATABASE%3DDB%3BTRUSTED_CONNECTION%3DYES
[your SQL code here]
一种无需复制粘贴的编程方式是使用大括号:
connection_str = "DRIVER={SQL SERVER};SERVER=Server;DATABASE=DB;TRUSTED_CONNECTION=YES"
connection_str_quoted = urllib.parse.quote_plus(connection_str)
connection_uri = 'mssql+pyodbc:///?odbc_connect={}'.format(connection_str_quoted)
# this is how you would connect in sqlalchemy
import sqlalchemy
conn = sqlalchemy.create_engine(connection_uri)
%sql {connection_uri}
我正在尝试使用 SQL 魔法通过 Jupyter Labs 连接到我们的远程 sql 服务器数据库。我可以使用传统的连接字符串进行连接,但是 SQL 魔法似乎不起作用(这意味着我做错了什么)。下面是工作中的 pyodbc 连接:
conn = pyodbc.connect('Driver={SQL Server};'
'Server=Server;'
'Database=DB;'
'Trusted_Connection=yes;')
但是当我尝试连接 magics 时出现错误,提示未提供连接字符串
%load_ext sql
%sql engine = create_engine("mssql+pyodbc://user:password@server/db")
理想情况下,我想使用 DSN 连接 Magics(我也尝试过但没有成功):
%load_ext sql
%sql engine = create_engine("mssql+pyodbc://DSN;Trusted_Connection = Yes")
对建立连接有帮助吗?
在 Jupyter 单元中尝试这个:
import urllib
params = urllib.parse.quote_plus("DRIVER={SQL SERVER};SERVER=Server;DATABASE=DB;TRUSTED_CONNECTION=YES")
"mssql+pyodbc:///?odbc_connect=%s" % params
然后 运行 单元格和 copy/paste 从其计算返回到魔法中的编码字符串。
%%sql mssql+pyodbc:///?odbc_connect=DRIVER%3D%7BSQL+SERVER%7D%3BSERVER%3DServer%3BDATABASE%3DDB%3BTRUSTED_CONNECTION%3DYES
[your SQL code here]
一种无需复制粘贴的编程方式是使用大括号:
connection_str = "DRIVER={SQL SERVER};SERVER=Server;DATABASE=DB;TRUSTED_CONNECTION=YES"
connection_str_quoted = urllib.parse.quote_plus(connection_str)
connection_uri = 'mssql+pyodbc:///?odbc_connect={}'.format(connection_str_quoted)
# this is how you would connect in sqlalchemy
import sqlalchemy
conn = sqlalchemy.create_engine(connection_uri)
%sql {connection_uri}