【问题标题】:how we can query a cloud storage using external table in node js?我们如何使用节点 js 中的外部表查询云存储?
【发布时间】:2019-05-20 17:17:49
【问题描述】:

我想使用 nodejs 中的外部表概念查询云存储。我能够在 python 中看到用于获得相同功能的代码。但是想在nodejs中做同样的逻辑。那么,有没有可能。

【问题讨论】:

  • 这是同一个概念——创建一个指向 GCS 的外部表定义,并像使用 Node 应用程序中的任何其他 SQL 一样查询该表。

标签: node.js google-cloud-platform google-bigquery google-cloud-storage google-cloud-functions


【解决方案1】:

目前没有使用 Node.JS 对此的官方支持。这意味着,即使您设法实现了这一点,它也只是一个临时的不受支持的解决方法。这就是我在公共问题跟踪器上提交功能请求的原因,您可以找到 here

我建议您为 FR 加注星标,以便轻松查看和访问以查看状态更新。 BigQuery 团队也可能会在那里提问。

【讨论】:

  • 这并没有提供问题的答案。要批评或要求作者澄清,请在他们的帖子下方留下评论。 - From Review
  • @HarshaB 这确实提供了一个答案。 Node.JS 目前没有对此的支持,我采取了必要的步骤来帮助社区,并在未来解决这个问题,从我的角度来看,这很有用。所有当前的解决方案都只是临时不受支持的解决方法。
【解决方案2】:

1) 转到google控制台并基于云存储创建新表 2) 使用定义为 here 的 Javascript 代码,您可以在 node.js 代码中使用它

这是示例代码


/**
     *
     * @param request: Store BQ request configuration
     * @param params: Store workflow data params
     * @returns {Promise}
     */
    static bigQueryInsertPromise2(request, params) {
        return new Promise(resolved => {
            bigQuery.jobs.insert(request, request, (err, results) => {
                resolved([err, results ? results.data : null])
            })
        }).then((args) => {
            let [err, results] = args
            //Handle results in status processing
            return this.getResultByJobId(err, results, params).then(args => {
                let [err, jobResults] = args
                if (err) {
                    if (err.message) {
                        throw [err.message, null]
                    } else {
                        console.log(`Error from Google: ${err.errors}`)
                        throw [err, null]
                    }
                }
                jobResults.configuration = results.configuration
                return [null, jobResults]
            })
        }).then(args => {
            let [err, jobResults] = args
            if (err) {
                console.log(err)
                throw [err, null]
            }

            return args
        })
    }

【讨论】:

    【解决方案3】:

    使用外部数据配置实现所需的功能,我们可以在其中提供设置与文件的连接所需的详细信息。完成后,我们可以使用 node.js 从 BQ 查询所需位置

    【讨论】:

      猜你喜欢
      • 2013-11-22
      • 2020-06-24
      • 2019-12-01
      • 1970-01-01
      • 2022-01-23
      • 1970-01-01
      • 1970-01-01
      • 2019-12-26
      • 2013-11-17
      相关资源
      最近更新 更多