通过 Hive 查询语句查出结果集,向 elasticsearch 导入结果集的小工具
公司的数据分析经常需要看各种报表,多是分析统计类需求,类 SQL 语言适合做具有筛选逻辑的数据(有时候有的数据无法从业务主库中查出来,只能直接前端埋点),Elasticsearch 适合做统计,而且结合 Kibana 可以直接生成报表!
耗时查询不宜直接在线上查,还好公司已经实现每天在访问低谷期同步线上数据到 Hadoop 大数据中心。
对这类常有的统计类需求,我的做法是先用 HQL 做筛选逻辑,ES 拿到数据再进行聚合统计,如每天、每月、某人的数据。 结合 ES 其实更多是因为需求方喜欢 Kibana 的图
[es]
-- Elasticserch 地址、用户名、密码
hosts = 192.168.2.100:9200
username = elastic
password = 888888
[hive]
-- Hive 地址、端口、数据库名、用户等配置
host = 127.0.0.1
port = 10000
authMechanism = PLAIN
user = sa_cluster
database = julanling_g
-- HiveQL 文件位置
hql_path = ./hql_test.sql
-- 存入 ES 时的分页大小
-- 为了防止结果集过大,导致查询时内存吃不消,建议配置此项,无分页配置时默认分页大小 3000
page_size = 2
[es_bulk]
-- 存入 ES 时,定义一个文档中的各个字段名称,注意与查询结果的各个字段按顺序对应,才能得到对应正确的数据值
-- 如该例的 HQL 为 select r_name, r_id from user_role
-- ES 文档:{"role_name": "xxx", "role_id":123}
columns = role_name,role_id
-- 存入 ES 的目标 index 和 type
index = tqc_test
type = tqc_test_type
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.