我当前正在使用SELECT
PS.Name,
Z.[Round],
AVG(TRY_CAST(Z.[EstimatedValue] AS FLOAT)),
AVG(TRY_CAST(Z.[InformationGain] AS FLOAT))
FROM [dbo].[IntermediateScores] Z
INNER JOIN [dbo].[PScale] PS ON Z.[ScaleId] = PS.Id
GROUP BY PS.Name, Z.[Round]
ORDER BY PS.Name,Z.[Round]
Firebase Extension。
这是一个Firebase函数,可定期将Firestore集合更新为BigQuery。
这很好,但是似乎将Firestore文档数据放入BigQuery中的“数据”列中。
我的问题是,如何将JSON从数据列中取出到BigQuery中的单独列中。幸运的是,我的JSON / Firestore文档未嵌套且平坦,我打算保持这种状态。
任何建议都会很棒。我知道https://cloud.google.com/bigquery/docs/reference/standard-sql/json_functions,但正在努力寻找合适的SQL查询来实现这一目标。
答案 0 :(得分:1)
您应该可以使用JSON_EXTRACT_SCALAR
对数据进行“列化”。
with data as (select '{ "name" : "Jakob", "age" : "6" }' as my_json)
select
JSON_EXTRACT_SCALAR(my_json,'$.name') as name,
JSON_EXTRACT_SCALAR(my_json,'$.age') as age
from data
考虑将Firebase的“源”数据保持不变,然后创建一个解析json的视图,以提供可用列。
答案 1 :(得分:1)
SELECT
JSON_EXTRACT(data, "$.user") AS user
FROM `firebase-project.firestore_export.name-of-firestore-collection`
是我用来从数据列中提取JSON并将其格式化为不同列的功能。
感谢rtenha!