【问题标题】:Is it possible to read gcs object's metadata from BigQuery using UDF是否可以使用 UDF 从 BigQuery 读取 gcs 对象的元数据
【发布时间】:2021-06-16 04:59:14
【问题描述】:

我正在从 GCS 对象(使用 csv 和 json 文件类型(在单独的表中))将数据提取到 BigQuery 表中,我想执行数据验证,因此在将文件上传到 GCS 期间,我已将行数存储在文件元数据中,现在之后摄取完成,我想验证摄取表中的行数是否与文件元数据中的行数匹配。

注意:我想在 UDF 中使用 js 可用性,但它不允许我们使用外部库

更新:

根据介质上的这篇文章,他们说我们可以通过将编译的 js 包作为 .js 文件发布到 Cloud Storage 并使用 UDF 中的选项调用它来使用外部库

由于对js一窍不通,不知道怎么看这篇文章。

注意:我还在文章中发布了一个代码片段。

https://hoffa.medium.com/new-in-bigquery-persistent-udfs-c9ea4100fd83

CREATE OR REPLACE FUNCTION x.nlp_compromise_number(str STRING)
RETURNS NUMERIC LANGUAGE js AS '''
   return nlp(str).values(0).toNumber().out()
'''
OPTIONS (
  library="gs://fh-bigquery/js/compromise.min.11.14.0.js");

【问题讨论】:

标签: google-cloud-platform google-bigquery google-cloud-storage


【解决方案1】:

在标准 SQL [2] 中无法使用 UDF 提取对象元数据 [1]。但是,使用 Cloud Function 来执行数据验证会更容易,因为它会更容易从两个源中提取并执行比较。

[1] - https://cloud.google.com/storage/docs/viewing-editing-metadata#view

[2] - https://cloud.google.com/bigquery/docs/reference/standard-sql/user-defined-functions

【讨论】:

  • 我已经添加了更多信息来提问,你可以检查一下
【解决方案2】:

您无法使用 BigQuery 执行外部 API 调用。在 UDF 和标准查询中都没有。您无法从外部(GCP 或其他地方)获取数据。在运行查询之前,您必须将所有数据存储在 BigQuery 中。

【讨论】:

  • 我已经添加了更多信息来提问,你可以检查一下
猜你喜欢
  • 2022-11-17
  • 2020-12-11
  • 2010-11-16
  • 1970-01-01
  • 2019-04-14
  • 2020-02-01
  • 2014-06-15
  • 2019-03-02
  • 1970-01-01
相关资源
最近更新 更多