Presto & MongoDB - 架构创建和更新
Presto & MongoDB - Schema creation and updates
我在本地完成了 Presto set-up,并且能够从 MongoDB collection 查询数据。一开始,我将 presto_schema
collection 创建到 MongoDB 中,让 Presto 了解 Collection 详细信息以便查询,并且我在我的列表中添加了一个 Collection 条目presto_schema
。但是,后来我注意到任何新的 Collection 到 MongoDB,但没有添加到 presto_schema
仍然可以从 Presto 访问,并且在第一次查询时观察到新的 collection 详细信息会自动修改为 presto_schema
collection 以及相关的新 collection 架构详细信息。
但是对于具有嵌套架构的 collections,它没有自动添加所有嵌套字段,它只添加它从初始查询中识别的内容。
例如,下面是我的 Collection (new_collection
),它是新创建的,内容如下:
{
"_id" : "13ec5e2a-ef04-4d05-b971-ef8e65638f83",
"name" : "npt",
"client" : "npt_client",
"attributes" : {
"level" : 697,
"country" : "SC",
"doy" : 2022
}
}
如果我从 Presto 收到的第一个查询如下:
presto:mydb> select count(*) from new_collection where attributes.level > 200;
presto_schema
会自动添加此新 collection 的新条目,但是,它会添加所有 non-nested 字段信息以及可从初始查询,但未能添加其他嵌套字段。因此,对其他嵌套字段的任何查询,Presto 都无法识别它们。我可以继续使用所有缺失的嵌套字段修改 presto_schema
,但想知道是否有任何其他自动化方法。因此,我们不需要在 collection 中添加任何新字段时手动修改它(考虑到我们有一个完整的动态字段的场景,它将被添加到 Collection 的嵌套 object).
我建议升级到 Trino(以前称为 PrestoSQL),因为 MongoDB 连接器(版本 >= 360)支持将字段映射到 JSON 类型。此类型映射在 prestodb 中不可用。
我在本地完成了 Presto set-up,并且能够从 MongoDB collection 查询数据。一开始,我将 presto_schema
collection 创建到 MongoDB 中,让 Presto 了解 Collection 详细信息以便查询,并且我在我的列表中添加了一个 Collection 条目presto_schema
。但是,后来我注意到任何新的 Collection 到 MongoDB,但没有添加到 presto_schema
仍然可以从 Presto 访问,并且在第一次查询时观察到新的 collection 详细信息会自动修改为 presto_schema
collection 以及相关的新 collection 架构详细信息。
但是对于具有嵌套架构的 collections,它没有自动添加所有嵌套字段,它只添加它从初始查询中识别的内容。
例如,下面是我的 Collection (new_collection
),它是新创建的,内容如下:
{
"_id" : "13ec5e2a-ef04-4d05-b971-ef8e65638f83",
"name" : "npt",
"client" : "npt_client",
"attributes" : {
"level" : 697,
"country" : "SC",
"doy" : 2022
}
}
如果我从 Presto 收到的第一个查询如下:
presto:mydb> select count(*) from new_collection where attributes.level > 200;
presto_schema
会自动添加此新 collection 的新条目,但是,它会添加所有 non-nested 字段信息以及可从初始查询,但未能添加其他嵌套字段。因此,对其他嵌套字段的任何查询,Presto 都无法识别它们。我可以继续使用所有缺失的嵌套字段修改 presto_schema
,但想知道是否有任何其他自动化方法。因此,我们不需要在 collection 中添加任何新字段时手动修改它(考虑到我们有一个完整的动态字段的场景,它将被添加到 Collection 的嵌套 object).
我建议升级到 Trino(以前称为 PrestoSQL),因为 MongoDB 连接器(版本 >= 360)支持将字段映射到 JSON 类型。此类型映射在 prestodb 中不可用。