gpt4 book ai didi

json - Firebase 数据到 Google BigQuery

转载 作者:行者123 更新时间:2023-12-04 23:18:20 24 4
gpt4 key购买 nike

Firebase 提供 private backups on Google Cloud Storage .特色用例之一是“摄取到分析产品”:

Private Backups provides a perfect pipeline into cloud analytics products such as Google’s BigQuery. Cloud Analytics products often prefer to ingest data through Cloud Storage buckets rather than directly from the application.

我在 Firebase 中有大量数据(导出到 Cloud Storage 存储桶时超过 1GB),并且如 Firebase 产品中所述,我想将这些数据放入 Big Query。

但是真的有可能编写一个适合 Firebase 原始数据的表模式吗?
我们以 dinosaur-facts 为例Firebase 文档中的数据库。
JSON 如下所示:

{
"dinosaurs" : {
"bruhathkayosaurus" : {
"appeared" : -70000000,
"height" : 25
},
"lambeosaurus" : {
"appeared" : -76000000,
"height" : 2.1
}
},
"scores" : {
"bruhathkayosaurus" : 55,
"lambeosaurus" : 21
}
}

要列出所有恐龙,我想唯一的方法是在 bigQuery 模式中使用 RECORD 字段。但通常 BigQuery 中的 RECORDS 对应于导入的 JSON 中的数组。 Firebase 中没有数组,只有一个以恐龙名称作为键名的对象。

因此,像这样的 BigQuery 表架构不起作用:
[
{
"name": "dinosaurs",
"type": "RECORD",
"mode": "REQUIRED",
"fields": [
{
"name": "dinosaur",
"type": "RECORD",
"mode": "REPEATED",
"fields": [
{
"name": "appeared",
"type": "INTEGER"
},
{
"name": "height",
"type": "INTEGER"
},
{
"name": "length",
"type": "INTEGER"
},
{
"name": "order",
"type": "STRING"
},
{
"name": "vanished",
"type": "INTEGER"
},
{
"name": "weight",
"type": "INTEGER"
}
]
},
{
"name": "scores",
"type": "RECORD",
"mode": "REPEATED",
"fields": [
{
"name": "dinosaur",
"type": "INTEGER"
}
]
}
]
}
]

是否可以编写适合 Firebase 原始数据的表架构?或者我们应该首先准备数据以使其与 BigQuery 兼容?

最佳答案

由于上面的数据只是 JSON,你应该能够让它与 Firebase 一起工作。但是,我认为准备数据会容易得多备份后 .

您提到 Firebase 数据中没有数组。 Firebase does support arrays, but they have to meet a certain criteria.

// we send this
['a', 'b', 'c', 'd', 'e']
// Firebase stores this
{0: 'a', 1: 'b', 2: 'c', 3: 'd', 4: 'e'}
// since the keys are numeric and sequential,
// if we query the data, we get this
['a', 'b', 'c', 'd', 'e']

尽管它看起来像 Firebase 数据库中的一个对象,但在查询时它会作为数组返回。

因此,在 Firebase 数据库中创建架构是可行的,但这可能会为您的应用程序带来大量开销。

关于json - Firebase 数据到 Google BigQuery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34332239/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com