砖SQL司机走了
的砖SQL司机走了是一个去库,允许您使用代码到砖计算资源上运行SQL命令。
DSN连接字符串连接
访问集群和SQL仓库使用sql.Open ()
创建一个数据库处理通过数据源名称(DSN)连接字符串。这个代码示例检索一个环境变量命名的DSN连接字符串DATABRICKS_DSN
:
包主要进口(“数据库/ sql”“操作系统”_"github.com/databricks/databricks-sql-go”)函数主要(){dsn:=操作系统。采用(“DATABRICKS_DSN”)如果dsn= =”“{恐慌(“没有连接字符串。”+“设置DATABRICKS_DSN环境变量,再试一次。”)}db,犯错:=sql。开放(“砖”,dsn)如果犯错! =零{恐慌(犯错)}推迟db。关闭()如果犯错:=db。平();犯错! =零{恐慌(犯错)}}
指定DSN连接字符串以正确的格式,使用以下语法,地点:
(你的令牌)
是你的砖的个人访问令牌的需求。(工作空间主机名)
是服务器主机名价值的需求。(端口数量)
是港口价值的需求。(端点HTTP路径)
是HTTP路径价值的需求。参数值
是一个或多个可选参数在本文的稍后部分列出。
令牌(你的令牌):@(工作区主机名):(端口号)(HTTP路径端点)?参数=价值
例如,对于一个集群:
令牌:dapi12345678901234567890123456789012@dbc-a1b2345c-d6e7.cloud.www.neidfyre.com: 443 / sql / protocolv1 / o / 1234567890123456/1234 - 567890 abcdefgh
例如,对于一个SQL仓库:
令牌:dapi12345678901234567890123456789012@dbc-a1b2345c-d6e7.cloud.www.neidfyre.com: 443 / sql / 1.0 /端点/ a1b234c5678901d2
请注意
作为一个安全最佳实践,您不应该硬编码这个DSN连接字符串到您的代码。相反,你应该检索这个DSN连接字符串从一个安全的位置。例如,在本文前面的代码示例使用了一个环境变量。
可选参数
支持可选的连接参数可以指定
参数值
,包括:目录
在会话:设置初始目录的名字。模式
:设置初始模式名称在会话中。maxRows
:设置行获取每个请求的最大数量。默认值是10000年
。超时
:添加超时(秒)为服务器查询执行。默认是没有超时。userAgentEntry
:用于识别合作伙伴。bob体育外网下载有关更多信息,请参见你伴侣的文档。
支持会话参数可以指定可选的
参数值
,包括:ansi_mode
:一个布尔值的字符串。真正的
对于会话语句遵守规则指定的ANSI SQL规范。系统默认的是错误的。时区
:例如,一个字符串美国/ Los_Angeles
。设置时区的会话。系统默认是UTC。
例如,对于一个SQL仓库:
令牌:dapi12345678901234567890123456789012@dbc-a1b2345c-d6e7.cloud.www.neidfyre.com: 443 / sql / 1.0 /端点/ a1b234c5678901d2 ?目录= hive_metastore&schema = example&maxRows = 100超时= 60时区=美国/ Sao_Paulo&ansi_mode = true
联系一个新的连接器对象
另外,使用sql.OpenDB ()
创建一个数据库处理通过创建一个新的连接器对象dbsql.NewConnector ()
(连接到数据砖集群使用一个新的连接器对象和SQL仓库需要v1.0.0砖SQL司机去的或更高)。例如:
包主要进口(“数据库/ sql”“操作系统”“strconv”dbsql"github.com/databricks/databricks-sql-go”)函数主要(){港口,犯错:=strconv。Atoi(操作系统。采用(“DATABRICKS_PORT”))如果犯错! =零{恐慌(犯错)}连接器,犯错:=dbsql。NewConnector(dbsql。WithAccessToken(操作系统。采用(“DATABRICKS_ACCESS_TOKEN”)),dbsql。WithServerHostname(操作系统。采用(“DATABRICKS_HOST”)),dbsql。WithPort(港口),dbsql。WithHTTPPath(操作系统。采用(“DATABRICKS_HTTP_PATH”)),)如果犯错! =零{恐慌(犯错)}db:=sql。OpenDB(连接器)推迟db。关闭()如果犯错:=db。平();犯错! =零{恐慌(犯错)}}
请注意
作为一个安全最佳实践,你不应该硬编码访问令牌,服务器的主机名、端口和HTTP端点的路径字符串到您的代码。相反,你应该检索这些值从一个安全的位置。例如,前面的代码使用环境变量。
支持功能选项包括:
WithServerHostname(<工作区主机名>字符串)
:服务器主机名价值的需求。必需的。WithPort(<口>int)
:服务器的端口号,一般443年
。必需的。WithAccessToken(<你令牌>字符串)
:你的砖个人需求的访问令牌。必需的。WithHTTPPath(<端点HTTP路径>字符串)
:HTTP路径价值的需求。要求。WithInitialNamespace(<目录>字符串,<模式>字符串)
:目录和模式的名字在会话中。可选的。WithMaxRows(<马克斯行>int)
:行获取每个请求的最大数量。默认值是10000年。
可选的。WithSessionParams (< params-map >map [string]字符串)
:会话参数包括“时区”和“ansi_mode”。可选的。WithTimeout(<超时>持续时间)
。超时(time.Duration
服务器查询执行)。默认是没有超时。可选的。WithUserAgentEntry (< isv的名字+产品名称>字符串)
。用于识别合作伙伴。bob体育外网下载有关更多信息,请参见你伴侣的文档。可选的。
例如:
连接器,犯错:=dbsql。NewConnector(dbsql。WithServerHostname(操作系统。采用(“DATABRICKS_HOST”)),dbsql。WithPort(操作系统。采用(“DATABRICKS_PORT”)),dbsql。WithAccessToken(操作系统。采用(“DATABRICKS_ACCESS_TOKEN”)),dbsql。WithHTTPPath(操作系统。采用(“DATABRICKS_HTTP_PATH”)),dbsql。WithInitialNamespace(“hive_metastore”,“例子”),dbsql。WithMaxRows(One hundred.),dbsql。SessionParams(地图(字符串]字符串{“时区”:“美国/ Sao_Paulo”,“ansi_mode”:“真正的”}),dbsql。WithTimeout(时间。一分钟),dbsql。WithUserAgentEntry(“example-user”),)
查询数据
下面的代码示例演示了如何调用砖SQL司机去砖计算资源上运行一个基本的SQL查询。这个命令返回的前两行钻石
表。
的钻石
表是包含在样本数据集。这个表也在与笔记本电脑教程:查询数据。
这段代码示例检索DSN连接字符串从一个环境变量命名DATABRICKS_DSN
。
包主要进口(“数据库/ sql”“fmt”“操作系统”_"github.com/databricks/databricks-sql-go”)函数主要(){dsn:=操作系统。采用(“DATABRICKS_DSN”)如果dsn= =”“{恐慌(“没有连接字符串。”+“设置DATABRICKS_DSN环境变量,再试一次。”)}db,犯错:=sql。开放(“砖”,dsn)如果犯错! =零{恐慌(犯错)}推迟db。关闭()var(_c0字符串克拉字符串减少字符串颜色字符串清晰字符串深度字符串表字符串价格字符串x字符串y字符串z字符串)行,犯错:=db。查询(“SELECT *从违约。钻石限制2”)如果犯错! =零{恐慌(犯错)}推迟行。关闭()为行。下一个(){犯错:=行。扫描(&_c0,&克拉,&减少,&颜色,&清晰,&深度,&表,&价格,&x,&y,&z)如果犯错! =零{恐慌(犯错)}fmt。打印(_c0,”、“,克拉,”、“,减少,”、“,颜色,”、“,清晰,”、“,深度,”、“,表,”、“,价格,”、“,x,”、“,y,”、“,z,“\ n”)}犯错=行。犯错()如果犯错! =零{恐慌(犯错)}}
输出:
1、0.23、理想,E, SI2, 61.5, 55326, 3.95, 3.98, 2.43, 0.21,保险费,E, SI1, 59.8, 61326, 3.89, 3.84, 2.31
更多的例子,请参阅例子文件夹在砖/ databricks-sql-go GitHub库。