公司大数据这块一直用 hive 跑的,但是 hive 实时性不行,跑跑后台任务还可以。 最近想把这个实时性查询弄上去,spark 是一个选择,肯定比 hive 快,但是毕竟是 scala 写的,上限应该不如基于 C 的查询引擎快,这次想要一步到位。 impala 是一个选项,但问题也挺多的,比如复杂类型只支持 parquet 类型存储,然而公司的数据一直都是 text 存的,光转这个就是一个巨大的工程,还有一些问题比如 partition key 不支持 date 类型、map 根据键访问值的方式过于奇怪等等。 最后打算用 postgres-xl,因为公司用 pg 比较多,线上数据库也是 pgxl,也写过一些插件对 pg 源码也比较熟悉。但是做了一阵子发现这个东西简直不适合做大数据啊,不支持多进程,生成的查询计划也很蠢,而且查询过程中连个进度条都没有。 想问一下大家有拿这个做大数据分析的吗?还是我的使用方法有问题?
1
chennqqi 2020-01-22 15:01:18 +08:00
看场景和数据量呀,用 ES 不香吗
|
3
vveexx 2020-01-22 15:11:02 +08:00
如果并发不高,试试 clickhouse ?如果实时性要求很高,那就换 flink
|
4
dlsflh 2020-01-22 15:12:38 +08:00 via Android
完全外行,看到这个突然想到或许可以请教一下楼主和点进来的大佬们。
传统制造业,有一些时序的传感器数据,基本上两三天一次试验,会产生好几个 1GB 的 txt 文件。(传感器采样频率不一) 最近有了一些数据分析的任务,比如说统计一个布尔值的传感器在某天到某天这段时间内一共开关的次数;还有一些在 A 传感器大于 X,B 传感器小于 Y…的条件下输出所有的时间片段。 我现在在用 pandas 针对某个具体问题写一个脚本在勉强应付,请问一下对于计算机基础不高的企业有什么更好的工具吗?(学习能力有) 上数据库能比较优雅解决这些问题吗?最好是能让现在还在把数据导入 Excel 然后用 excel 分析数据的同事有第一次工业革命纺织女工见到纺织机的那种感觉。 |
5
cqcn1991 2020-01-22 15:12:47 +08:00 via Android
很奇怪为啥不用 spark
|
7
dlsflh 2020-01-22 15:20:17 +08:00 via Android
@cqcn1991 单机是啥意思?如果有比较成熟的解决方案买服务器应该也行。
现在 pandas 脚本每次都要先导入数据, 有什么办法加速呢?我看数据库经常有什么索引啥的,是不是能快点? 现在历史文件加起来也有好几百 GB 了,希望新的方法能够统一管理这些文件,我现在限于自己现学现卖的水平还在每个脚本循环处理所有文件。 |
8
leavan OP @vveexx 实时性不是 flink 那种更新很快的实时性,大概就是需要数据的同事心血来潮写了一个 SQL 查询,从敲进去 SQL 到结果出来的速度很快。公司的数据都是存在 hdfs 上的,所以比较希望查询引擎能轻量级一点,做个 hdfs 的挂件就行,不要自己管理数据。
|
9
leavan OP @cqcn1991 spark 确实是一个解决方案,主要问题是他是 scala 写的,速度不如 C 系列的比如 impala 快,这次想一步到位。
|
10
find 2020-01-22 15:44:48 +08:00 via iPhone
速度不如 c 快 ,出不如汇编呢? 还在往这个方向去想,注定不是一个好的 engineer,pg 用的多 可使用 gp 啊 ,还有很多 ap 引擎 一抓一大把 presto duird clickhouse drill tezen
|
11
MinQ 2020-01-22 15:47:09 +08:00 1
@dlsflh 如果数据能上云的话就买个阿里云的 HBase,每次把数据传上去,计算的时候再按需求从 HBase 中取。不行的话就只能本地搭建 Hadoop 集群了
|
12
undeflife 2020-01-22 15:52:38 +08:00
用 impala,新数据用 parquet,历史数据可以保持 text,最上层用 view 将两个数据表包装即可。同时也可以跑任务将 text 转换成 parquet,看你集群的处理能力,几十 T 数据的 1 周应该是可以完成格式转换的。
postgres-xl 跑大数据我没了解过,是否存在用了 postgres-xl 后你就只能用 postgres-xl 了,而使用 hive 的生态,你有大量的解决方案可选?如果答案是肯定的,那这个选择也显而易见了。 另外,你对于语言性能的纠结有些莫名,你最底层的存储还是 hdfs 呢? java 写的。 |
13
sunmacarenas 2020-01-22 15:55:14 +08:00
你这种其实是数据集市数据仓库的性能,可以考虑一下内存数据库,把所有热数据放内存里,缺点就是硬件成本有点高
|
14
chennqqi 2020-01-22 16:15:48 +08:00
你这个数据量看你想花多大成本 spark/flink 是一个方案 ES/Clickhouse 也能解决
|
15
funky 2020-01-22 16:27:48 +08:00 via iPhone
为啥不试试 timescaledb
|
16
wangxiyu191 2020-01-22 20:26:50 +08:00
@dlsflh 有点时序数据库的感觉,可以看下 influxdb,不想自己费劲运维的话阿里云也有 TSDB。
|
17
wangxiyu191 2020-01-22 20:30:27 +08:00
在线分析而且是对 PG 有底子的话可以看下 Greenplum。此处也安利一下 AnalyticDB (如果能用云服务的话)。
|
18
dlsflh 2020-01-22 20:34:43 +08:00 via Android
|
19
vveexx 2020-01-23 10:13:43 +08:00
SparkSQL 应该最合适了,也不是非得用 scala
|
20
snappyone 2020-01-24 14:20:43 +08:00 via Android
因为 spark 是 scala 所以不用????
|