タイプ情報でデータを保存するための最も使用される形式は何ですか
-
16-10-2019 - |
質問
SQLデータベースからデータをエクスポートし、Rにインポートしています。これは、最初に(自動的に)ハードドライブにデータをダウンロードしてから、Rでファイルをインポートしてから2段階のプロセスです。
現在、データを保存するためにCSVファイルを使用しています。誰もがCSVをサポートしています。ただし、CSVはタイプ情報をサポートしていません。これにより、すべての列タイプを確認する必要があるため、CSVファイルをロードするのが面倒です。 SQLデータベースは既に列の種類を指定しているため、これは不要に思えます。
列のタイプも指定するデータを保存するために、広く受け入れられているファイル形式があるかどうかを知りたいです。
現在、私はSQLデータベース、FME ETL'ing、およびRを使用していますが、これはすべてのデータトランファーの問題だと思います。
解決
それはあなたの要件に依存していると思います。読み取り/書き込み、スパース/nonsparse、...?多くの選択肢があります。
本当に一般的なのはsqlite、 "最も広く展開され、使用されているデータベースエンジン「小さなリレーショナルデータベース、最近では、データストレージニーズ(Adobe Lightroom、Mozilla Firefoxなど)を備えた多くのオープンソースおよび商用ソフトウェアパッケージによって舞台裏を使用していました。
私の頭の上から:
RとPythonを使用して作業する場合:
フェザー ソフトウェアは、高速データフレームシリアル化のために設計されました。現在、RおよびPythonで利用できます。 2つのRとPython当局は、コラボレーションでそれを設計しました。 「Apache Arrow」および/または」の上に構築されていますプロトコルバッファー"、 これは 速い 読むために、しかしそれはアルファ州にあります。
XMLコミュニティからいくつかのシリアル化形式があります。これらの形式でオブジェクトの複雑なウェブを保存できます。
JSONとJSON-Schemaがあります。
テーブルがスパースの場合、たとえば「スパースARFF」形式があります(ただし、ほとんど使用しません)。他の人がいるに違いない(私はこれを自分で調べなければなりません)
他のヒント
ParquetとAvroはどちらもデータ型(文字列、整数、フロートなど)をサポートしています。これらは「ビッグデータ」プロジェクトに使用されるプライマリファイルタイプですが、データは大きい必要はありません。 Apache Sparkは両方を簡単に読むことができます。そうは言っても、私はSQLデータベース(MySQLまたはPostgresなど)にデータを保持することの大ファンです。引っ張っているデータベースを再利用できない場合、独自のデータベースをローカルに作成したり、別のサーバーで作成したりできますか?データが50 GB(任意に「やや大きい」サイズ)を超えるまでリレーショナルデータベースを使用してみて、AvroまたはParquetを使用します。