カラム数2万 レコード数 10億 を扱える表形式ファイルフォーマットは需要あるでしょうか?
Discussion
意見を求めています。
sqliteDB では扱えないカラム数2万 レコード数 10億の表形式ファイルフォーマットの開発の手助けをしています。IoTの分野で需要があるのは確かですが、他にも需要がありそうな気がしています。どんな分野で需要がありそうでしょうか?
実装されている機能
- 10万カラムまで対応、レコードは、1兆行ぐらいいけるみたいです。
- 検索が超高速です。O(logN) です。10億行でも100億行でもほとんど差がないです。
- すべてのカラムにインデックスが付きます。
- 検索は、原則単独のカラムのみですが、クライアントにメモリの余裕があれば、複数項目の and 検索もできます。or もできますが、レコード数が多いと非現実的です。
- ファイルフォーマットなので、クライアントのみで使えます。ファイルマウントすれば使えます。S3にデータをおいて、ファイルマウントすれば使えます。
- 複数のファイルを組み合わせて(union) が簡単にできます。ビッグデータでも可能なので、便利です。組み合わせは、ファイルマウントされていれば、なんでもよいです。ローカルでもクラウド(複数種類)でもできます。
- アーカイブデータを扱うのが基本なのですが、1日単位ぐらいも対応できます。
- 組み合わせるときに、データ・タイプの整合性をとることが少しできます。起算点のことなる整数化した時刻データの起算点合わせや、メートルとヤードポンドの調整など
- JOIN相当(outer join) ができます。
理論的な構成
表形式のデータはあたえられると、列(カラムごと)に並べ替えることができます。列ごとに並べ替えの順番(自然数)が列の値に付与されます。順番(自然数)は、連続して、最大値はレコード数を超えません。この順番(自然数)をインデックスとみたてると、検索、並べ替え、抽出の操作の大部分が、順番(自然数)だけで可能になり、簡素化されます。順番(自然数)を論理的にも、記憶媒体的にも扱い易く、メモリを消費せず、高速に処理が可能です。また、複数のデータを組み合わせることも、順番(自然数)を使うと同様にメモリを消費せずかつ高速に処理可能です。