从 Google Ads BigQuery 数据传输中提取/取消嵌套数组

Extract/ Unnest Arrays from Google Ads BigQuery Data Transfer

提问人:AlejandroRod 提问时间:8/12/2021 最后编辑:AlejandroRod 更新时间:8/12/2021 访问量:169

问:

我正在尝试提取 Google Ads 通过 BigQuery 数据传输发送的 JSON 数组中包含的 Unnest 数据。不幸的是,我被卡在了中间。

BigQuery 表中的原始数据:

创意 Id ResponsiveSearchAdDescriptions
487067671679 [{“assetText”:“SearchAds 描述文本 1”,“assetId”:12443453594,“pinnedField”:“DESCRIPTION_1”,“assetPerformanceLabel”:“PENDING”,“assetApprovalStatus”:“APPROVED”},{“assetText”:“SearchAds 描述文本 2”,“assetId”:12443453165,“assetPerformanceLabel”:“PENDING”,“assetApprovalStatus”:“APPROVED”},{“assetText”:“SearchAds 描述文本 3”,“assetId”:12443453168,“assetPerformanceLabel”:“PENDING”,“assetApprovalStatus”:“APPROVED”},{“assetText”:“SearchAds描述文本 4“,”assetId“:12443419160,”assetPerformanceLabel“:”PENDING“,”assetApprovalStatus“:”APPROVED“}]

预期结果:

创意 Id ResponsiveSearchAdDescriptions_assetText ResponsiveSearchAdDescriptions_assetId ResponsiveSearchAdDescriptions_pinnedField ResponsiveSearchAdDescriptions_assetPerformanceLabel ResponsiveSearchAdDescriptions_assetApprovalStatus
487067671679 SearchAds 描述文字 1 12443453594 DESCRIPTION_1 待定 批准
487067671679 SearchAds 描述文本 2 12443453165 --- 待定 批准
487067671679 SearchAds 描述文字 3 12443453168 --- 待定 批准
487067671679 SearchAds 描述文本 4 12443419160 --- 待定 批准

这是最接近我的查询,但仍然显示 JSON。

SELECT
  CreativeId,
  JSON_QUERY_ARRAY(ResponsiveSearchAdDescriptions) AS Ads
FROM
  `priXXXXXX.sandbox.Ad_XXXXXXX`
WHERE
  ResponsiveSearchAdDescriptions IS NOT NULL
LIMIT
  100

查询应能够包含此条件ResponsiveSearchAdDescriptions IS NOT NULL

有什么想法吗?

SQL 多维数组 google-bigquery 嵌套列表 google-ads-api

评论


答:

2赞 Mikhail Berlyant 8/12/2021 #1

使用以下方法

select Creativeld, 
  json_extract_scalar(el, '$.assetText') as assetText,
  json_extract_scalar(el, '$.assetId') as assetId,
  json_extract_scalar(el, '$.pinnedField') as pinnedField,
  json_extract_scalar(el, '$.assetPerformanceLabel') as assetPerformanceLabel,
  json_extract_scalar(el, '$.assetApprovalStatus') as assetApprovalStatus
from `priXXXXXX.sandbox.Ad_XXXXXXX`,
unnest(json_extract_array(ResponsiveSearchAdDescriptions, '$')) el          

如果应用于问题中的示例数据 - 输出为

enter image description here