一个 10T 左右的 postgresql 数据库,怎么设计才能提升查询效率呢?如果硬件一定的情况下,目前单台服务器。 尝试过 elk,貌似速度是快了,就是查询,join 之类的有点麻烦。>
1 Chenamy2017 2019-06-19 13:17:52 +08:00 持续关注... |
![]() | 2 opengps 2019-06-19 13:30:23 +08:00 挑战单机极限,这个话题值得关注 |
3 endershadow 2019-06-19 13:36:28 +08:00 设计没用 上 citus data |
![]() | 4 fengyj 2019-06-19 13:42:24 +08:00 via Android 我在想,这么大数据,应该都用分布式了吧 |
5 996icu 2019-06-19 13:42:32 +08:00 10T 的数据不考虑换架构吗? |
![]() | 6 abelce 2019-06-19 13:58:25 +08:00 via iPhone 持续关注,目前依然是用 pgsql |
7 sjmcefc2 OP |
8 Rwing 2019-06-19 14:05:22 +08:00 关注 |
9 luozic 2019-06-19 14:14:18 +08:00 ![]() 推去看看阿里大佬 https://github.com/digoal/blog/blob/master/README.md 的 blog |
10 sjmcefc2 OP Citus is an extension to Postgres that transforms Postgres into a distributed database. Pex uses Citus to ingest 80B data points per day and analyze that data in real-time. They use a 20+ node cluster on Google Cloud. Agari uses Citus to secure more than 85 percent of U.S. consumer emails on two 6-8 TB clusters. 看起来 citus 好棒啊,有起是 agari 的案例,两个节点? |
11 flytrap 2019-06-19 14:21:31 +08:00 这是一个值得探讨的问题 |
12 endershadow 2019-06-19 14:28:50 +08:00 方案很多, 你这个数据量 pivotal 家的 green plum 更适合 |
14 sjmcefc2 OP @endershadow 能告知下理由吗? |
![]() | 15 karenn 2019-06-19 14:31:54 +08:00 楼主你也得说一下你的机器的配置吧 |
16 sjmcefc2 OP 机器也很弱机 DELL t630。 |
17 endershadow 2019-06-19 14:42:46 +08:00 @sjmcefc2 如果数据量就是这个规模的话, green plum 中文资料多,上手更容易.pivotal 国内也有研发中心 |
18 sjmcefc2 OP @endershadow 数据量基本是这个规模了,最多能再加一个节点。pivotal greenplum 貌似是个数据分析平台了? 需要购买?还是开源呢?导入数据可以 pgloader 之类工具不? |
![]() | 19 est 2019-06-19 14:48:17 +08:00 ![]() 不讲数据结构和查询需求就可以银弹优化? |
20 sjmcefc2 OP @endershadow Pivotal Greenplum 基于 PostgreSQL 和 Greenplum 数据库,可让用户更好地控制所部署的软件,减少供应商锁定,产品方向也更加开放。看起来 pivotal greenplum 和 greenplum 是不同的。 |
21 endershadow 2019-06-19 15:06:01 +08:00 @sjmcefc2 都是开源的,greenplum 有自己的导入工具 gpload.其实两种方案都可以,代表两种不同的架构,一种是传统的 MPP 架构,一种是分布式架构.本质区别我也在学习中. |
22 endershadow nbsp; 2019-06-19 15:07:37 +08:00 @sjmcefc2 greenplum 本来是商用的分析型数据库,后来被 pivotal 收购开源了 |
23 mooncakejs 2019-06-19 15:25:40 +08:00 只要优化好查询条件,10T 也不算问题啊 |
24 sjmcefc2 OP @mooncakejs 只要。。。。您这个要求其实特别高。 @endershadow 感谢解答。看起来 citus 和 pivotal greenplum 好像都能够满足,citus 一直强调自己不是一个 fork,而 pivotal greenplum 应该是 fork 吧 |
![]() | 25 passerbytiny 2019-06-19 15:53:51 +08:00 当初特意搜寻过 postgresql 能不能当大数据的物理存储,最后的结论是:虽然 postgresql 能支持超大文件,但它不支持分布式存储,所以不能作为大数据的物理存储。 |
26 maierhuang 2019-06-19 15:56:40 +08:00 100GB 的数据量,sql 写的烂的话照样反应慢。如果架构方面的优化,gp 会是个比较好的选择,mpp 架构会让你爽的不行,不过在表 join 方面会比较麻烦。如果继续用 postgresql 话,不知道能达到什么程度,还是要看的你 sql 是怎样的,不过多建几个备库,适当的读写分离能解决一些问题。 |
27 mooncakejs 2019-06-19 16:06:28 +08:00 @sjmcefc2 一般查询条件很复杂的,都是太追求一致性,不想存多份数据。 |
28 sjmcefc2 OP @maierhuang 应用中大量的 join,写动作很少,大量查询。主要应用就是查询、分析,看起来 gp 对口。 @passerbytiny 如果不支持分布式存储,citus 又是如何实现呢?或者效果为何如它说的那么好? @mooncakejs 主要是不少的 join 操作。 |
![]() | 29 encro 2019-06-19 16:29:10 +08:00 还是要分析 sql 吧, 没有针对 sql 进行解析,都是扯淡, 该触发器就触发器, 减少 count,group by, file sort, 慢查询日志都没有,没有优化的前提, 阿里云 2000 一年的 MYSQL 数据库,放了数亿的数据,查询也是毫秒级啊。 |
30 maierhuang 2019-06-19 16:38:47 +08:00 gp 主打是 olap 场景,主打还是数据仓库的场景,主要是利用多台计算机的计算能力。citus 还是 oltp 的场景更多些,主打的还是 scale out 的功能。 |
31 cstj0505 2019-06-19 16:54:10 +08:00 10T,用 m2 组 raid 貌似 io 可解,剩下就是大内存,256,512 是必须的,然后多核。 |
![]() | 32 rrfeng 2019-06-19 16:57:15 +08:00 不给数据结构只给数据量咋看,如果一个查询要 10T 全算一遍任谁也不行( |
![]() | 33 lbp0200 2019-06-19 16:58:53 +08:00 都 10T 了,应该上 Hive,或者花钱上 GoogleCloud 的 BigQuery、spanner |
34 sjmcefc2 OP @maierhuang 非常感谢。gp 的网站貌似也是数据科学更多一些,citus 更像一个外挂?不知道理解的对不对 |
![]() | 35 wanganjun 2019-06-19 17:50:08 +08:00 pg 版本是多少,先升级到 11,可以多核并行查询,并行排序,并行 join |
37 endershadow 2019-06-19 18:06:07 +08:00 |
![]() | 38 opengps 2019-06-19 18:09:43 +08:00 刚反应过来:目前的 10T 是通过多块硬盘组 Raid 实现的吧,所以硬盘 io 性能才够用 |
39 sjmcefc2 OP |
![]() | 40 wanganjun 2019-06-19 20:06:28 +08:00 就看 9 楼提供的阿里云大佬的链接,里面有针对并行的简要总结,也有一些说明和实践 |
41 gaodeng2008 2019-12-14 07:21:20 +08:00 via Android citus 几乎没有事务隔离,建议选择场景谨慎使用。。。 |