磚SQL的司機對node . js
的磚SQL的司機對node . js是一個node . js庫,允許您使用JavaScript代碼上運行SQL命令磚計算資源。
需求
開發機器運行的節點。js, 14或更高版本。打印節點的安裝版本。js,運行該命令
節點- v
。安裝和使用不同版本的節點。js,您可以使用工具等節點版本管理器(nvm)。節點包管理器(
npm
)。後來版本的節點。js已經包含npm
。檢查是否npm
安裝,運行該命令npm- v
。安裝npm
如果需要,您可以按照指令的等下載並安裝npm。的@databricks / sql寄來的包裹npm。安裝
@databricks / sql
包在你的節點。js項目a dependency, usenpm
在相同的目錄中運行以下命令從你的項目:npm我@databricks / sql
如果你想安裝和使用打印稿在你的節點。js項目
devDependencies
,使用npm
運行以下命令在相同的目錄中您的項目:npm我- d打印稿npm i - d @types /節點
的服務器主機名和HTTP路徑現有集群的值或SQL倉庫。
一個磚個人訪問令牌。
指定連接變量
訪問您的集群或SQL倉庫,磚SQL司機的節點。js使用連接變量命名令牌
,server_hostname
和http_path
,代表你的磚個人訪問令牌和集群的倉庫或SQL服務器主機名和HTTP路徑值,分別。
磚個人訪問令牌的值令牌
類似於以下幾點:dapi12345678901234567890123456789012
。
的服務器主機名值server_hostname
類似於以下幾點:dbc-a1b2345c-d6e7.cloud.m.eheci.com
。
的HTTP路徑值http_path
是一個集群,類似如下:sql / protocolv1 / o / 1234567890123456/1234 - 567890 abcdefgh
;對於SQL倉庫,/ sql / 1.0 /端點/ a1b234c5678901d2
。
請注意
作為一個安全最佳實踐,您不應該硬編碼這些連接變量值到你的代碼。相反,你應該檢索這些連接變量值從一個安全的位置。例如,在本文後麵的代碼示例使用環境變量。
查詢數據
下麵的代碼示例演示了如何調用節點的磚SQL的司機。js在磚上運行一個基本的SQL查詢計算資源。這個命令返回的前兩行鑽石
表。
的鑽石
表是包含在樣本數據集。這個表也在與筆記本電腦教程:查詢數據。
這段代碼示例檢索令牌
,server_hostname
和http_path
磚的連接變量值從一組環境變量。這些環境變量有以下環境變量名:
DATABRICKS_TOKEN
代表你的磚個人需求的訪問令牌。DATABRICKS_SERVER_HOSTNAME
,代表了服務器主機名價值的需求。DATABRICKS_HTTP_PATH
,代表了HTTP路徑價值的需求。
您可以使用其他方法來檢索這些連接變量值。使用環境變量隻是眾多方法之一。
下麵的代碼示例演示了如何調用磚SQL連接器的節點。js集群上運行一個基本的SQL命令或SQL倉庫。這個命令返回第一個兩排鑽石的表。
常量{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();客戶端。連接(選項={令牌:令牌,主機: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”└─────────┴─────┴────────┴───────────┴───────┴─────────┴────────┴───────┴───────┴────────┴────────┴────────┘
配置日誌記錄
日誌記錄器連接器提供了調試信息問題。所有DBSQLClient
對象實例化的日誌輸出到控製台,但通過自定義日誌,您可以發送這些信息到文件中。下麵的例子展示了如何配置一個記錄器和改變它的水平。
常量{DBSQLClient,DBSQLLogger,LogLevel}=需要(“@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。”);}常量日誌記錄器=新DBSQLLogger({filepath:“log.txt”,水平:LogLevel。信息});常量客戶端=新DBSQLClient({日誌記錄器:日誌記錄器});客戶端。連接(選項={令牌:令牌,主機:serverHostname,路徑:httpPath})。然後(異步客戶端= >{常量會話=等待客戶端。openSession();讓queryOperation=等待會話。executeStatement(”選擇“Hello, World !”,{runAsync:真正的});常量結果=等待queryOperation。fetchAll();等待queryOperation。關閉();控製台。表(結果);/ /設置記錄器不同水平。/ /日誌記錄器。setLevel(LogLevel。調試);queryOperation=等待會話。executeStatement(”選擇“Hello, World !”,{runAsync:真正的});結果=等待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(”選擇“Hello, World !”,{runAsync:真正的});常量結果=等待queryOperation。fetchAll();等待queryOperation。關閉();控製台。表(結果);/ /設置記錄器不同水平。/ /日誌記錄器。setLevel(LogLevel。調試);queryOperation=等待會話。executeStatement(”選擇“Hello, World !”,{runAsync:真正的});結果=等待queryOperation。fetchAll();等待queryOperation。關閉();等待會話。關閉();等待客戶端。關閉();})。抓((錯誤)= >{控製台。日誌(錯誤);});
更多的例子,請參閱例子文件夾在磚/ databricks-sql-nodejs GitHub庫。
額外的資源
的磚SQL的司機對node . js在GitHub庫
開始node . js的磚SQL的驅動程序
故障排除node . js的磚SQL的司機
API參考
類
DBSQLClient
類
與數據庫交互的主要入口點。
方法
連接
方法
打開一個連接到數據庫。
參數 |
---|
選項 類型: 組選項用於連接到數據庫。 主機、路徑和令牌必須填充字段。 例子: 常量客戶端:DBSQLClient=新DBSQLClient();客戶端。連接({主機:serverHostname,路徑:httpPath,令牌:令牌})
|
返回:承諾< IDBSQLClient >
openSession
方法
打開DBSQLClient和數據庫之間的會話。
參數 |
---|
請求 類型: 一組可選參數用於指定初始模式和初始目錄 例子: 常量會話=等待客戶端。openSession({initialCatalog:“目錄”});
|
返回:承諾< IDBSQLSession >
DBSQLSession
類
DBSQLSessions主要是用於對databbase語句的執行以及各種元數據抓取操作。
方法
executeStatement
方法
執行一個語句提供的選項。
參數 |
---|
聲明 類型: 要執行的語句。 |
選項 類型: 一組可選的參數來確定查詢超時,馬克斯行直接結果,以及是否異步運行查詢。默認情況下 例子: 常量會話=等待客戶端。openSession({initialCatalog:“目錄”});queryOperation=等待會話。executeStatement(”選擇“Hello, World !”,{runAsync:真正的});
|
返回:承諾< IOperation >
getSchemas
方法
得到的模式列表。
參數 |
---|
請求 類型: 請求參數。字段 |
返回:承諾< IOperation >
getCrossReference
方法
兩個表之間的外鍵信息。
參數 |
---|
請求 類型: 請求參數。模式,家長,和兩個表目錄名稱必須被指定。 |
返回:承諾< IOperation >
DBSQLOperation
類
DBSQLOperations是由DBSQLSessions,可以用來獲取報表和檢查執行的結果。通過函數fetchChunk和fetchAll數據獲取。
方法
fetchChunk
方法
等待操作完成,然後獲取到一個指定的行數從一個操作。
參數 |
---|
選項 類型: 選項用於獲取。目前,唯一的選擇就是maxRows,對應的最大數量的數據對象中返回任何給定的數組。 |
返回:承諾<數組<對象> >