如何解析 GA4 BigQuery RECORD 列?

问题描述 投票:0回答:0

我们正在使用 Python 脚本连接到 BigQuery 以下载每日 GA4 事件文件。大多数列是 Integer 或 String,它们很容易使用。还有 11 个 RECORD 类型的字段。

根据 Google 文档 around RECORDS 他们是

RECORD 可以在 GoogleSQL 中作为 STRUCT 类型访问。一个结构是一个 有序字段的容器。记录列可以具有重复模式, 它表示为 STRUCT 类型的数组。此外,一个领域内 一条记录可以重复,表示为一个 STRUCT,它 包含一个数组。

这里是

event_params
数据的一个样本,它有一个 STRUCT 类型的数组:

   [{'key': 'engaged_session_event', 'value': {'string_value': None, 'int_value': 1, 'float_value': None, 'double_value': None}}
     {'key': 'ga_session_number', 'value': {'string_value': None, 'int_value': 2, 'float_value': None, 'double_value': None}}
     {'key': 'page_location', 'value': {'string_value': 'https://www.finditparts.com/?srcid=CHL01SCL017&utm_medium=text&utm_source=attentive&utm_campaign=browse-abandonment-message&externalId=8rjpC', 'int_value': None, 'float_value': None, 'double_value': None}}
     {'key': 'ga_session_id', 'value': {'string_value': None, 'int_value': 1679860220, 'float_value': None, 'double_value': None}}
     {'key': 'session_engaged', 'value': {'string_value': None, 'int_value': 1, 'float_value': None, 'double_value': None}}
     {'key': 'page_title', 'value': {'string_value': 'Heavy Duty Truck Parts Online, Medium Duty, Light Duty - FinditParts', 'int_value': None, 'float_value': None, 'double_value': None}}]

这里是

device
数据的样本,它是一个结构:

{'category': 'mobile', 'mobile_brand_name': 'Apple', 'mobile_model_name': 'iPhone', 'mobile_marketing_name': None, 'mobile_os_hardware_model': None, 'operating_system': 'iOS', 'operating_system_version': 'iOS 14.8', 'vendor_id': None, 'advertising_id': None, 'language': 'en-us', 'is_limited_ad_tracking': 'No', 'time_zone_offset_seconds': None, 'browser': None, 'browser_version': None, 'web_info': {'browser': 'Safari', 'browser_version': '14.1.2', 'hostname': 'www.finditparts.com'}}

是否有可用于解析 STRUCTS 或 STRUCTS 数组的 SQL 函数?是否可以将此数据以某种方式转换为 JSON 以便使用内置的 JSON 函数来查询它?

sql-server struct google-bigquery google-analytics google-analytics-4
© www.soinside.com 2019 - 2024. All rights reserved.