具有 mongoDB(无 SQL 数据库)的 Apache 超集
Apache superset with mongoDB(NO SQL database)
我正在使用 MongoDB。我的任务是为数据构建仪表板图表。所以,我正在使用 Apache 超集。我将 MongoDB 连接到 apache drill,因为它不会直接连接超集。然后将 apache drill 连接到 Apachesueperset。我的 collection 是嵌套的。我如何处理此嵌套数据以用于仪表板 charts.My 数据如下所示
{
"_id": {
"$oid": "6229d3cfdbfc81a8777e4821"
},
"jobs": [
{
"job_ID": {
"$oid": "62289ded8079821eb24760e0"
},
"New": false,
"Expired": false
},
{
"job_ID": {
"$oid": "6228a252fb4554dd5c48202a"
},
"New": true,
"Expired": true
},
{
"job_ID": {
"$oid": "622af1c391b290d34701af9f"
},
"New": true,
"Expired": false
}
],
"email": "mani2090996@ail.com"
}
我在apache drill中查询如下
SELECT flat.fill FROM (SELECT FLATTEN(t.jobs) AS fill FROM mongo.recruitingdb.flatten.`Vendorjobs` t) flat WHERE flat.fill.New = flase;
我遇到了解析错误
org.apache.drill.common.exceptions.UserRemoteException:解析错误:遇到“。”在第 1 行,第 123 列。
Superset 并不能很好地处理嵌套数据。但是 Drill 可以,因此您必须精心设计查询以生成可以可视化的列。
看这里:https://drill.apache.org/docs/json-data-model/
在这里:https://drill.apache.org/docs/querying-complex-data-introduction/.
更新:
试试下面的查询。 FROM
子句可能不完全正确,但你应该从这里得到灵感。
请注意,您可以通过两种方式访问 Drill 中的地图:
tablename.mapname.field
或
mapname['field']
您可以对任何级别的嵌套执行此操作。
SELECT mongoTable.jobs.job_ID.`$oid` AS job_ID,
mongoTable.jobs.`New` AS new,
mongoTable.jobs.`Expired` AS expired
FROM
(
SELECT flatten(jobs) AS jobs
FROM mongo.recruitingdb.flatten.`Vendorjobs` AS t1
WHERE t1.jobs.New = false
) AS mongoTable
我正在使用 MongoDB。我的任务是为数据构建仪表板图表。所以,我正在使用 Apache 超集。我将 MongoDB 连接到 apache drill,因为它不会直接连接超集。然后将 apache drill 连接到 Apachesueperset。我的 collection 是嵌套的。我如何处理此嵌套数据以用于仪表板 charts.My 数据如下所示
{
"_id": {
"$oid": "6229d3cfdbfc81a8777e4821"
},
"jobs": [
{
"job_ID": {
"$oid": "62289ded8079821eb24760e0"
},
"New": false,
"Expired": false
},
{
"job_ID": {
"$oid": "6228a252fb4554dd5c48202a"
},
"New": true,
"Expired": true
},
{
"job_ID": {
"$oid": "622af1c391b290d34701af9f"
},
"New": true,
"Expired": false
}
],
"email": "mani2090996@ail.com"
}
我在apache drill中查询如下
SELECT flat.fill FROM (SELECT FLATTEN(t.jobs) AS fill FROM mongo.recruitingdb.flatten.`Vendorjobs` t) flat WHERE flat.fill.New = flase;
我遇到了解析错误 org.apache.drill.common.exceptions.UserRemoteException:解析错误:遇到“。”在第 1 行,第 123 列。
Superset 并不能很好地处理嵌套数据。但是 Drill 可以,因此您必须精心设计查询以生成可以可视化的列。
看这里:https://drill.apache.org/docs/json-data-model/
在这里:https://drill.apache.org/docs/querying-complex-data-introduction/.
更新:
试试下面的查询。 FROM
子句可能不完全正确,但你应该从这里得到灵感。
请注意,您可以通过两种方式访问 Drill 中的地图:
tablename.mapname.field
或mapname['field']
您可以对任何级别的嵌套执行此操作。
SELECT mongoTable.jobs.job_ID.`$oid` AS job_ID,
mongoTable.jobs.`New` AS new,
mongoTable.jobs.`Expired` AS expired
FROM
(
SELECT flatten(jobs) AS jobs
FROM mongo.recruitingdb.flatten.`Vendorjobs` AS t1
WHERE t1.jobs.New = false
) AS mongoTable