Di trú bảng PostgreSQL sang Hypertable (TimescaleDB)
Hướng dẫn từng bước chuyển bảng PostgreSQL hiện có thành hypertable của TimescaleDB, kèm cấu hình nén và truy vấn kiểm chứng hiệu năng.
Dữ liệu · Phân tíchNâng cao★ 1,831⑂ 107Điểm AI 9/10Cập nhật lần cuối: 2 thg 9, 2026
Làm được gì
- Chọn cấu hình tối ưu: liệt kê cột ứng viên để phân vùng (timestamp, created_at, id...), tính chunk_time_interval dựa trên kích thước index so với RAM (mục tiêu index của chunk gần đây < 25% RAM); nếu không chắc thì giữ mặc định 7 ngày.
- Kiểm tra ràng buộc: xác minh PK/UNIQUE có chứa cột phân vùng; nếu cần sửa thì bắt buộc xin phép người dùng trước. Khóa ngoại Hypertable→Hypertable không được hỗ trợ nên phải dừng hoặc bỏ FK.
- Kế hoạch thực thi: bảng < 1GB dùng chuyển đổi tại chỗ (
create_hypertable); bảng > 1GB dùng blue-green (tạo bảng mới → copy theo lô theo khoảng thời gian → hoán đổi tên trong cửa sổ bảo trì). - Cấu hình nén (columnstore): tiêu chí chọn segmentby/orderby/sparse index và thiết lập
add_columnstore_policy. - Kiểm chứng sau di trú: xem phân bố chunk và tỷ lệ nén, dùng EXPLAIN (ANALYZE, BUFFERS) để xác nhận loại trừ chunk và ColumnarScan, chẩn đoán INSERT chậm do quá nhiều index, kèm view theo dõi lâu dài.
Dành cho ai
- Backend/Data engineer đang vận hành PostgreSQL với bảng time-series, log, event phình to nhanh
- Đội ngũ đang cân nhắc hoặc vừa cài TimescaleDB nhưng chưa rõ quy trình chuyển đổi
- DBA/SRE cần một kế hoạch di trú bảng lớn với thời gian ngừng dịch vụ tối thiểu
Ví dụ sử dụng
- "Chuyển bảng
sensor_readings120GB sang hypertable, hạn chế downtime" → nhận quy trình blue-green, truy vấn copy theo lô, transaction hoán đổi bảng và ước lượng thời gian (~75k dòng/giây). - "Server 64GB RAM thì chunk interval nên đặt bao nhiêu?" → tính lượng index mỗi giờ rồi đề xuất khoảng lớn nhất vẫn giữ index chunk gần đây dưới ngưỡng.
- "Đã chuyển xong nhưng tỷ lệ nén chỉ 60%" → phân tích số dòng mỗi segment để phát hiện segmentby chọn sai và đề xuất order_by/sparse index mới.
· · · Hướng dẫn cài đặt · · ·
Dùng thử ngay, không cần cài
Dán đoạn dưới vào Claude là dùng được skill này mà không cần cài đặt.
Hãy đọc hướng dẫn trong tệp này và làm theo để giúp mình: https://raw.githubusercontent.com/timescale/pg-aiguide/HEAD/skills/migrate-postgres-tables-to-hypertables/SKILL.md Mình muốn: (viết việc bạn cần ở đây)
Nếu Claude không mở được liên kết, hãy mở liên kết và copy nội dung vào rồi dán.
↓ Thấy hữu ích thì tải ZIP bên dưới và cài. Sau đó skill tự chạy, không phải dán lại mỗi lần.
Cài vào ứng dụng Claude (không cần terminal)
- Tải tệp ZIP bằng nút bên dưới.
- Trong Claude, mở Settings → Capabilities và bật 'Code execution and file creation'. (chỉ một lần)
- Vào Customize → Skills → + → 'Upload a skill' rồi tải tệp ZIP lên.
Cài vào Claude Code
Để Claude làm — dán câu dưới đây vào Claude Code
Hãy cài skill mình tìm thấy trên Claude Skill Mart. Copy thư mục skills/migrate-postgres-tables-to-hypertables từ repo GitHub timescale/pg-aiguide vào ~/.claude/skills/migrate-postgres-tables-to-hypertables/ của mình. Sau khi cài xong, cho mình biết skill này làm được gì trong một câu.
Cài bằng lệnh thủ công
git clone https://github.com/timescale/pg-aiguide.git /tmp/pg-aiguide && mkdir -p ~/.claude/skills && cp -r /tmp/pg-aiguide/skills/migrate-postgres-tables-to-hypertables ~/.claude/skills/⚠ Đây là skill do người khác tạo. Hãy kiểm tra repo gốc trước khi cài.
- Mở terminal và clone repo:
git clone https://github.com/timescale/pg-aiguide.git - Tạo thư mục skills nếu chưa có:
mkdir -p ~/.claude/skills - Sao chép kỹ năng này:
cp -r pg-aiguide/skills/migrate-postgres-tables-to-hypertables ~/.claude/skills/ - (Tùy chọn) Sao chép thêm
find-hypertable-candidatesvàsetup-timescaledb-hypertablestrong cùng repo để có quy trình đầy đủ từ tìm bảng ứng viên đến cấu hình. - Khởi động lại Claude Code, rồi yêu cầu ví dụ: "Hãy di trú bảng này sang hypertable".
- Điều kiện trước khi chạy: PostgreSQL 15+ đã cài extension TimescaleDB, đã sao lưu database, và nên diễn tập trên môi trường staging trước.
Xem mã nguồn trên GitHub ↗Giấy phép: Apache-2.0