データとスプレッドシート · CSV クリーナー
システム間のデータ移動において CSV が依然としてスプレッドシート ファイルに勝る理由
· なぜそれが重要なのか
csv スプレッドシート データ形式
欠陥にもかかわらず、CSV は、すべてのシステムが読み取れるプレーン テキストであるため、デフォルトの交換形式のままです。この投稿では、データを移動するために CSV とスプレッドシート ワークブックを比較検討し、何を放棄し、何を得るのかを説明します。
テキストを読み取るだけのシステムに渡される .xlsx — 「スプレッドシートを送信するだけ」が統合境界で失敗する理由
ワークブックには、単純な取り込みエンドポイントでは予期しないシート、セル スタイル、数式、およびアプリケーション固有の構造が含まれています。 CSV は、交換をテキスト セルの 1 つのテーブルに絞り込みます。消費者は行、列、および明示的なインポート ルールに集中できるため、このより狭いコントラクトの方が統合が容易であることがよくあります。
この取引は現実です。XLSX から CSV に移行すると、ワークブックの機能がすべて変換されるのではなく、破棄されます。ペイロードが基本的に 1 つのテーブルであり、受信システムが区切りテキスト インターフェイスを文書化する場合は、CSV を選択します。ワークブックの透過的なアーカイブとして使用しないでください。
プレーン テキストが到達範囲に優先します - 特別なライブラリを使用せずに、どの言語、どのプラットフォーム、どの年代でも CSV を読み取ることができます
プレーン テキストは通常のエディタで検査でき、多くの環境で解析できますが、「特別なライブラリを必要とせずにどの言語でも読み取れる」というのは広すぎます。引用符で囲まれた区切り文字、埋め込まれた改行、およびエスケープされた引用符には、依然として正しいパーサーが必要です。行分割とカンマ分割は移植可能な実装ではありません。
ToolAcre のステート マシンは最低限の厳密性を示しています。引用符で囲まれた状態を追跡し、3 つの改行フォームを処理し、不規則な行を報告します。 CSV の到達範囲は、解析ルールの欠如によるものではなく、小規模なテキスト モデルと広範なパーサー サポートによるものです。
CSV は広く利用可能なプレーンテキストですが、すべての消費者は依然として CSV パーサーを必要としています
ワークブック形式では、複数のシート、数式、書式設定、およびより豊富なセル表現を保持できます。これらの機能は人々が編集したり計算したりするのに役立ちますが、同時に機械フィードの契約を拡大します。数式には、表示される結果ではなくロジックが含まれる場合があり、シート名によってデータが存在する場所が決定される場合があります。
CSV にはその構造は含まれません。解析された各セルは、このツールの 1 つのヘッダー行の下にあるテキストです。送信者と受信者が区切り文字、ヘッダー名、エンコード、およびファイル外のセマンティック タイプについて合意している場合、目的が確定的な交換である場合、この損失は利点になる可能性があります。
CSV に欠けているもの — 型、エンコーディング ラベル、スキーマ、およびそのギャップを規約とクリーニングで埋める方法
CSV には、列タイプ、スキーマ宣言、または信頼できるディスク上のエンコーディング ラベルがありません。 ToolAcre は、文書化された構文境界のみに対処します: UTF-8 テキスト、オプションの先頭の UTF-8 BOM、4 つの区切り文字の候補、RFC スタイルの引用符、および行幅の警告。日付、数値列、または必須フィールドは推測されません。
したがって、規約と検証は統合の一部として残ります。ファイルの横にスキーマを公開し、空が空か欠落を意味するかを指定し、識別子を文字列として定義します。クリーニングによって一貫性のあるテーブルを作成できますが、その値が受け入れられるかどうかを判断できるのは受信コントラクトのみです。
ToolAcre は 4 つの区切り文字と UTF-8 テキストを処理します。 CSV のスキーマ不足は解決されません
テキスト ファイルは、ワークブック コンテナーを解凍せずにバージョン管理で比較し、検査できます。しかし、有用な diff は依然として安定した順序付けとシリアル化に依存しています。行末や引用スタイルを変更すると、セルが変更されていないにもかかわらずノイズが発生する場合があります。セマンティクスが重要な場合は、解析されたテーブルを比較します。
概要では、ストリーミングとストレージの利点も普遍的であると主張しました。この実装はファイル全体をテキストとして読み取り、ワーカーから完成した行を返すため、ストリーミングの証拠にはなりません。ファイル サイズはコンテンツとワークブックの圧縮によって決まり、ここでは包括的な比率は保証されません。
テキストは通常の差分をサポートします。ストリーミングとサイズの利点は使用する実装によって異なります
ID、名前、メモを含む 1 つのシートを XLSX と CSV の両方としてエクスポートします。 CSV を使用するスクリプトには、区切り文字パーサーと、ID がテキストのままであるという別のルールが必要です。ワークブックを使用するには、ライブラリとシートの選択に加えて、数式の結果とセルの表現についての決定が必要です。
CSV を ToolAcre にロードして、ヘッダー、行幅、引用符を確認します。クリーナーは比較のためにワークブックを検査することができないため、作業済みの演習ではソース アプリケーションまたは別の承認されたリーダーを使用して、CSV が交換アーティファクトになる前に失われた内容を確認します。
これでカバーされないもの — Parquet や JSON などの形式で、どちらよりも分析パイプラインに適した行
JSON Lines、Parquet、その他の形式はさまざまな問題を解決するため、このツールの範囲外です。列指向分析パイプラインは型付き列と圧縮を重視する場合がありますが、イベント処理は 1 行あたり 1 レコードを重視する場合があります。 CSV は、単に古い、または表示されているという理由だけで勝てるわけではありません。
消費者から逆方向に選択します。そのコンシューマが 1 つのテキスト テーブルを必要とする場合、CSV が最も単純な合意になります。ネスト、型指定された分析、または複数の関連シートが必要な場合、それらの構造をセルに強制すると、避けた形式よりも複雑な規則が作成されます。
CSV をクリーンにする場合、そのシンプルさが重要です — ToolAcre CSV クリーナーが CSV の偶然に任せた規則をどのように修正するか
CSV の単純さは、暗黙的な選択が明示的に行われる場合に役立ちます。 ToolAcre は、サポートされている区切り文字を検出し、引用符で囲まれたフィールドを解析し、先頭の BOM を削除し、行の形状について警告し、CRLF で終わる最小限の引用符付き UTF-8 をシリアル化できます。これらは具体的な相互運用性支援です。
スキーマを提供したり、ワークブックの書式を回復したり、別のアプリケーションのインポート設定を保証したりすることはできません。 Exchange は、構文のクリーンアップとセマンティック ドキュメントが一致すると成功します。クリーンアップされたダウンロードを、自己記述型データセットとしてではなく、レビューされたテーブルと外部コントラクトとして扱います。