Logo Zephyrnet

Sử dụng đúng định dạng tệp để lưu trữ dữ liệu

Ngày:

Bài báo này đã được xuất bản như một phần của Blogathon Khoa học Dữ liệu

Giới thiệu

Chúng ta đang sống trong thời đại của dữ liệu. Mỗi ngày, chúng tôi tạo ra hàng nghìn terabyte, tạo ra hàng nghìn mô hình học máy và học sâu để tìm ra giải pháp cho các vấn đề hiện đại. Những vấn đề này bao gồm dự đoán doanh số bán hàng trong tương lai, phát hiện hoạt động gian lận, sự hiện diện của bệnh tật ở bệnh nhân, v.v. Độ chính xác và hiệu quả của các mô hình này phụ thuộc nhiều vào dữ liệu chúng tôi cung cấp cho các mô hình này. Khi chúng ta đang tiến gần hơn đến kỷ nguyên Trí tuệ nhân tạo, nhu cầu dữ liệu cho các mô hình này cũng ngày càng tăng để đạt được hiệu suất vượt trội. Phân tích sâu được thực hiện trên dữ liệu và do đó điều quan trọng là phải cấu trúc và duy trì dữ liệu đúng cách theo những cách thích hợp để có thể truy cập và sửa đổi dữ liệu dễ dàng.

Trong bài viết này, chúng ta sẽ tìm hiểu về các định dạng tệp khác nhau. Chúng ta sẽ tìm hiểu về cách có thể lưu trữ cùng một dữ liệu ở các định dạng tệp khác nhau và định dạng tệp nào nên được ưu tiên cho một ứng dụng cụ thể. Chúng ta cũng sẽ tìm hiểu về các cách lưu trữ dữ liệu theo hàng và cột, hai cách này khác nhau như thế nào và lý do có thể khiến việc chọn cái này thay vì cái kia là gì.

Định dạng tệp độc quyền và miễn phí

Định dạng tệp riêng là định dạng tệp cụ thể do công ty sở hữu và sử dụng. Việc đọc và chỉnh sửa ở các định dạng tệp này yêu cầu phần mềm thích hợp. Điều này nhằm đảm bảo rằng người dùng không thể đọc, sửa đổi hoặc sao chép mã nguồn và bán lại dưới dạng sản phẩm của chính họ.

Mặt khác, các định dạng tệp miễn phí là nguồn mở và có thể được đọc bằng phần mềm nguồn mở. Người dùng có thể đọc, thay đổi, sửa đổi dữ liệu ở các định dạng tệp này và có thể sử dụng cho mục đích riêng của họ bằng các công cụ và thư viện đơn giản. Chúng tôi sẽ chỉ đề cập đến các định dạng tệp đang mở trong bài viết này.

Chúng tôi bắt đầu với một trong những định dạng tệp phổ biến và được yêu thích nhất để lưu trữ dữ liệu văn bản mọi thời đại đó là CSV.

CSV (Các giá trị được phân tách bằng dấu phẩy)

CSV là một trong những định dạng tệp phổ biến nhất để lưu trữ dữ liệu văn bản. Những tệp này có thể được mở bằng nhiều chương trình khác nhau, bao gồm cả Notepad. Lý do đằng sau việc sử dụng định dạng này so với các định dạng khác là khả năng lưu trữ dữ liệu phức tạp theo cách đơn giản và dễ đọc. Hơn nữa, tệp CSV cung cấp tính bảo mật cao hơn so với các định dạng tệp như JSON. Trong python, thật dễ dàng để đọc các loại tệp này bằng thư viện đặc biệt có tên là Pandas.

csv | Định dạng tệp
import pandas as pd # Đọc tệp csv bằng pandas file_csv = pd.read_csv("file.csv") #file_csv = pd.read_csv("file.zip",compression="zip") # in 5 mục hàng đầu có trong in tệp csv(file_csv.head())

