開始
加載和管理數據
處理數據
政府
引用和資源
2023年4月20日更新
給我們反饋
的磚SQL的司機對node . js是一個node . js庫,允許您使用JavaScript代碼上運行SQL命令磚計算資源。
開發機器運行的節點。js, 14或更高版本。打印節點的安裝版本。js,運行該命令節點- v。安裝和使用不同版本的節點。js,您可以使用工具等節點版本管理器(nvm)。
節點- v
節點包管理器(npm)。後來版本的節點。js已經包含npm。檢查是否npm安裝,運行該命令npm- v。安裝npm如果需要,您可以按照指令的等下載並安裝npm。
npm
npm- v
的@databricks / sql寄來的包裹npm。安裝@databricks / sql包在你的節點。js項目a dependency, usenpm在相同的目錄中運行以下命令從你的項目:
@databricks / sql
npm我@databricks / sql
如果你想安裝和使用打印稿在你的節點。js項目devDependencies,使用npm運行以下命令在相同的目錄中您的項目:
devDependencies
npm我- d打印稿npm i - d @types /節點
現有的集群或SQL倉庫。
的服務器主機名和HTTP路徑現有集群的值或SQL倉庫。
把這些值集群。
對於SQL倉庫得到這些值。
一個磚個人訪問令牌。
管理個人訪問令牌。
訪問您的集群或SQL倉庫,磚SQL司機的節點。js使用連接變量命名令牌,server_hostname和http_path,代表你的磚個人訪問令牌和集群的倉庫或SQL服務器主機名和HTTP路徑值,分別。
令牌
server_hostname
http_path
磚個人訪問令牌的值令牌類似於以下幾點:dapi1ab2c34defabc567890123d4efa56789。
dapi1ab2c34defabc567890123d4efa56789
的服務器主機名值server_hostname類似於以下幾點:1234567890123456.7.gcp.www.eheci.com。
1234567890123456.7.gcp.www.eheci.com
的HTTP路徑值http_path是一個集群,類似如下:sql / protocolv1 / o / 1234567890123456/1234 - 567890 abcdefgh;對於SQL倉庫,/ sql / 1.0 /端點/ a1b234c5678901d2。
sql / protocolv1 / o / 1234567890123456/1234 - 567890 abcdefgh
/ sql / 1.0 /端點/ a1b234c5678901d2
請注意
作為一個安全最佳實踐,您不應該硬編碼這些連接變量值到你的代碼。相反,你應該檢索這些連接變量值從一個安全的位置。例如,在本文後麵的代碼示例使用環境變量。
下麵的代碼示例演示了如何調用節點的磚SQL的司機。js在磚上運行一個基本的SQL查詢計算資源。這個命令返回的前兩行鑽石表。
鑽石
的鑽石表是包含在樣本數據集。這個表也在與筆記本電腦教程:查詢數據。
這段代碼示例檢索令牌,server_hostname和http_path從一組數據磚連接變量值環境變量。這些環境變量有以下環境變量名:
DATABRICKS_TOKEN代表你的磚個人需求的訪問令牌。
DATABRICKS_TOKEN
DATABRICKS_SERVER_HOSTNAME,代表了服務器主機名價值的需求。
DATABRICKS_SERVER_HOSTNAME
DATABRICKS_HTTP_PATH,代表了HTTP路徑價值的需求。
DATABRICKS_HTTP_PATH
您可以使用其他方法來檢索這些連接變量值。使用環境變量隻是眾多方法之一。
下麵的代碼示例演示了如何調用磚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
常量{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的司機
類
DBSQLClient類
方法
連接方法
連接
openSession方法
openSession
getClient方法
getClient
關閉方法
關閉
DBSQLSession類
DBSQLSession
executeStatement方法
executeStatement
getId方法
getId
getTypeInfo方法
getTypeInfo
getCatalogs方法
getCatalogs
getSchemas方法
getSchemas
可以獲得的方法
可以獲得的
getFunctions方法
getFunctions
getPrimaryKeys方法
getPrimaryKeys
getCrossReference方法
getCrossReference
DBSQLOperation類
DBSQLOperation
fetchAll方法
fetchAll
fetchChunk方法
fetchChunk
與數據庫交互的主要入口點。
打開一個連接到數據庫。
參數
選項
類型:ConnectionOptions
ConnectionOptions
組選項用於連接到數據庫。
主機、路徑和令牌必須填充字段。
例子:
常量客戶端:DBSQLClient=新DBSQLClient();客戶端。連接({主機:serverHostname,路徑:httpPath,令牌:令牌})
返回:承諾< IDBSQLClient >
承諾< IDBSQLClient >
打開DBSQLClient和數據庫之間的會話。
請求
類型:OpenSessionRequest
OpenSessionRequest
一組可選參數用於指定初始模式和初始目錄
常量會話=等待客戶端。openSession({initialCatalog:“目錄”});
返回:承諾< IDBSQLSession >
承諾< IDBSQLSession >
內部節儉TCLIService回報。客戶端對象。必須叫DBSQLClient後連接。
沒有參數
返回TCLIService.Client
TCLIService.Client
關閉數據庫連接和釋放所有相關的資源在服務器上。任何額外的調用此客戶機將拋出錯誤。
沒有參數。
沒有返回值。
DBSQLSessions主要是用於對databbase語句的執行以及各種元數據抓取操作。
執行一個語句提供的選項。
聲明
類型:str
str
要執行的語句。
類型:ExecuteStatementOptions
ExecuteStatementOptions
一組可選的參數來確定查詢超時,馬克斯行直接結果,以及是否異步運行查詢。默認情況下maxRows設置為10000。如果maxRows被設置為null,操作將運行功能的直接結果。
maxRows
常量會話=等待客戶端。openSession({initialCatalog:“目錄”});queryOperation=等待會話。executeStatement(”選擇“Hello, World !”,{runAsync:真正的});
返回:承諾< IOperation >
承諾< IOperation >
關閉會話。必須使用會話後完成。
返回會話的GUID。
返回:str
返回的信息支持的數據類型。
類型:TypeInfoRequest
TypeInfoRequest
請求參數。
得到的目錄列表。
類型:CatalogsRequest
CatalogsRequest
得到的模式列表。
類型:SchemasRequest
SchemasRequest
請求參數。字段catalogName和schemaName可用於過濾的目的。
catalogName
schemaName
得到的表列表。
類型:TablesRequest
TablesRequest
請求參數。字段catalogName和schemaName和的表可用於過濾。
的表
類型:FunctionsRequest
FunctionsRequest
請求參數。場functionName是必需的。
functionName
主鍵的列表。
類型:PrimaryKeysRequest
PrimaryKeysRequest
請求參數。字段schemaName和的表是必需的。
兩個表之間的外鍵信息。
類型:CrossReferenceRequest
CrossReferenceRequest
請求參數。模式,家長,和兩個表目錄名稱必須被指定。
DBSQLOperations是由DBSQLSessions,可以用來獲取報表和檢查執行的結果。通過函數fetchChunk和fetchAll數據獲取。
返回操作的GUID。
等待操作完成,然後獲取所有行操作。
參數:無
返回:承諾<數組<對象> >
承諾<數組<對象> >
等待操作完成,然後獲取到一個指定的行數從一個操作。
類型:FetchOptions
FetchOptions
選項用於獲取。目前,唯一的選擇就是maxRows,對應的最大數量的數據對象中返回任何給定的數組。
關閉操作和釋放所有相關的資源。不再使用後必須做手術。