CSV hay XML tốt hơn cho Excel?

Đối với nhiều tổ chức và những người tạo ra dữ liệu vì nhiều lý do, thường có một quyết định được đưa ra liên quan đến định dạng tệp sẽ đưa dữ liệu vào. Mặc dù một số quyết định được đưa ra cho bạn do yêu cầu của người nhận, nhưng có những lúc bạn cần tự mình đưa ra quyết định

TL;DR

Định dạng tệp Excel là kích thước tệp nhỏ hơn

Chúng tôi sẽ cung cấp thêm chi tiết, nhưng hiện tại, đây là bảng so sánh 50.000 hàng thông tin trong đó mỗi hàng có cùng một dữ liệu

CSV hay XML tốt hơn cho Excel?
CSV hay XML tốt hơn cho Excel?

Như bạn có thể thấy ở đây, Excel ngày càng xa người chiến thắng

Hãy bắt đầu từ đầu

Tất cả điều này bắt đầu khi chúng tôi đang tạo tập lệnh PowerShell trích xuất dữ liệu từ Active Directory cục bộ. Đủ đơn giản. Để làm cho tập lệnh dễ di chuyển hơn và cho phép tập lệnh chạy trên Bộ điều khiển miền Windows Server 2008 R2, chúng tôi cần chạy trong phiên bản PowerShell mà chúng tôi biết sẽ ở đó, hoạt động và loại bỏ nhu cầu cài đặt phần mềm bổ sung. Như vậy, PowerShell phiên bản 2. 0 là mục tiêu (tổng, tôi biết)

Khi làm như vậy, chúng tôi cần tận dụng một định dạng tệp cũng sẽ cung cấp cho chúng tôi một số chiều sâu để xử lý các mảng mà không phải xử lý các mảng đó một cách riêng biệt. Sử dụng lệnh “Export-Clixml”, chúng ta có thể truyền cho nó một tập hợp các đối tượng (e. g. người dùng) và nó sẽ viết ra mọi thứ cho chúng ta

Chúng tôi có một tiện ích khác nơi chúng tôi đẩy dữ liệu này vào Cosmos DB để chúng tôi có thể thẩm vấn và xuất dữ liệu tốt hơn bằng SQL so với một đống tập lệnh khác nhau. Điều đó nói rằng, chúng tôi cần chuyển đổi XML thành JSON trong ví dụ hiện tại này

Sử dụng PowerShell 2. 0 chạy trên DC và viết trực tiếp sang định dạng XML đều không tuyệt vời và không phải là hướng cuối cùng lý tưởng. Tuy nhiên, đây là những gì đã trình bày vấn đề ở định dạng tệp

Trường hợp vấn đề thực sự xuất hiện là khi chúng tôi gặp phải Active Directory cục bộ tạo ra tệp xuất cực lớn. Mặc dù tập lệnh và việc tạo tệp XML diễn ra tốt đẹp, nhưng các tập lệnh và công cụ hạ nguồn không thích làm việc với các tệp quá lớn. Điều này cũng ngăn các tập lệnh PowerShell khác hoạt động với dữ liệu hoặc thậm chí mở nó trong một công cụ khác như Microsoft VS Code hoặc Notepad++

Thực hiện một cách tiếp cận khác để xuất dữ liệu

Tại thời điểm này, chúng tôi nghĩ có lẽ chúng tôi nên xuất dữ liệu theo từng đợt nhỏ hơn. Thay vì một tệp lớn, chúng tôi sẽ có nhiều tệp được nhóm theo số lượng mặt hàng. Nghe có vẻ là một khởi đầu tốt, nhưng sau đó chúng tôi cần thực hiện việc này đối với các loại mặt hàng mà chúng tôi muốn xuất. Với vấn đề đó là vấn đề tiếp theo, bây giờ chúng tôi sẽ cần nén tệp ở định dạng zip để vận chuyển nhóm tệp đó. Ngay cả trong trường hợp này, chúng tôi vẫn có một tệp lớn cần chuyển VÀ chúng tôi cần cập nhật các công cụ và tập lệnh ngược dòng để xử lý cấu trúc mới này

Mặc dù cách tiếp cận tổng thể không tệ, nhưng có vẻ như còn rất nhiều việc phải làm để khắc phục vấn đề về kích thước tệp này

Chúng tôi có những thứ khác thay vì XML hoặc JSON, có lẽ thứ gì đó như định dạng CSV sẽ tốt hơn. Nó có vẻ giống như một định dạng tệp nhẹ vì nó chỉ là văn bản và một số dấu phẩy

Cuộc thí nghiệm

Tại thời điểm này, chúng ta có thể thấy rằng cần phải thực hiện một thử nghiệm để giúp trả lời câu hỏi định dạng tệp nào có cùng dữ liệu bên trong sẽ có kích thước tốt hơn và cho phép ứng dụng mở trực tiếp để tương tác với nó.

