如何使用 Hive 检查 Druid 数据源
How inspect Druid datasources with Hive
昨天,我从 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 table.
我测试了这个,但我不知道它是否是 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 table?
有人可以向我解释更多有关 Hive/Druid 互动的信息吗?
谢谢 :D
我想你在配置单元中注册了你的德鲁伊数据源。现在,您可以 运行 在此 table.
之上使用配置单元服务器进行查询
您的 table 定义在我看来是正确的 我认为您成功地将德鲁伊数据源与配置单元集成在一起。您可以在 table.
中查看德鲁伊相关属性
现在,当您查询 table 时,它将根据查询使用处理引擎,它将使用 hive 服务器和 druid。它可以在独立的基础上使用两者或其中之一的组合来执行查询。这取决于该查询是否可以转换为德鲁伊查询。
您可以参考此文档以获取有关 Hive/Druid 交互的更多信息:https://cwiki.apache.org/confluence/display/Hive/Druid+Integration(参考:从 Hive 查询 Druid)
昨天,我从 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 table.
我测试了这个,但我不知道它是否是 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 table? 有人可以向我解释更多有关 Hive/Druid 互动的信息吗?
谢谢 :D
我想你在配置单元中注册了你的德鲁伊数据源。现在,您可以 运行 在此 table.
之上使用配置单元服务器进行查询您的 table 定义在我看来是正确的 我认为您成功地将德鲁伊数据源与配置单元集成在一起。您可以在 table.
中查看德鲁伊相关属性现在,当您查询 table 时,它将根据查询使用处理引擎,它将使用 hive 服务器和 druid。它可以在独立的基础上使用两者或其中之一的组合来执行查询。这取决于该查询是否可以转换为德鲁伊查询。
您可以参考此文档以获取有关 Hive/Druid 交互的更多信息:https://cwiki.apache.org/confluence/display/Hive/Druid+Integration(参考:从 Hive 查询 Druid)