小编Gra*_*ley的帖子

在 Cloud Build 步骤中执行 BigQuery 查询

我将 Cloud Build 与gcloud构建器一起使用。我将其覆盖,entrypoint以便bq可以在构建步骤中运行一些 BigQuery SQL。以前,我将 SQL 直接嵌入到 Cloud Build 的 YAML 配置中。这工作正常:

steps:
- name: gcr.io/cloud-builders/gcloud
  entrypoint: 'bq'
  args: ['query', '--use_legacy_sql=false', 'SELECT 1']
Run Code Online (Sandbox Code Playgroud)

现在我想将 SQL 从 YAML 重构到一个文件中。根据这里,您可以将cat文件或管道传送到bq. 这可以在命令行上运行,没有任何问题。

但是,我无法让它与 Cloud Build 一起使用。我尝试了很多不同的组合,以及转义字符等,但无论我尝试什么,shell 都不会评估/执行反引号cat my_query.sl,而是认为它是查询本身:

工作正常: 在此输入图像描述

在 Cloud Build 中构建它不会工作:

steps:
- name: gcr.io/cloud-builders/gcloud
  entrypoint: 'bq'
  args: ['query', '--use_legacy_sql=false', '`cat my_query.sql`']
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我也尝试通过管道而不是使用cat,但我得到了同样的错误。

我一定在这里遗漏了一些明显的东西,但我看不到它。我可以构建一个自定义 docker 映像,并将所有内容包装在 shell 脚本中,但如果可能的话,我宁愿不必这样做。

如何在构建步骤中使用 Cloud Build 和 shell 评估?

google-bigquery google-cloud-platform google-cloud-build

4
推荐指数
1
解决办法
2210
查看次数

为什么在运行管道时将零字节文件写入GCS?

我们的工作/管道是将ParDo转换的结果写回GCS,即使用 TextIO.Write.to("gs://...")

我们注意到,当作业/管道完成时,它会在输出桶中留下许多0字节文件.

管道的输入来自GCS的多个文件,所以我假设结果是分片的,这很好.

但为什么我们得到空文件?

在此输入图像描述

google-cloud-storage google-cloud-dataflow

3
推荐指数
1
解决办法
826
查看次数

工作已破坏SDK版本0.4.150414

从Maven中拉出最新的SDK版本(0.4.150414),我们的工作现在失败了.

我们已经将它追溯到我们的一个类中使用的HashMap的反序列化,并且由ParDo转换引用.

观察:

  • 在本地运行时以及在云中的CDF服务上都会中断.
  • processElement调用之前正确填充HashMap
  • processElement方法中放置断点显示HashMap具有不同的对象ID(必须来自反序列化原始HashMap),但现在它是空的,即所有元素都已丢失.
  • 我们回滚到版本0.3.150326,它适用于该版本.

在最新版本的SDK中,序列化/反序列化功能有什么变化吗?

如果您需要,很高兴将我们的代码发送到反馈电子邮件.

google-cloud-dataflow

3
推荐指数
1
解决办法
87
查看次数

gsutil - 是否可以仅列出文件夹?

是否可以使用该gsutil工具仅列出存储桶中的文件夹?

我看不到这里列出的任何东西.

例如,我只想列出此存储桶中的文件夹:

在此输入图像描述

google-cloud-storage google-cloud-dataflow

3
推荐指数
1
解决办法
1597
查看次数

我可以在 BigQuery 中检索外部表数据的文件名吗?

希望为目前管理大量 excel/csv 文件的部门团队实施一个简单的数据存储。我们将让他们准备文件并将它们以 CSV 格式放入 GCS 存储桶中,然后将外部 BQ 表指向此(一切都很好)。

但是,如果他们运行查询并查看一些数据,然后想找到该数据实际上是从哪里提取的,我们如何找出(假设文件名中没有上下文线索)哪个文件包含其中的行?题?

google-bigquery

3
推荐指数
1
解决办法
2297
查看次数

BigQuery 表按月分区

我找不到任何与此相关的文档。time_partitioning_type=DAY 是 BigQuery 中对表进行分区的唯一方法吗?除了日期之外,该参数还可以采用其他值吗?

google-bigquery

3
推荐指数
1
解决办法
1万
查看次数

在文件夹上触发云功能 - 可能吗?

是否可以将云函数trigger-bucket参数配置为GCS存储桶中的文件夹?

例如,假设我们有以下内容:

gs://a_bucket/a_folder
Run Code Online (Sandbox Code Playgroud)

--trigger-bucket gs://a_bucket我需要在文件夹级别设置它,而不是在部署时设置,即--trigger-bucket gs://a_bucket/a_folder/

但是,我收到错误:

错误:(gcloud.beta.functions.deploy)参数 --trigger-bucket:无效值“gs://a_bucket/a_folder/”:存储桶只能包含小写拉丁字母、数字和字符。_-。它必须以字母或数字开头和结尾,长度为 3 到 232 个字符。您可以选择在存储桶名称前添加 gs:// 并在末尾附加 /。

https://cloud.google.com/sdk/gcloud/reference/beta/functions/deploy

google-cloud-platform google-cloud-functions

3
推荐指数
1
解决办法
3459
查看次数

如何在 Google Dataprep 中导出带有标题的文件?

我正在尝试导出 Google Dataprep 作业的结果。正如您在以下屏幕截图中看到的,列有名称或标题:

在此处输入图片说明

但是,导出的文件不包括它们。如何在导出的 CSV 文件中保留这些列标题?

谢谢你的帮助。

google-cloud-dataprep

3
推荐指数
1
解决办法
579
查看次数

BigQuery max分区在2000而不是2500时达到顶峰

根据BigQuery文档,分区表可以有2500个分区:

每个分区表的最大分区数 - 2,500

然而:

$ bq query --destination_table grey-sort-challenge:partitioning_magic.nyc_taxi_trips_partitioned --time_partitioning_field pickup_datetime --use_legacy_sql=false "select * from \`grey-sort-challenge.partitioning_magic.nyc_taxi_trips\`"
Run Code Online (Sandbox Code Playgroud)

查询字符串出错:处理作业'gray-sort-challenge时出错:bqjob_r37b076ef0d3c4338_000001626c539e6a_1':查询产生的分区太多,允许2000,查询产生至少2372个分区

是2000还是2500?

google-bigquery

3
推荐指数
1
解决办法
981
查看次数

联合表/查询不起作用 - “无法在位置读取:us-west1”

我有一个 GCS 存储桶US-WEST1

在此处输入图片说明

该存储桶有两个文件:

  1. wiki_1b_000000000000.csv.gz
  2. wiki_1b_000000000001.csv.gz

我创建了一个外部表定义来读取这些文件,如下所示:

在此处输入图片说明

此外部表定义所在的数据集也在US.

在此处输入图片说明

当我查询它时:

SELECT
  *
FROM
  `grey-sort-challenge.bigtable.federated`
LIMIT
  100
Run Code Online (Sandbox Code Playgroud)

..我收到以下错误:

错误:无法读取位置:us-west1

在此处输入图片说明

我测试过asia-northeast1,它工作正常。

为什么这不适用于美国地区?

google-bigquery

3
推荐指数
1
解决办法
2666
查看次数