我正在try 使用NodeJS连接到Databricks SQL终结点.我按照我的SQL端点的"连接详细信息"选项卡上的说明进行操作.如上所述,我运行的是Node版本14或更高版本,并按如下方式安装了连接器NPM包:

npm i @databricks/sql

我使用了下面提供的代码(我确保使用正确的主机名和访问令牌).我没有更改默认的SQL代码( Select 1).

  const { DBSQLClient } = require('@databricks/sql');

  var token           = "dapi_MY_ACCESS_TOKEN";
  var server_hostname = "MY_HOSTNAME.cloud.databricks.com";
  var http_path       = "/sql/1.0/endpoints/a8e8b6cfcc6a190f";

  const client = new DBSQLClient();
  const utils  = DBSQLClient.utils;

  client.connect(
    options = {
      token: token,
      host:  server_hostname,
      path:  http_path
    }).then(
      async client => {
        const session = await client.openSession();

        const queryOperation = await session.executeStatement(
          statement = "SELECT 1",
          options   = { runAsync: true });

        await utils.waitUntilReady(
          operation = queryOperation,
          progress  = false,
          callback  = () => {});

        await utils.fetchAll(
          operation = queryOperation
        );

        await queryOperation.close();

        const result = utils.getResult(
          operation = queryOperation
        ).getValue();

        console.table(result);

        await session.close();
        client.close();
  }).catch(error => {
    console.log(error);
  });

当我运行代码时,我收到以下错误消息:

node read_databricks.cjs 
TypeError: Cannot read properties of undefined (reading 'waitUntilReady')
    at /Users/vijay.balasubramaniam/test/records-to-cards/read_databricks.cjs:23:19
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)

我还try 在 node REPL中运行上面的代码,但得到了相同的结果.我是不是漏掉了一步?

推荐答案

我也遇到了同样的问题.删除您的包-lock.json.运行NMP安装并确保程序包-lock.json文件中的版本指向Beta.1而不是Beta2.

"NODE_MODULES/@Databricks/SQL":{ "Version":"0.1.8-Beta.1",

Sql相关问答推荐

在Golang中管理数据库事务的简洁方法

Oracle SQL-将结果列在单行中

将主表与历史表连接以获取主表的当前汇率以及历史表中的上一个和最后一个汇率

如何利用单列历史SQLsnowflake获得合并结果

更新其组的日期字段值小于最大日期减go 天数的记录

使用SQL创建列出两个时间戳之间小时数的列

为什么我的SQL标量函数有时会抛出";子查询返回多个值.这是不允许的.

动态组/转置

如何用QuestDB生成蜡烛图?

如何在SQL中从多个查询进行分组

如果另一个表中不存在值列,则插入失败

在VB.NET中如何在MS Access数据库中创建SQL项目历史库存卡

从选定记录中提取摘要作为值的划分

Postgresql - 如何根据阈值计算累积和

SQL Server:时态表并在运行时添加计算列

Oracle PL/SQL长期运行问题

如何通过CROSS APPLY获取多级嵌套JSON属性的值?

PostgreSQL:通过数组的元素从另一个表中 Select 数据,然后按顺序显示

在 MySql 数据库中的两个日期之间搜索

如何找到特定时间间隔内的最大和最小日期?