Lưu ý- Nếu tệp CSV được nén ở định dạng như gzip, bc, zip, v.v., chúng ta có thể thêm một đối số khác như được viết ở dòng thứ 4 của mã (dưới dạng nhận xét). Tuy nhiên, tệp zip chỉ được chứa một tệp.

JSON (Ký hiệu đối tượng JavaScript)

Đây là định dạng chuẩn để lưu trữ dữ liệu văn bản dựa trên chỉ mục đối tượng JavaScript. Về cơ bản nó được sử dụng để truyền dữ liệu trong các ứng dụng web. Không giống như CSV, JSON cho phép bạn tạo cấu trúc phân cấp cho dữ liệu của mình. JSON cho phép dữ liệu được lưu trữ dưới nhiều loại dữ liệu bao gồm chuỗi, mảng, boolean, số nguyên, v.v.

Các định dạng JSON dễ dàng tích hợp với API và có thể lưu trữ một lượng lớn dữ liệu một cách hiệu quả. Chúng cung cấp khả năng mở rộng và hỗ trợ dữ liệu quan hệ.

JSON | Định dạng tệp
import pandas as pd # Đọc tệp json bằng pandas file_json = pd.read_json("file.json")#thay thế tệp bằng tên tệp thực tế # in 5 mục hàng đầu có trong tệp csv print(file_json.head())

XML (Ngôn ngữ đánh dấu có thể mở rộng)

Định dạng tệp này có cấu trúc tương tự như HTML và nó được sử dụng để lưu trữ dữ liệu và truyền dữ liệu mà không phụ thuộc vào các công cụ phần mềm và phần cứng. Ngôn ngữ XML tương thích với Java và bất kỳ ứng dụng nào có khả năng xử lý ngôn ngữ này đều có thể sử dụng thông tin của bạn, bất kể nền tảng là gì.

XML | Định dạng tệp
import pandas as pd # Đọc tệp xml bằng pandas file_xml = pd.read_xml("file.xml")#thay thế tệp bằng tên tệp thực # in 5 mục hàng đầu có trong tệp csv print(file_xml.head())

Lưu ý: Chức năng Pandas read_xml có sẵn trong phiên bản pandas 1.3.0 mới nhất. Vì vậy, bạn có thể phải nâng cấp pandas. Bạn có thể làm điều đó với lệnh dưới đây

pip3 install --upgrade pandas

YAML (YAML không phải là ngôn ngữ đánh dấu) –

YAML là ngôn ngữ tuần tự hóa dữ liệu chủ yếu được sử dụng cho tương tác giữa con người với nhau. Nó là một superset của JSON, có nghĩa là nó bao gồm tất cả các tính năng của JSON và hơn thế nữa. Không giống như các định dạng tệp khác, YAML sử dụng thụt lề như một phần định dạng của nó giống như python. Lợi ích của việc sử dụng YAML so với các định dạng tệp khác là:

  • Các tập tin có thể di động và có thể chuyển giữa các ngôn ngữ lập trình khác nhau.
  • Định dạng biểu cảm và mở rộng
  • Các tệp hỗ trợ bộ ký tự Unicode
YAML
import pyyaml ​​from yaml.loader import SafeLoader # Mở và tải tệp bằng open('Sample.yaml') dưới dạng tệp: data = yaml.load(file, Loader=SafeLoader) print(data)

Sàn gỗ

Parquet là định dạng tệp nhị phân cho phép bạn lưu trữ dữ liệu theo kiểu cột. Dữ liệu bên trong các tệp sàn gỗ tương tự như các bảng kiểu RDBMS nhưng thay vì truy cập từng hàng một, chúng ta truy cập từng cột một. Điều này có lợi khi chúng ta xử lý hàng triệu tỷ bản ghi có số lượng thuộc tính rất ít.

gỗ
import pyarrow.parquet as pq # Đọc bảng bằng pyarrow table = pq.read_table('example.parquet') # Chuyển bảng sang pandas dataframe table = table.to_pandas() # in bảng print(table.head())

Định dạng tệp hàng và cột

