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