UltKit

Chuyển CSV sang Parquet

CSV dễ tạo nhưng truy vấn chậm. Tải lên file CSV và nhận về file Apache Parquet với kiểu dữ liệu cho từng trường, đã được nén và sẵn sàng cho công cụ phân tích bạn sử dụng.

Chuyển đổi dữ liệu

hoặc thả tệp CSV, TSV, TXT … vào đây ·

Tối đa 95 MB mỗi tệp· Tối đa 20 tệp· Xóa sau 30 phút

Đầu ra

Tệp được xử lý trên máy chủ của chúng tôi và bị xóa sau 30 phút.

Cách sử dụng công cụ này

  1. 1

    Tải lên các file CSV

    Thêm một file xuất hoặc tối đa 20 file có cùng cấu trúc, mỗi file tối đa 95 MB. Để Ký tự phân cách ở chế độ Tự động nhận diện, công cụ xử lý được dấu phẩy, dấu chấm phẩy, tab và dấu gạch đứng.

  2. 2

    Giữ nguyên cài đặt tiêu đề cột và ngày tháng

    Dòng đầu là tiêu đề biến dòng tiêu đề thành tên cột. Ngày tháng đặt ở ISO để các cột ngày được ghi theo một dạng thống nhất.

  3. 3

    Chuyển sang Parquet

    Nhấn Chuyển sang Parquet, rồi nạp file .parquet vào pandas, DuckDB, Spark hoặc kho dữ liệu của bạn.

Vì sao các nhóm dữ liệu chuyển CSV sang Parquet

Parquet ra đời năm 2013 bởi các kỹ sư tại Twitter và Cloudera, dựa trên cách bố trí theo cột mà Google mô tả trong bài báo Dremel năm 2010, và trở thành dự án cấp cao nhất của Apache vào năm 2015. Ý tưởng khá đơn giản: thay vì lưu bảng theo từng dòng như CSV, Parquet lưu tất cả giá trị của một cột cạnh nhau. Truy vấn cần ba cột trong bốn mươi cột chỉ đọc đúng ba cột đó, và các giá trị giống nhau nằm cạnh nhau nén tốt hơn nhiều.

Đó là lý do nhà phân tích chuyển file xuất trước khi nạp, kỹ sư dữ liệu yêu cầu nhà cung cấp gửi Parquet thay vì CSV, và các dịch vụ như Amazon Athena, BigQuery, vốn có thể tính phí theo lượng dữ liệu được quét, truy vấn rẻ hơn. CSV cũng không biết 0042 là số hay là mã; Parquet ghi lại kiểu cho từng cột nên công cụ tiếp theo không phải đoán.

So sánh Parquet, CSV và XLSX cho bảng dữ liệu lớn

ParquetCSVXLSX
Kiểu cột được lưu trong fileyesnoTheo từng ô
Chỉ đọc các cột mà truy vấn cầnyesnono
Có nényesnoyes
Đọc được bằng trình soạn thảo văn bảnnoyesno
Mở bằng Excel bằng cách nhấp đúpnoyesyes
Số dòng mỗi fileKhông giới hạn cố địnhKhông giới hạn cố định1.048.576 mỗi trang tính

Những gì thay đổi khi CSV trở thành Parquet

Lợi ích

  • Truy vấn nhanh hơn vì chỉ đọc các cột cần thiết
  • File nhỏ hơn để lưu trữ và di chuyển
  • Lược đồ để công cụ tiếp theo đọc thay vì đoán
  • Ngày tháng được ghi một lần theo dạng ISO

Cần lưu ý

  • Không chỉnh sửa được trong bảng tính hay trình soạn thảo văn bản
  • Một lỗi gõ trong cột số có thể biến cả cột thành văn bản
  • Hãy giữ lại file CSV nếu mọi người vẫn cần mở nó

Thông tin về định dạng CSV và Parquet

CSV

Giá trị phân tách bằng dấu phẩy (CSV)

