Hướng dẫn chi tiết cách nhập 1.000.000 bản ghi vào bảng PostgreSQL trong Docker Container
Trong quá trình phát triển và thử nghiệm, việc nhập một lượng lớn dữ liệu vào cơ sở dữ liệu là một nhiệm vụ quan trọng. Bài viết này sẽ chỉ rõ cách thức nhập hàng triệu bản ghi từ file CSV vào cơ sở dữ liệu PostgreSQL đang chạy trong Docker container. Quá trình này không chỉ giúp bạn dễ dàng quản lý và kiểm tra dữ liệu mà còn cải thiện hiệu suất của các truy vấn trong ứng dụng của bạn.
Giới thiệu về PostgreSQL
PostgreSQL, hay còn gọi là Postgres, là một trong những hệ thống quản lý cơ sở dữ liệu quan hệ mã nguồn mở mạnh mẽ nhất hiện nay. Với khả năng mở rộng và tuân thủ các tiêu chuẩn SQL, PostgreSQL cung cấp một nền tảng vững chắc cho việc lưu trữ và truy xuất dữ liệu.
1. Nhập dữ liệu từ file CSV vào cơ sở dữ liệu PostgreSQL trong Docker
Để bắt đầu, bạn cần chuẩn bị một file CSV. Có thể là file chứa dữ liệu giả tạo hoặc file mà bạn đã xuất từ một cơ sở dữ liệu khác. Sau đó, bạn sẽ thực hiện các bước sau:
Bước 1: Kiểm tra tên của container PostgreSQL
Đầu tiên, hãy chạy lệnh sau để lấy danh sách các container đang hoạt động trên hệ thống của bạn:
docker ps
Tìm tên container PostgreSQL trong danh sách. Ví dụ, giả sử tên container của bạn là project-postgres-1
.
Bước 2: Sao chép file CSV vào container PostgreSQL
Chạy lệnh sau để sao chép file CSV từ máy tính của bạn vào container:
docker cp ./ten_file.csv project-postgres-1:/ten_file_trong_container.csv
Lưu ý:
- Thay
ten_file.csv
bằng tên file thực tế của bạn. - Đảm bảo bạn đang ở trong thư mục chứa file CSV.
- Nếu có nhiều file, hãy sao chép cả thư mục chứa file để tiết kiệm thời gian.
Bước 3: Khởi chạy container PostgreSQL và truy cập vào cơ sở dữ liệu
Sử dụng lệnh sau để truy cập vào container, chọn cơ sở dữ liệu mà bạn muốn nhập CSV:
docker exec -it project-postgres-1 psql -U ten_user -d ten_database
Bước 4: Nhập dữ liệu từ file CSV vào bảng
Cuối cùng, để nhập dữ liệu từ file CSV, hãy chạy lệnh sau bên trong container PostgreSQL:
\copy ten_bang from '/ten_file_trong_container.csv' delimiter ',' CSV HEADER;
Nếu bạn nhận được thông báo như COPY 10
, điều đó có nghĩa là quá trình nhập đã thành công. Quá trình này rất nhanh chóng và có thể xử lý hàng triệu bản ghi trong thời gian ngắn.
2. Xuất và nhập cơ sở dữ liệu trong PostgreSQL
Xuất cơ sở dữ liệu
Để xuất cơ sở dữ liệu, sử dụng lệnh sau:
docker exec -i project-postgres-1 psql -U ten_user ten_database > duong_dan/backup.sql
Nhập cơ sở dữ liệu
Để nhập cơ sở dữ liệu, sử dụng lệnh sau (thay >
bằng <
):
docker exec -i project-postgres-1 psql -U ten_user ten_database < duong_dan/backup.sql
Việc xuất và nhập cơ sở dữ liệu cũng rất nhanh chóng và thường mất từ 3 đến 5 phút cho các cơ sở dữ liệu lớn.
3. Một số lệnh hữu ích trong PostgreSQL
Dưới đây là một số lệnh cơ bản giúp bạn quản lý dữ liệu trong PostgreSQL một cách hiệu quả:
\l
: Hiển thị danh sách cơ sở dữ liệu.\c ten_database
: Chọn cơ sở dữ liệu.\dt
: Hiển thị danh sách bảng trong cơ sở dữ liệu.\d ten_bang
: Hiển thị cấu trúc bảng chi tiết.
4. Kết luận
Bài viết này đã hướng dẫn chi tiết cách nhập dữ liệu từ file CSV vào PostgreSQL trong Docker container, cùng một số lệnh hữu ích để quản lý cơ sở dữ liệu. Hy vọng rằng với những kiến thức này, bạn sẽ dễ dàng làm việc với PostgreSQL và tận dụng tối đa các tính năng của nó trong dự án của mình.
Cảm ơn bạn đã theo dõi bài viết.
source: viblo