昨天,我从 Hive 创建了我的第一个数据源 Druid。今天,我不确定这是否有效......
首先,我运行以下代码来创建我的数据库:
SET hive.druid.broker.address.default = 10.20.173.30:8082;
SET hive.druid.metadata.username = druid;
SET hive.druid.metadata.password = druid_password;
SET hive.druid.metadata.db.type = postgresql;
SET hive.druid.metadata.uri = jdbc:postgresql://10.20.173.31:5432/druid;
CREATE EXTERNAL TABLE test (
`__time` TIMESTAMP,
`userId` STRING,
`lang` STRING,
`location` STRING,
`name` STRING
)
STORED BY 'org.apache.hadoop.hive.druid.DruidStorageHandler'
我可以在我的 Hive 架构上看到这个数据源。我怎么知道这个数据源是Druid数据源而不是Hive表。
我测试了这个,但我不知道它是否是 Druid 数据源。
DESCRIBE FORMATTED test;
结果
+-------------------------------+----------------------------------------------------+----------------------------------------------------+
| col_name | data_type | comment |
+-------------------------------+----------------------------------------------------+----------------------------------------------------+
| # col_name | data_type | comment |
| __time | timestamp | from deserializer |
| userid | string | from deserializer |
| lang | string | from deserializer |
| location | string | from deserializer |
| name | string | from deserializer |
| # Detailed Table Information | NULL | NULL |
| Database: | druid_datasources | NULL |
| OwnerType: | USER | NULL |
| Owner: | hive | NULL |
| CreateTime: | Tue Oct 15 12:42:22 CEST 2019 | NULL |
| LastAccessTime: | UNKNOWN | NULL |
| Retention: | 0 | NULL |
| Location: | hdfs://10.20.173.30:8020/warehouse/tablespace/external/hive/druid_datasources.db/test | NULL |
| Table Type: | EXTERNAL_TABLE | NULL |
| Table Parameters: | NULL | NULL |
| | COLUMN_STATS_ACCURATE | {\"BASIC_STATS\":\"true\",\"COLUMN_STATS\":{\"__time\":\"true\",\"lang\":\"true\",\"location\":\"true\",\"name\":\"true\",\"userid\":\"true\"}} |
| | EXTERNAL | TRUE |
| | bucketing_version | 2 |
| | druid.datasource | druid_datasources.test ||
| | numFiles | 0 |
| | numRows | 0 |
| | rawDataSize | 0 |
| | storage_handler | org.apache.hadoop.hive.druid.DruidStorageHandler |
| | totalSize | 0 |
| | transient_lastDdlTime | 1571136142 |
| | NULL | NULL |
| # Storage Information | NULL | NULL |
| SerDe Library: | org.apache.hadoop.hive.druid.serde.DruidSerDe | NULL |
| InputFormat: | null | NULL |
| OutputFormat: | null | NULL |
| Compressed: | No | NULL |
| Num Buckets: | -1 | NULL |
| Bucket Columns: | [] | NULL |
| Sort Columns: | [] | NULL |
| Storage Desc Params: | NULL | NULL |
| | serialization.format | 1 |
+-------------------------------+----------------------------------------------------+----------------------------------------------------+
我做得很好还是它是带有 Druid 参数的 Hive 表? 有人可以向我解释更多有关 Hive/Druid 交互的信息吗?
谢谢:D
最佳答案
我认为您在配置单元中注册了您的德鲁伊数据源。现在您可以使用此表顶部的 hive 服务器运行查询。
你的表定义对我来说看起来是正确的,我认为你成功地将druid datasoruce与hive集成。您可以在表格中看到druid相关属性。
现在,当您查询表时,它将使用处理引擎,具体取决于查询,它将使用 hive 服务器和 druid。它可以单独使用两者或其中之一的组合来执行查询。这取决于该查询是否可以转换为druid查询。
您可以引用此文档以获取有关 Hive/Druid 交互的更多信息:https://cwiki.apache.org/confluence/display/Hive/Druid+Integration (引用:从Hive查询Druid)
关于hadoop - 如何使用 Hive 检查 Druid 数据源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58394584/