【问题标题】:Extract/ Unnest Arrays from Google Ads BigQuery Data Transfer从 Google Ads BigQuery 数据传输中提取/取消嵌套数组
【发布时间】:2021-08-12 09:31:51
【问题描述】:

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

BigQuery 表中的原始数据:

CreativeId ResponsiveSearchAdDescriptions
487067671679 [{"assetText":"SearchAds Description Text 1","assetId":12443453594,"pinnedField":"DESCRIPTION_1","assetPerformanceLabel":"PENDING","assetApprovalStatus":"APPROVED"},{"assetText":"SearchAds Description Text 2","assetId":12443453165,"assetPerformanceLabel":"PENDING","assetApprovalStatus":"APPROVED"},{"assetText":"SearchAds Description Text 3","assetId":12443453168,"assetPerformanceLabel":"PENDING","assetApprovalStatus":"APPROVED"},{"assetText":"SearchAds Description Text 4","assetId":12443419160,"assetPerformanceLabel":"PENDING","assetApprovalStatus":"APPROVED"}]

期望的结果:

CreativeId ResponsiveSearchAdDescriptions_assetText ResponsiveSearchAdDescriptions_assetId ResponsiveSearchAdDescriptions_pinnedField ResponsiveSearchAdDescriptions_assetPerformanceLabel ResponsiveSearchAdDescriptions_assetApprovalStatus
487067671679 SearchAds Description Text 1 12443453594 DESCRIPTION_1 PENDING APPROVED
487067671679 SearchAds Description Text 2 12443453165 --- PENDING APPROVED
487067671679 SearchAds Description Text 3 12443453168 --- PENDING APPROVED
487067671679 SearchAds Description Text 4 12443419160 --- PENDING APPROVED

这是最接近我但仍显示 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 multidimensional-array google-bigquery nested-lists google-ads-api


    【解决方案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          
    

    如果应用于您问题中的样本数据 - 输出是

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多