磚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.m.eheci.com: 443 / sql / protocolv1 / o / 1234567890123456/1234 - 567890 abcdefgh

例如,對於一個SQL倉庫:

令牌:dapi12345678901234567890123456789012@dbc-a1b2345c-d6e7.cloud.m.eheci.com: 443 / sql / 1.0 /端點/ a1b234c5678901d2

請注意

作為一個安全最佳實踐,您不應該硬編碼這個DSN連接字符串到您的代碼。相反,你應該檢索這個DSN連接字符串從一個安全的位置。例如,在本文前麵的代碼示例使用了一個環境變量。

可選參數

  • 支持可選的連接參數可以指定參數值,包括:

    • 目錄在會話:設置初始目錄的名字。

    • 模式:設置初始模式名稱在會話中。

    • maxRows:設置行獲取每個請求的最大數量。默認值是10000年

    • 超時:添加超時(秒)為服務器查詢執行。默認是沒有超時。

    • userAgentEntry:用於識別合作夥伴。有關更多信息,請參見你伴侶的文檔。

  • 支持會話參數可以指定可選的參數值,包括:

    • ansi_mode:一個布爾值的字符串。真正的對於會話語句遵守規則指定的ANSI SQL規範。係統默認的是錯誤的。

    • 時區:例如,一個字符串美國/ Los_Angeles。設置時區的會話。係統默認是UTC。

例如,對於一個SQL倉庫:

令牌:dapi12345678901234567890123456789012@dbc-a1b2345c-d6e7.cloud.m.eheci.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”)函數主要(){港口,犯錯:=strconvAtoi(操作係統采用(“DATABRICKS_PORT”))如果犯錯! ={恐慌(犯錯)}連接器,犯錯:=dbsqlNewConnector(dbsqlWithAccessToken(操作係統采用(“DATABRICKS_ACCESS_TOKEN”)),dbsqlWithServerHostname(操作係統采用(“DATABRICKS_HOST”)),dbsqlWithPort(港口),dbsqlWithHTTPPath(操作係統采用(“DATABRICKS_HTTP_PATH”)),)如果犯錯! ={恐慌(犯錯)}db:=sqlOpenDB(連接器)推遲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的名字+產品名稱>字符串)。用於識別合作夥伴。有關更多信息,請參見你伴侶的文檔。可選的。

例如:

連接器,犯錯:=dbsqlNewConnector(dbsqlWithServerHostname(操作係統采用(“DATABRICKS_HOST”)),dbsqlWithPort(操作係統采用(“DATABRICKS_PORT”)),dbsqlWithAccessToken(操作係統采用(“DATABRICKS_ACCESS_TOKEN”)),dbsqlWithHTTPPath(操作係統采用(“DATABRICKS_HTTP_PATH”)),dbsqlWithInitialNamespace(“hive_metastore”,“例子”),dbsqlWithMaxRows(One hundred.),dbsqlSessionParams(地圖(字符串]字符串{“時區”:“美國/ Sao_Paulo”,“ansi_mode”:“真正的”}),dbsqlWithTimeout(時間一分鍾),dbsqlWithUserAgentEntry(“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庫。

額外的資源