Postgresql
使用 citusdb 安裝 Postgres 分片
我們正在開發一個大數據產品的原型。我們有近 20 億條記錄。我們使用 PostgresSQL 9.5 作為後端,使用 Python 作為前端。
我們在 Amazon 伺服器上使用 16*2.4 GHz 處理器和 160 GB RAM。
我們的查詢結果基準最長為 10 秒,儘管對具有索引的表的簡單計數查詢大約需要 30 分鐘到 1 小時。
為了克服我們的性能問題,我需要更改配置文件:
max_connections = 20 shared_buffers = 14GB effective_cache_size = 42GB work_mem = 367001kB maintenance_work_mem = 2GB checkpoint_segments = 128 checkpoint_completion_target = 0.9 wal_buffers = 16MB default_statistics_target = 500
sale_date
我在列上創建了每月分區。儘管性能仍然很差。我正在閱讀一些文章,發現 PostgreSQL 使用單個 CPU 從單個連接進行查詢處理。要將所有 CPU 用於查詢處理,我們可以使用分片,
pg_shard
這是 cistusdata 為實現此目的而創建的開源組件。我已經按照multi-node-setup-page上的說明安裝了 citusdb 。
當我執行
CREATE EXTENSION pg_shard;
時,我收到此錯誤:錯誤:無法打開擴展控製文件“/usr/share/postgresql/9.5/extension/pg_shard.control”:沒有這樣的文件或目錄
我手動將
pg_shard.control
文件複製到擴展文件夾中,然後開始出現此錯誤:pg_shard–1.2.sql 未找到。
任何幫助表示讚賞。我怎麼解決這個問題?
看起來 pg_shard 文件沒有安裝。您將需要從原始碼建構 pg_shard 並使用pg_shard 源文件夾中的make install****安裝它。
請注意 pg_shard 已經結束生命,它包含在最近發布的(Citus 5.0)中。
如果您使用的是基於 RPM 的系統,您也可以從 PGDG 獲得 Citus。
- sudo yum install -y https://download.postgresql.org/pub/repos/yum/9.5/redhat/rhel-6-x86_64/pgdg-ami201503-95-9.5-2.noarch.rpm
- sudo yum install -y others_95