磚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 /節點
  • 現有的集群SQL倉庫

  • 服務器主機名HTTP路徑現有集群的值或SQL倉庫。

  • 一個磚個人訪問令牌

指定連接變量

訪問您的集群或SQL倉庫,磚SQL司機的節點。js使用連接變量命名令牌,server_hostnamehttp_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_hostnamehttp_path磚的連接變量值從一組環境變量。這些環境變量有以下環境變量名:

  • DATABRICKS_TOKEN代表你的磚個人需求的訪問令牌。

  • DATABRICKS_SERVER_HOSTNAME,代表了服務器主機名價值的需求。

  • DATABRICKS_HTTP_PATH,代表了HTTP路徑價值的需求。

您可以使用其他方法來檢索這些連接變量值。使用環境變量隻是眾多方法之一。

下麵的代碼示例演示了如何調用磚SQL連接器的節點。js集群上運行一個基本的SQL命令或SQL倉庫。這個命令返回第一個兩排鑽石的表。

常量{DBSQLClient}=需要(“@databricks / sql”);var令牌=過程envDATABRICKS_TOKEN;varserverHostname=過程envDATABRICKS_SERVER_HOSTNAME;varhttpPath=過程envDATABRICKS_HTTP_PATH;如果(!令牌| |!serverHostname| |!httpPath){錯誤(“找不到服務器主機名、HTTP路徑,或個人訪問令牌。”+“檢查環境變量DATABRICKS_TOKEN。”+“DATABRICKS_SERVER_HOSTNAME, DATABRICKS_HTTP_PATH。”);}常量客戶端=DBSQLClient();客戶端連接(選項={令牌:令牌,主機:serverHostname,路徑:httpPath})。然後(異步客戶端= >{常量會話=等待客戶端openSession();常量queryOperation=等待會話executeStatement(聲明=“從默認選擇*。鑽石限製2》,選項={runAsync:真正的,maxRows:10000年/ /這個選項使特性的直接結果。});常量結果=等待queryOperationfetchAll({進步:,回調:()= >{},});等待queryOperation關閉();控製台(結果);等待會話關閉();等待客戶端關閉();})。((錯誤)= >{控製台日誌(錯誤);});
進口{DBSQLClient}“@databricks / sql”;進口IDBSQLSession“@databricks / sql / dist /合同/ IDBSQLSession”;進口IOperation“@databricks / sql / dist /合同/ IOperation”;varserverHostname:字符串=過程envDATABRICKS_SERVER_HOSTNAME| |;varhttpPath:字符串=過程envDATABRICKS_HTTP_PATH| |;var令牌:字符串=過程envDATABRICKS_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年/ /這個選項使特性的直接結果。});常量結果=等待queryOperationfetchAll({進步:,回調:()= >{},});等待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令牌=過程envDATABRICKS_TOKEN;varserverHostname=過程envDATABRICKS_SERVER_HOSTNAME;varhttpPath=過程envDATABRICKS_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:真正的});常量結果=等待queryOperationfetchAll();等待queryOperation關閉();控製台(結果);/ /設置記錄器不同水平。/ /日誌記錄器setLevel(LogLevel調試);queryOperation=等待會話executeStatement(”選擇“Hello, World !”,{runAsync:真正的});結果=等待queryOperationfetchAll();等待queryOperation關閉();等待會話關閉();等待客戶端關閉();})。((錯誤)= >{控製台日誌(錯誤);});
進口{DBSQLClient}“@databricks / sql”;進口IDBSQLSession“@databricks / sql / dist /合同/ IDBSQLSession”;進口IOperation“@databricks / sql / dist /合同/ IOperation”;varserverHostname:字符串=過程envDATABRICKS_SERVER_HOSTNAME| |;varhttpPath:字符串=過程envDATABRICKS_HTTP_PATH| |;var令牌:字符串=過程envDATABRICKS_TOKEN| |;如果(serverHostname= =| |httpPath= =| |令牌= =){錯誤(“找不到服務器主機名、HTTP路徑,或個人訪問令牌。”+“檢查環境變量DATABRICKS_SERVER_HOSTNAME。”+“DATABRICKS_HTTP_PATH, DATABRICKS_TOKEN。”);}常量客戶端:DBSQLClient=DBSQLClient();客戶端連接({主機:serverHostname,路徑:httpPath,令牌:令牌})。然後(異步客戶端= >{常量會話:IDBSQLSession=等待客戶端openSession();queryOperation:IOperation=等待會話executeStatement(”選擇“Hello, World !”,{runAsync:真正的});常量結果=等待queryOperationfetchAll();等待queryOperation關閉();控製台(結果);/ /設置記錄器不同水平。/ /日誌記錄器setLevel(LogLevel調試);queryOperation=等待會話executeStatement(”選擇“Hello, World !”,{runAsync:真正的});結果=等待queryOperationfetchAll();等待queryOperation關閉();等待會話關閉();等待客戶端關閉();})。((錯誤)= >{控製台日誌(錯誤);});

