Непонятно, что именно представляет собой схема вашей таблицы, поэтому приведенный ниже пример (для BigQuery Standard SQL) просто использует упрощенную схему, чтобы представить подход для выполнения того, что вы просили: each row also gets the rowkey value
упрощенные фиктивные данныеэто:
Row rowkey column.name column.value
1 key1 domain aaa.com
event pageload
hash 12345
2 key2 domain2 aaa2.com
event2 pageload2
hash2 123456789
#standardSQL
WITH `project.dataset.table` AS (
SELECT 'key1' rowkey, [STRUCT<name STRING, value STRING>('domain', 'aaa.com'), STRUCT('event', 'pageload'), STRUCT('hash', '12345')] column UNION ALL
SELECT 'key2', [STRUCT<name STRING, value STRING>('domain2', 'aaa2.com'), STRUCT('event2', 'pageload2'), STRUCT('hash2', '123456789')]
)
SELECT rowkey, x.*
FROM `project.dataset.table` t, t.column x
с результатом как
Row rowkey name value
1 key1 domain aaa.com
2 key1 event pageload
3 key1 hash 12345
4 key2 domain2 aaa2.com
5 key2 event2 pageload2
6 key2 hash2 123456789