Postgresql

使用 citusdb 安裝 Postgres 分片

  • April 7, 2016

我們正在開發一個大數據產品的原型。我們有近 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。

引用自:https://dba.stackexchange.com/questions/134369