V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
sjmcefc2
V2EX  ›  PostgreSQL

求教 10T 的 postgresql 数据库应该怎么设计才能保证查询较快, 30s 级别?

  •  
  •   sjmcefc2 · 2019-06-19 11:54:10 +08:00 · 7142 次点击
    这是一个创建于 2021 天前的主题,其中的信息可能已经有所发展或是发生改变。

    一个 10T 左右的 postgresql 数据库,怎么设计才能提升查询效率呢?如果硬件一定的情况下,目前单台服务器。 尝试过 elk,貌似速度是快了,就是查询,join 之类的有点麻烦。

    41 条回复    2019-12-14 07:21:20 +08:00
    Chenamy2017
        1
    Chenamy2017  
       2019-06-19 13:17:52 +08:00
    持续关注...
    opengps
        2
    opengps  
       2019-06-19 13:30:23 +08:00
    挑战单机极限,这个话题值得关注
    endershadow
        3
    endershadow  
       2019-06-19 13:36:28 +08:00
    设计没用 上 citus data
    huiyifyj
        4
    huiyifyj  
       2019-06-19 13:42:24 +08:00 via Android
    我在想,这么大数据,应该都用分布式了吧🙃
    996icu
        5
    996icu  
       2019-06-19 13:42:32 +08:00
    10T 的数据不考虑换架构吗?
    abelce
        6
    abelce  
       2019-06-19 13:58:25 +08:00 via iPhone
    持续关注,目前依然是用 pgsql
    sjmcefc2
        7
    sjmcefc2  
    OP
       2019-06-19 14:04:06 +08:00
    @huiyifyj 10T 只是一块硬盘。。。算起来也就是 2 块硬盘吧

    @endershadow cool,看起来很棒。
    Rwing
        8
    Rwing  
       2019-06-19 14:05:22 +08:00
    关注
    luozic
        9
    luozic  
       2019-06-19 14:14:18 +08:00   ❤️ 1
    推薦去看看阿里雲大佬 https://github.com/digoal/blog/blob/master/README.md 的 blog
    sjmcefc2
        10
    sjmcefc2  
    OP
       2019-06-19 14:15:07 +08:00
    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 的案例,两个节点?
    flytrap
        11
    flytrap  
       2019-06-19 14:21:31 +08:00
    这是一个值得探讨的问题
    endershadow
        12
    endershadow  
       2019-06-19 14:28:50 +08:00
    方案很多, 你这个数据量 pivotal 家的 green plum 更适合
    sjmcefc2
        13
    sjmcefc2  
    OP
       2019-06-19 14:31:02 +08:00
    @luozic 特别棒, 当单库超过 100T 尚未完成写作。
    能提醒一下看哪一篇吗?
    sjmcefc2
        14
    sjmcefc2  
    OP
       2019-06-19 14:31:31 +08:00
    @endershadow 能告知下理由吗?
    karenn
        15
    karenn  
       2019-06-19 14:31:54 +08:00
    楼主你也得说一下你的机器的配置吧
    sjmcefc2
        16
    sjmcefc2  
    OP
       2019-06-19 14:40:54 +08:00
    机器也很弱机 DELL t630。
    endershadow
        17
    endershadow  
       2019-06-19 14:42:46 +08:00
    @sjmcefc2 如果数据量就是这个规模的话, green plum 中文资料多,上手更容易.pivotal 国内也有研发中心
    sjmcefc2
        18
    sjmcefc2  
    OP
       2019-06-19 14:46:07 +08:00
    @endershadow 数据量基本是这个规模了,最多能再加一个节点。pivotal greenplum 貌似是个数据分析平台了?
    需要购买?还是开源呢?导入数据可以 pgloader 之类工具不?
    est
        19
    est  
       2019-06-19 14:48:17 +08:00   ❤️ 1
    不讲数据结构和查询需求就可以银弹优化?
    sjmcefc2
        20
    sjmcefc2  
    OP
       2019-06-19 14:57:03 +08:00
    @endershadow Pivotal Greenplum 基于 PostgreSQL 和 Greenplum 数据库,可让用户更好地控制所部署的软件,减少供应商锁定,产品方向也更加开放。看起来 pivotal greenplum 和 greenplum 是不同的。
    endershadow
        21
    endershadow  
       2019-06-19 15:06:01 +08:00
    @sjmcefc2 都是开源的,greenplum 有自己的导入工具 gpload.其实两种方案都可以,代表两种不同的架构,一种是传统的 MPP 架构,一种是分布式架构.本质区别我也在学习中.
    endershadow
        22
    endershadow  
       2019-06-19 15:07:37 +08:00
    @sjmcefc2 greenplum 本来是商用的分析型数据库,后来被 pivotal 收购开源了
    mooncakejs
        23
    mooncakejs  
       2019-06-19 15:25:40 +08:00
    只要优化好查询条件,10T 也不算问题啊
    sjmcefc2
        24
    sjmcefc2  
    OP
       2019-06-19 15:49:36 +08:00
    @mooncakejs 只要。。。。您这个要求其实特别高。

    @endershadow 感谢解答。看起来 citus 和 pivotal greenplum 好像都能够满足,citus 一直强调自己不是一个 fork,而 pivotal greenplum 应该是 fork 吧
    passerbytiny
        25
    passerbytiny  
       2019-06-19 15:53:51 +08:00
    当初特意搜寻过 postgresql 能不能当大数据的物理存储,最后的结论是:虽然 postgresql 能支持超大文件,但它不支持分布式存储,所以不能作为大数据的物理存储。
    maierhuang
        26
    maierhuang  
       2019-06-19 15:56:40 +08:00
    100GB 的数据量,sql 写的烂的话照样反应慢。如果架构方面的优化,gp 会是个比较好的选择,mpp 架构会让你爽的不行,不过在表 join 方面会比较麻烦。如果继续用 postgresql 话,不知道能达到什么程度,还是要看的你 sql 是怎样的,不过多建几个备库,适当的读写分离能解决一些问题。
    mooncakejs
        27
    mooncakejs  
       2019-06-19 16:06:28 +08:00
    @sjmcefc2 一般查询条件很复杂的,都是太追求一致性,不想存多份数据。
    sjmcefc2
        28
    sjmcefc2  
    OP
       2019-06-19 16:21:04 +08:00
    @maierhuang 应用中大量的 join,写动作很少,大量查询。主要应用就是查询、分析,看起来 gp 对口。

    @passerbytiny 如果不支持分布式存储,citus 又是如何实现呢?或者效果为何如它说的那么好?

    @mooncakejs 主要是不少的 join 操作。
    encro
        29
    encro  
       2019-06-19 16:29:10 +08:00
    还是要分析 sql 吧,
    没有针对 sql 进行解析,都是扯淡,
    该触发器就触发器,
    减少 count,group by, file sort,
    慢查询日志都没有,没有优化的前提,
    阿里云 2000 一年的 MYSQL 数据库,放了数亿的数据,查询也是毫秒级啊。
    maierhuang
        30
    maierhuang  
       2019-06-19 16:38:47 +08:00
    gp 主打是 olap 场景,主打还是数据仓库的场景,主要是利用多台计算机的计算能力。citus 还是 oltp 的场景更多些,主打的还是 scale out 的功能。
    cstj0505
        31
    cstj0505  
       2019-06-19 16:54:10 +08:00
    10T,用 m2 组 raid 貌似 io 可解,剩下就是大内存,256,512 是必须的,然后多核。
    rrfeng
        32
    rrfeng  
       2019-06-19 16:57:15 +08:00
    不给数据结构只给数据量咋看,如果一个查询要 10T 全算一遍任谁也不行(
    lbp0200
        33
    lbp0200  
       2019-06-19 16:58:53 +08:00
    都 10T 了,应该上 Hive,或者花钱上 GoogleCloud 的 BigQuery、spanner
    sjmcefc2
        34
    sjmcefc2  
    OP
       2019-06-19 17:06:05 +08:00
    @maierhuang 非常感谢。gp 的网站貌似也是数据科学更多一些,citus 更像一个外挂?不知道理解的对不对
    wanganjun
        35
    wanganjun  
       2019-06-19 17:50:08 +08:00
    pg 版本是多少,先升级到 11,可以多核并行查询,并行排序,并行 join
    cstj0505
        36
    cstj0505  
       2019-06-19 17:52:08 +08:00
    @lbp0200 hive 30s 不可能的吧,hive 查询都是分钟级别的
    endershadow
        37
    endershadow  
       2019-06-19 18:06:07 +08:00
    opengps
        38
    opengps  
       2019-06-19 18:09:43 +08:00
    刚反应过来:目前的 10T 是通过多块硬盘组 Raid 实现的吧,所以硬盘 io 性能才够用
    sjmcefc2
        39
    sjmcefc2  
    OP
       2019-06-19 18:38:33 +08:00
    @wanganjun 先试试这个升级,目前是 10. 现在 11 都有这特性了啊

    @endershadow 最后苏宁选择了 citus?
    wanganjun
        40
    wanganjun  
       2019-06-19 20:06:28 +08:00
    就看 9 楼提供的阿里云大佬的链接,里面有针对并行的简要总结,也有一些说明和实践
    gaodeng2008
        41
    gaodeng2008  
       2019-12-14 07:21:20 +08:00 via Android
    citus 几乎没有事务隔离,建议选择场景谨慎使用。。。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1077 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 19:32 · PVG 03:32 · LAX 11:32 · JFK 14:32
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.