是否可以使用 UDF 从 BigQuery 读取 gcs 对象的元数据
Posted
技术标签:
【中文标题】是否可以使用 UDF 从 BigQuery 读取 gcs 对象的元数据【英文标题】:Is it possible to read gcs object's metadata from BigQuery using UDF 【发布时间】: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");
【问题讨论】:
***.com/questions/63073217/… 这个问题试图解决这个问题,但没有提到任何关于 UDF 的内容 【参考方案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 中。
【讨论】:
我已经添加了更多信息来提问,你可以检查一下以上是关于是否可以使用 UDF 从 BigQuery 读取 gcs 对象的元数据的主要内容,如果未能解决你的问题,请参考以下文章
BigQuery 中是不是存在用于从东、北转换为纬度、经度的 UDF?
使用 Google Datalab,如何在 Google BigQuery 中使用 UDF 从复杂查询创建表?
使用 JavaScript BigQuery UDF 解密/解码 AES256 [重复]