Hầu hết các tệp chúng ta sử dụng trong cuộc sống hàng ngày đều có ở định dạng tệp hàng nơi chúng ta đang tìm kiếm từng bản ghi trước khi chuyển sang bản ghi tiếp theo. Dữ liệu ở các định dạng này dễ đọc và sửa đổi hơn so với các định dạng cột như sàn gỗ. Nhưng khi chúng ta xử lý một số lượng lớn bản ghi, các thao tác đơn giản như tìm kiếm và xóa sẽ tiêu tốn một lượng thời gian đáng kể. Để giải quyết vấn đề, chúng tôi sử dụng các định dạng tệp cột

Tại sao nên sử dụng định dạng tệp cột

Ở định dạng cột, thay vì truy cập từng bản ghi, chúng ta truy cập từng cột. Giả sử kích thước của mỗi mục là 100 byte. Giả sử có 10 bản ghi trong bảng nhưng chúng ta chỉ cần truy cập hai bản ghi. Đối với 1 tỷ bản ghi, phải mất khoảng 1000 giây để đi qua toàn bộ cơ sở dữ liệu với tốc độ 100MB/s. Tuy nhiên, nếu chúng ta tìm kiếm qua các cột thay vì tìm kiếm theo từng bản ghi, thì sẽ mất 2/10 * 1000 giây, tức là 200 giây để thực hiện toàn bộ phép tính. Vì vậy, có thể tiết kiệm được rất nhiều thời gian bằng cách sử dụng các định dạng tệp cột. Ngoài ra, việc biểu diễn dữ liệu theo cột cung cấp khả năng nén dữ liệu tốt hơn và các cột có thể được nén bằng các phương pháp khác nhau. Vì vậy, nó tiếp tục mang lại một số phạm vi cải thiện

Kỹ thuật nén dữ liệu

  1. Gzip – Định dạng tệp này được sử dụng để nén dữ liệu và tệp. Nó dựa trên thuật toán DEFLATE dựa trên mã hóa Huffman và LZ77. Đây là một cách nén không mất dữ liệu. Điều đáng kinh ngạc là nó cho phép nén nhiều tệp thành một kho lưu trữ duy nhất. Nó cung cấp tỷ lệ nén tốt hơn các định dạng nén khác nhưng lại có tốc độ chậm hơn. Đó là cách tốt nhất để lưu trữ dữ liệu không cần sửa đổi thường xuyên.
  2. Snappy – Các định dạng tệp này cung cấp khả năng nén nhanh hơn nhưng không cung cấp tỷ lệ nén tốt hơn Gzip. Tuy nhiên, định dạng nén này có thể phù hợp nhất để nén dữ liệu cần sửa đổi thường xuyên.

Kết luận

Có nhiều định dạng tệp khác nhau có sẵn để lưu trữ dữ liệu và tạo bộ dữ liệu của riêng bạn. Nhưng việc chọn một phụ thuộc vào yêu cầu và loại dữ liệu. Để chọn định dạng phù hợp nhất cho ứng dụng của mình, ít nhất bạn nên biết các tùy chọn có sẵn. Ngoài ra, bạn nên lưu ý đến các ưu tiên của mình như bảo mật dữ liệu, kích thước dữ liệu, tốc độ hoạt động, v.v. Ví dụ: nếu bảo mật dữ liệu là ưu tiên cao nhất thì tốt hơn nên sử dụng tệp CSV thay vì JSON hoặc có thể chọn tệp thích hợp định dạng có thể là lựa chọn tốt nhất.

Phương tiện hiển thị trong bài viết này không thuộc sở hữu của Analytics Vidhya và được sử dụng theo quyết định riêng của Tác giả

PlatoAi. Web3 được mô phỏng lại. Khuếch đại dữ liệu thông minh.
Nhấn vào đây để truy cập.

Nguồn: https://www.analyticsvidhya.com/blog/2021/09/USE-the-right-file-format-for-storing-data/

tại chỗ_img

Tin tức mới nhất

tại chỗ_img