要解决Apache Hive对于Druid ingested数据源返回null的问题,可以尝试以下解决方法:
hive.druid.broker.address.default
localhost:8082
其中localhost:8082是Druid的broker地址。
检查Druid数据源的配置:确保Druid数据源的配置正确。例如,检查Druid的数据源定义文件中的维度和度量是否正确定义,并且与Hive表的字段匹配。
检查Druid数据源的数据:确保Druid数据源中有数据可供查询。可以使用Druid的查询接口或控制台来检查数据是否已成功插入。
检查Hive表的创建和查询:确保Hive表的创建和查询语句正确。例如,检查Hive表的列定义是否与Druid数据源的字段匹配,并且查询的条件与Druid数据源的数据匹配。
以下是一个示例,演示如何在Hive中创建一个与Druid数据源字段匹配的表,并查询数据:
-- 创建Hive表
CREATE TABLE my_table (
id INT,
name STRING,
age INT
)
STORED BY 'org.apache.hadoop.hive.druid.DruidStorageHandler'
TBLPROPERTIES (
"druid.datasource" = "my_datasource",
"druid.segment.column.name" = "id",
"druid.query.granularity" = "SECOND"
);
-- 查询数据
SELECT * FROM my_table;
请注意,以上解决方法的有效性可能取决于你的具体环境和配置。如果问题仍然存在,请参考Apache Hive和Druid的官方文档,或尝试在相关社区论坛上寻求帮助。