Để thực hiện việc này, tập lệnh PowerShell đã được sử dụng để tạo tập dữ liệu giả gồm 18 cột dữ liệu và sẽ xuất một số hàng bằng nhau cho từng loại tệp. Điều này sẽ cho phép chúng tôi thấy sự khác biệt về kích thước khi chúng tôi tăng từ 1000, 5000 lên 50000

Kết quả

Bảng sau đây cho thấy kết quả từ thí nghiệm. Có, một lệnh PowerShell đã được sử dụng để xuất tên, loại và kích thước tệp từ HĐH. Sau đó, một chút phép thuật Excel để mang nó lại với nhau. Như bạn có thể thấy, Excel là người chiến thắng trong mọi trường hợp. Ba cột cuối cùng hiển thị sự khác biệt về kích thước tệp giữa Excel và cùng số hàng cho loại tệp

CSV hay XML tốt hơn cho Excel?
CSV hay XML tốt hơn cho Excel?

Thêm một chút thông tin về Excel

Vì Excel có thể có nhiều trang tính trong cùng một tệp nên chúng tôi muốn xem các tệp sẽ lớn đến mức nào khi chúng có thêm các trang tính (còn gọi là Tab) trong cùng một tệp

RowsTabsExtensionRowskiloBytes1001. xlsx10012. 361002. xlsx20025. 675001. xlsx50046. 610010. xlsx1000344. 235002. xlsx1000107. 7610001. xlsx100088. 8110002. xlsx2000209. 7350010. xlsx50001669. 9350001. xlsx5000429. 48100010. xlsx100003322. 1650002. xlsx100001034. 78500010. xlsx5000016579. 98500001. xlsx500004,245. 87500002. xlsx10000010254. 045000010. xlsx500000166150. 035000001. xlsx50000042351. 86

Điều thú vị nhất ở đây là nếu bạn có tổng số hàng bằng nhau giữa hai tệp nhưng một tệp chỉ có một trang tính và tệp kia trải rộng trên mười trang tính, thì tệp nhiều trang tính có kích thước lớn hơn nhiều. Điều này cho chúng tôi biết rằng tốt hơn là thêm các cột vào một trang tính nếu bạn có thể làm điều đó thay vì dàn trải dữ liệu vào các trang tính khác để giảm kích thước tệp. Điều này không phải lúc nào cũng khả thi hoặc thậm chí là quyết định đúng đắn nếu dữ liệu thực tế khác. Có lẽ bạn cần đặt nó vào một tệp Excel khác

Cần hỗ trợ quản lý hoặc di chuyển kho dữ liệu của bạn?

CNTT linh hoạt đã thực hiện một số hoạt động di chuyển, sáp nhập và thoái vốn phức tạp nhất xung quanh. Nếu bạn cần giảm nợ kỹ thuật, kiểm soát một thư mục hoạt động quá phức tạp hoặc giành quyền kiểm soát đối với các vấn đề nhận dạng mở rộng, Agile IT có công cụ, kỹ sư và chuyên môn để trợ giúp. Tìm hiểu cách chúng tôi có thể giúp giảm chi phí và độ phức tạp bằng cách cho chúng tôi biết một chút về môi trường của bạn

Tại sao nên sử dụng XML thay vì CSV?

Mối quan hệ giữa các thực thể (và biểu diễn của một đối tượng phức tạp) được xác định dễ dàng hơn trong cùng một tệp XML, trong khi kết xuất dữ liệu CSV thường chỉ chứa dữ liệu của một Bảng duy nhất. XML được cho là dễ đọc hơn tệp CSV phẳng .

Excel là XML hay CSV?

Excel hoạt động chủ yếu với hai loại tệp XML . tệp dữ liệu XML (. xml), chứa các thẻ tùy chỉnh và dữ liệu có cấu trúc. Tệp lược đồ (.

Tại sao nên sử dụng CSV thay vì Excel?

Mặc dù định dạng tệp Excel (XLS và XLSX) phù hợp hơn để lưu trữ dữ liệu phức tạp hơn, nhưng Tệp CSV được gần như tất cả các giao diện tải lên dữ liệu hỗ trợ . Nếu bạn định di chuyển dữ liệu của mình giữa các nền tảng, hãy xuất và nhập dữ liệu đó từ giao diện này sang giao diện khác, bạn nên sử dụng định dạng tệp CSV.

Nhược điểm của CSV là gì?

Nhược điểm của CSV .
CSV chỉ cho phép di chuyển hầu hết dữ liệu cơ bản. .
Không có sự phân biệt giữa văn bản và giá trị số
Không có cách tiêu chuẩn để biểu diễn dữ liệu nhị phân
Sự cố khi nhập CSV vào SQL (không phân biệt giữa NULL và dấu ngoặc kép)
Hỗ trợ kém các ký tự đặc biệt
Không có cách tiêu chuẩn để biểu diễn các ký tự điều khiển