砖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.www.neidfyre.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,对应的最大数量的数据对象中返回任何给定的数组。

返回:承诺<数组<对象> >

关闭方法

关闭操作和释放所有相关的资源。不再使用后必须做手术。

没有参数。

没有返回值。