CSV là định dạng văn bản thuần cho bảng, trong đó mỗi dòng là một hàng và dấu phẩy phân tách các cột. Định dạng đã được dùng từ những ngày đầu của ngành máy tính và được mô tả trong RFC 4180, dù nhiều biến thể dùng dấu chấm phẩy hoặc tab và các bảng mã văn bản khác nhau. Gần như mọi bảng tính, cơ sở dữ liệu và công cụ phân tích đều nhập và xuất được CSV, nên đây là định dạng mặc định để chuyển dữ liệu giữa các hệ thống. CSV chỉ lưu giá trị, không có công thức, định dạng trình bày, nhiều trang tính hay kiểu dữ liệu.

Nén
–
Độ trong suốt
–
Ảnh động
–
Ra mắt
–
Công cụ chuyển đổi CSV

PARQUET

Dữ liệu Apache Parquet

Parquet là định dạng lưu trữ dạng cột mã nguồn mở do Twitter và Cloudera tạo ra năm 2013, hiện do Apache Software Foundation duy trì. Định dạng lưu dữ liệu theo cột với khả năng nén mạnh và lược đồ có kiểu dữ liệu, nên các công cụ phân tích chỉ cần đọc những cột cần thiết. Đây là chuẩn phổ biến trong data lake và các công cụ như Spark, pandas, DuckDB, BigQuery và Snowflake. Tệp Parquet ở dạng nhị phân và không thể mở bằng trình soạn thảo văn bản hay ứng dụng bảng tính thông thường.

Nén
Không mất dữ liệu
Độ trong suốt
–
Ảnh động
–
Ra mắt
2013 · Apache Software Foundation (from Twitter and Cloudera)
Công cụ chuyển đổi PARQUET

CSV chuyển sang Parquet khi file không còn là thứ con người mở ra xem mà trở thành thứ các truy vấn quét qua: file xuất hằng ngày đổ vào data lake, bộ dữ liệu chia sẻ cho nhà phân tích, hoặc nhật ký được lọc theo vài cột mỗi lần.

Hãy làm sạch CSV trước khi chuyển chứ đừng sau đó: sửa tên tiêu đề, xóa các dòng tổng hợp ở cuối và bảo đảm mỗi cột chỉ chứa một loại giá trị. Nếu nguồn là bản sao lưu cơ sở dữ liệu chứ không phải CSV, hãy bắt đầu với SQL sang CSV. Mọi định dạng đích khác, từ JSON đến SQL, đều có trên trang chuyển đổi dữ liệu.

Câu hỏi thường gặp về chuyển CSV sang Parquet

File Parquet nhẹ hơn file CSV bao nhiêu?

Còn tùy vào dữ liệu. Các cột có nhiều giá trị lặp lại, như mã quốc gia, trạng thái hoặc ngày tháng, nén rất tốt, còn cột ID duy nhất hoặc văn bản tự do giảm ít hơn. File Parquet thường chỉ bằng một phần nhỏ dung lượng file CSV, nhưng không có tỉ lệ cố định nào để cam kết.

Những công cụ nào đọc được file .parquet sau khi chuyển đổi?

pandas với read_parquet, Polars, DuckDB với câu lệnh SELECT đơn giản trên tên file, Apache Spark và các kho dữ liệu đám mây như BigQuery, Snowflake, Amazon Athena và Redshift Spectrum. Hầu hết đều có thể truy vấn cả thư mục chứa các file Parquet cùng cột như một bảng duy nhất.

Kiểu dữ liệu của cột được xác định như thế nào?

Dựa trên giá trị trong từng cột: số nguyên, số thập phân, ngày tháng và giá trị đúng/sai được gán kiểu tương ứng, còn cột có nội dung hỗn hợp vẫn là văn bản. Sau khi chuyển, hãy kiểm tra các mã có số 0 đứng đầu, như mã ZIP 02134, và giữ chúng ở dạng văn bản nếu cần giữ số 0.

Có thể chuyển nhiều file CSV cùng cấu trúc một lúc không?

Được, tối đa 20 file mỗi lượt, và mỗi file thành một file .parquet riêng. Đặt chúng vào cùng một thư mục, DuckDB hoặc Spark có thể đọc chung bằng ký tự đại diện như sales_*.parquet.

Làm sao xem nội dung file Parquet mà không cần viết code?

Excel và Google Sheets không mở được file .parquet bằng cách nhấp đúp. Hãy chuyển lại thành các dòng bằng Parquet sang CSV, hoặc dùng dòng lệnh của DuckDB nếu bạn quen với một câu truy vấn SQL.