從任何地方連接到SQL數據磚
2022年6月29日 在工程的博客
今天,我們很高興宣布開源的完整陣容連接器去,node . js,Python,以及一個新的CLI使它簡單的從任何應用程序開發人員連接到SQL數據磚的選擇。沿著相同的主題授權開發人員,我們也發表了官方數據磚JDBC驅動程序Maven中央存儲庫,使它可以使用它在你構建係統和自信地與您的應用程序包。
以來遺傳算法今年早些時候,磚SQL連接器采用Python已經巨大的從我們的開發者社區,平均每月超過100萬次的下載。我們現在正在興奮地宣布,連接器完全開源。
我們要感謝開源項目的貢獻者,我們的新磚SQL的連接器提供了依據。我們邀請加入我們的社區GitHub和協作的未來數據連接。
磚SQL的司機去
去是一種流行的開放源碼語言通常用於建立可靠的雲計算和網絡服務和web應用程序。我們的開源司機實現了慣用數據庫/ sql標準的數據庫訪問。
這裏有一個快速的例子如何提交SQL查詢數據磚:
主要包進口(“數據庫/ sql”“日誌”“fmt”_"github.com/databricks/databricks-sql-go”)
/ /替換這些值常量(令牌=“dapi * * * * * * * * * * *”主機名=“* * * * * * * * .m.eheci.com”路徑=“/ sql / 1.0 /端點/ * * * * * * *”)函數主要(){dsn:= fmt.Sprintf (“磚:/ /:%(電子郵件保護)% %年代”、令牌、主機名、路徑)db,犯錯:= sql.Open (“磚”dsn)如果犯錯! = nil {log.Fatalf (“無法連接到% s: % s”dsn,犯錯)}推遲db.Close ()db.Query (“創建表的例子(INT id、文本VARCHAR (20))”)db.Query (“插入示例值(1,\“你好\”),(2,\“\”)”)行,犯錯:= db.Query (“SELECT * FROM榜樣”)如果犯錯! = nil {log.Fatal (err)}為rows.Next () {var文本字符串varint id如果錯:=行。掃描(id、之外);犯錯! = nil {log.Fatal (err)}fmt.Printf (" % d % s \ n "、id、文本)}
}
輸出:
1你好2世界
你可以找到更多的例子例子回購的文件夾。我們期待著社區的貢獻和反饋GitHub。
磚SQL的節點。js的司機
node . jsis very popular for building services in JavaScript and TypeScript. The nativenode . js司機,完全與最低外部依賴打印稿,支持異步/等待慣用模式,非阻塞操作。它可以安裝使用NPM(節點。js 14 +):
美元npm我@databricks/sql
這是一個簡單的例子創建一個表,插入數據和查詢數據:
常量{DBSQLClient} =需要(“@databricks / sql”);
/ /替換這些值常量主機=“* * * * * * * * .m.eheci.com”;常量路徑=' / sql / 1.0 /端點/ * * * * * * *”;常量令牌=“dapi * * * * * * * * * * *’;異步函數執行(會議聲明){常量跑龍套= DBSQLClient.utils;常量操作=等待會話。執行Statement(statement, {runAsync:真正的});等待utils.waitUntilReady(操作);等待utils.fetchAll(操作);等待operation.close ();返回utils.getResult(操作).getValue ();}常量客戶=新DBSQLClient ();客戶端。連接({主機,路徑,令牌})(異步客戶= > {常量會話=等待client.openSession ();等待execute(會話,“創建表的例子(INT id、文本VARCHAR (20))”);等待execute(會話,“插入示例值(1,“你好”),(2,“世界”));常量結果=等待execute(會話,“SELECT * FROM例子”);控製台.table(結果);等待session.close ();client.close ();}).catch (錯誤= >{控製台. log(錯誤);});
輸出:
┌────┬─────────┐│id文本││├────┼─────────┤│1│“你好”││2│“世界”│└────┴─────────┘
司機還提供了直接getColumns等表元數據api。你可以找到更多的樣品在回購。我們期待的節點。js社區的反饋。
磚SQL CLI
磚SQL CLI是一個新的命令行接口(CLI)發出SQL查詢和執行所有SQL操作。因為它是建立在很受歡迎的開放源代碼DBCLI包,它支持自動完成和語法高亮顯示。CLI既支持交互式查詢以及運行SQL文件的能力。您可以使用pip安裝它(Python 3.7 +)。
python3- - - - - -m pip安裝磚- - - - - -sql- - - - - -cli
連接,您可以提供主機名、HTTP路徑,和帕特等命令行參數下,通過設置環境變量,或者通過編寫成的(憑證)部分配置文件。
dbsqlcli美元——主機名“* * * * * * * * .m.eheci.com”——http-path' / sql / 1.0 /端點/ * * * * * * *”——訪問令牌“dapi * * * * * * * * * * *’
現在,您可以從您的終端運行dbsqlcli,查詢字符串或. sql文件。
美元dbsqlcli - e“從samples.nyctaxi選擇*。旅行限製10
美元dbsqlcli - e query.sql
美元dbsqlcli - e query.sql> output.csv
使用——help或檢查回購更多的文檔和示例。
在Maven磚JDBC驅動程序
Java和JVM開發人員使用JDBC作為一個標準API來訪問數據庫。磚JDBC驅動程序現在可用Maven中央存儲庫,讓你在構建係統中使用這個驅動程序和CI / CD運行。包括它在您的Java項目中,應用程序的pom.xml添加以下條目:
<依賴>< groupid > com.databricks< artifactid > databricks-jdbc < / artifactid ><版本> 2.6.25-1 > < /版本< / groupid > < /依賴>
下麵是一些示例代碼使用JDBC驅動程序查詢數據:
進口java.sql。*;公共靜態無效主要(字符串[]args)拋出異常{/ /打開一個連接/ /替換下麵的值字符串令牌=“dapi * * * * *”;字符串url =" jdbc:磚:/ / * * * * * * * * .cloud.m.eheci.com: 443 /違約;”+“運輸方式= http; ssl = 1; AuthMech = 3; httpPath = sql / protocolv1 / o / * * * * *;”+“UID =令牌;”+" PWD = "+令牌;試一試(連接康涅狄格州= DriverManager.getConnection (url);=聲明支撐conn.createStatement ();ResultSet rs = stmt.executeQuery (“從samples.nyctaxi.trips SELECT *”),){/ /從結果集中提取數據而(rs.next ()) {/ /獲取列名system . out。打印(ID:“+ rs.getString (“col_name”));}}}
連接到Lakehouse從任何地方
這些添加磚SQL現在有本地連接到Python,走,節點。js、CLI ODBC / JDBC,以及一個新的SQL執行REST API的私人預覽。我們有令人興奮的路線圖上即將到來的新特性,包括:額外的身份驗證方案,支持統一目錄,支持SQLAlchemy,和性能改進。我們迫不及待地想看到所有的數據應用,我們的合作夥伴和開發人員社區將與磚構建SQL。
數據倉庫是一個Lakehouse最好的。我們感到興奮,使每個人都連接到lakehouse從任何地方!請嚐試連接器,我們很樂意聽到您的反饋和建議下一步建設!(GitHub和聯係我們磚社區)
加入的談話磚社區data-obsessed同行在哪裏聊天關於數據+人工智能峰會2022公告和更新。學習。網絡。慶祝。