SQL Driver for Node.js
請注意
本文介紹了Databricks SQL Driver for Node.js,它是按原樣提供的,Databricks不通過客戶技術支持渠道支持它。問題和功能請求可以通過問題頁麵的磚/ databricks-sql-nodejs在GitHub回購。
Databricks SQL Driver for Node.js是一個node . js庫,允許您使用JavaScript代碼在Databricks計算資源上運行SQL命令。
需求
運行Node.js版本14或更高版本的開發機器。打印Node.js的安裝版本,使用這個命令
節點- v
.要安裝和使用不同版本的Node.js,可以使用以下工具節點版本管理器.節點包管理器(
npm
).Node.js的新版本已經包含npm
.檢查是否npm
已安裝,運行命令npm- v
.安裝npm
如果需要,您可以按照以下說明進行操作下載並安裝npm.的@databricks / sql寄來的包裹npm.安裝
@databricks / sql
包在你的Node.js項目中作為依賴,使用npm
在與項目相同的目錄中運行以下命令:npm我@databricks / sql
如果你想安裝和使用打印稿在你的Node.js項目中
devDependencies
,使用npm
在與項目相同的目錄中運行以下命令:npm i -D @types/node
的服務器主機名而且HTTP路徑值。
一個磚個人訪問令牌.
指定連接變量
為了訪問您的集群或SQL倉庫,Node.js的Databricks SQL Driver使用名為令牌
,server_hostname
而且http_path
,表示您的Databricks個人訪問令牌和您的集群或SQL倉庫的服務器主機名而且HTTP路徑值,分別。
Databricks的個人訪問令牌值令牌
類似於:dapi1ab2c34defabc567890123d4efa56789
.
的服務器主機名值server_hostname
類似於:dbc-a1b2345c-d6e7.cloud.www.eheci.com
.
的HTTP路徑值http_path
類似於:對於集群,sql / protocolv1 / o / 1234567890123456/1234 - 567890 abcdefgh
;對於SQL倉庫,/ sql / 1.0 /端點/ a1b234c5678901d2
.
請注意
作為安全最佳實踐,您不應該在代碼中硬編碼這些連接變量值。相反,您應該從安全位置檢索這些連接變量值。例如,本文後麵的代碼示例使用環境變量。
查詢數據
下麵的代碼示例演示了如何調用Node.js的Databricks SQL Driver在Databricks計算資源上運行基本的SQL查詢。對象的前兩行返回鑽石
表格
的鑽石
表包含在樣本數據集.這張表也有特色作為一名數據科學家,開始使用Databricks.
該代碼示例檢索令牌
,server_hostname
而且http_path
連接來自一組環境變量的變量值。這些環境變量的環境變量名如下:
DATABRICKS_TOKEN
,它表示來自需求的Databricks個人訪問令牌。DATABRICKS_SERVER_HOSTNAME
,表示服務器主機名從需求中獲得價值。DATABRICKS_HTTP_PATH
,表示HTTP路徑從需求中獲得價值。
您可以使用其他方法來檢索這些連接變量值。使用環境變量隻是眾多方法中的一種。
常量{DBSQLClient}=需要(“@databricks / sql”);var令牌=過程.env.DATABRICKS_TOKEN;varserverHostname=過程.env.DATABRICKS_SERVER_HOSTNAME;varhttpPath=過程.env.DATABRICKS_HTTP_PATH;如果(!令牌||!serverHostname||!httpPath){扔新錯誤("找不到服務器主機名、HTTP路徑或個人訪問令牌。"+"檢查環境變量DATABRICKS_TOKEN, "+“DATABRICKS_SERVER_HOSTNAME, DATABRICKS_HTTP_PATH。”);}常量客戶端=新DBSQLClient();常量跑龍套=DBSQLClient.跑龍套;客戶端.連接(選項={令牌:令牌,宿主:serverHostname,路徑:httpPath})。然後(異步客戶端= >{常量會話=等待客戶端.openSession();常量queryOperation=等待會話.executeStatement(聲明='從默認選擇*。鑽石限製2》,選項={runAsync:真正的,maxRows:10000//該選項啟用直接結果特性。});常量結果=等待queryOperation.fetchAll({進步:假,回調:()= >{},});等待queryOperation.關閉();控製台.表格(結果);等待會話.關閉();等待客戶端.關閉();})。抓((錯誤)= >{控製台.日誌(錯誤);});
進口{DBSQLClient}從“@databricks / sql”;進口IDBSQLSession從“@databricks / sql / dist /合同/ IDBSQLSession”;進口IOperation從“@databricks / sql / dist /合同/ IOperation”;varserverHostname:字符串=過程.env.DATABRICKS_SERVER_HOSTNAME||”;varhttpPath:字符串=過程.env.DATABRICKS_HTTP_PATH||”;var令牌:字符串=過程.env.DATABRICKS_TOKEN||”;如果(serverHostname= =”||httpPath= =”||令牌= =”){扔新錯誤("找不到服務器主機名、HTTP路徑或個人訪問令牌。"+"檢查環境變量DATABRICKS_SERVER_HOSTNAME "+“DATABRICKS_HTTP_PATH, DATABRICKS_TOKEN。”);}常量客戶端:DBSQLClient=新DBSQLClient();客戶端.連接({宿主:serverHostname,路徑:httpPath,令牌:令牌})。然後(異步客戶端= >{常量會話:IDBSQLSession=等待客戶端.openSession();常量queryOperation:IOperation=等待會話.executeStatement('從默認選擇*。鑽石限製2》,{runAsync:真正的,maxRows:10000//該選項啟用直接結果特性。});常量結果=等待queryOperation.fetchAll({進步:假,回調:()= >{},});等待queryOperation.關閉();控製台.表格(結果);等待會話.關閉();客戶端.關閉();})。抓((錯誤)= >{控製台.日誌(錯誤);});
輸出:
┌─────────┬─────┬────────┬───────────┬───────┬─────────┬────────┬───────┬───────┬────────┬────────┬────────┐││(指數)_c0│克拉削減│││││清晰深度色表價格x y z│││││├─────────┼─────┼────────┼───────────┼───────┼─────────┼────────┼───────┼───────┼────────┼────────┼────────┤││0 ' 1 '││“0.23”“理想”│“E”││“SI2”“61.5”│“55”│326“│”3.95“││“3.98”“2.43”│││1 ' 2 '││“0.21”“溢價”│“E”│“SI1”││“59.8”61“│”326年││“3.89”“3.84”││“2.31”└─────────┴─────┴────────┴───────────┴───────┴─────────┴────────┴───────┴───────┴────────┴────────┴────────┘
有關其他示例,請參見例子在GitHub上的databricks/databricks-sql-nodejs倉庫中的文件夾。
額外的資源
的SQL Driver for Node.js在GitHub庫
開始使用Databricks SQL Driver for Node.js
故障排除Databricks SQL Driver for Node.js