更多的例子,請參閱例子文件夾在磚/ databricks-sql-nodejs GitHub庫。

額外的資源

API參考

DBSQLClient

與數據庫交互的主要入口點。

方法
連接方法

打開一個連接到數據庫。

參數

選項

類型:ConnectionOptions

組選項用於連接到數據庫。

主機、路徑和令牌必須填充字段。

例子:

常量客戶端:DBSQLClient=DBSQLClient();客戶端連接({主機:serverHostname,路徑:httpPath,令牌:令牌})

返回:承諾< IDBSQLClient >

openSession方法

打開DBSQLClient和數據庫之間的會話。

參數

請求

類型:OpenSessionRequest

一組可選參數用於指定初始模式和初始目錄

例子:

常量會話=等待客戶端openSession({initialCatalog:“目錄”});

返回:承諾< IDBSQLSession >

getClient方法

內部節儉TCLIService回報。客戶端對象。必須叫DBSQLClient後連接。

沒有參數

返回TCLIService.Client

關閉方法

關閉數據庫連接和釋放所有相關的資源在服務器上。任何額外的調用此客戶機將拋出錯誤。

沒有參數。

沒有返回值。

DBSQLSession

DBSQLSessions主要是用於對databbase語句的執行以及各種元數據抓取操作。

方法
executeStatement方法

執行一個語句提供的選項。

參數

聲明

類型:str

要執行的語句。

選項

類型:ExecuteStatementOptions

一組可選的參數來確定查詢超時,馬克斯行直接結果,以及是否異步運行查詢。默認情況下maxRows設置為10000。如果maxRows被設置為null,操作將運行功能的直接結果。

例子:

常量會話=等待客戶端openSession({initialCatalog:“目錄”});queryOperation=等待會話executeStatement(”選擇“Hello, World !”,{runAsync:真正的});

返回:承諾< IOperation >

關閉方法

關閉會話。必須使用會話後完成。

沒有參數。

沒有返回值。

getId方法

返回會話的GUID。

沒有參數。

返回:str

getTypeInfo方法

返回的信息支持的數據類型。

參數

請求

類型:TypeInfoRequest

請求參數。

返回:承諾< IOperation >

getCatalogs方法

得到的目錄列表。

參數

請求

類型:CatalogsRequest

請求參數。

返回:承諾< IOperation >

getSchemas方法

得到的模式列表。

參數

請求

類型:SchemasRequest

請求參數。字段catalogNameschemaName可用於過濾的目的。

返回:承諾< IOperation >

可以獲得的方法

得到的表列表。

參數

請求

類型:TablesRequest

請求參數。字段catalogNameschemaName的表可用於過濾。

返回:承諾< IOperation >

getFunctions方法

得到的表列表。

參數

請求

類型:FunctionsRequest

請求參數。場functionName是必需的。

返回:承諾< IOperation >

getPrimaryKeys方法

主鍵的列表。

參數

請求

類型:PrimaryKeysRequest

請求參數。字段schemaName的表是必需的。

返回:承諾< IOperation >

getCrossReference方法

兩個表之間的外鍵信息。

參數

請求

類型:CrossReferenceRequest

請求參數。模式,家長,和兩個表目錄名稱必須被指定。

返回:承諾< IOperation >

DBSQLOperation

DBSQLOperations是由DBSQLSessions,可以用來獲取報表和檢查執行的結果。通過函數fetchChunk和fetchAll數據獲取。

方法
getId方法

返回操作的GUID。

沒有參數。

返回:str

fetchAll方法

等待操作完成,然後獲取所有行操作。

參數:無

返回:承諾<數組<對象> >

fetchChunk方法

等待操作完成,然後獲取到一個指定的行數從一個操作。

參數

選項

類型:FetchOptions

選項用於獲取。目前,唯一的選擇就是maxRows,對應的最大數量的數據對象中返回任何給定的數組。

返回:承諾<數組<對象> >

關閉方法

關閉操作和釋放所有相關的資源。不再使用後必須做手術。

沒有參數。

沒有返回值。