2016-12-02 2 views
0

私は何かをする最善の方法を探していますが、私はこれで私を助けることができる既存の技術についてはわかりません。既存のフラットファイルからのDBのようなインターフェイス

フラットファイルに大量のデータが格納されています。ヘッダーの有無にかかわらず、主に標準のcsvファイルにIDと数値が含まれています。これらのファイルは、さまざまなフォルダに分散されていますが、「組織化された方法で」(つまり、パラメータ化する方法を知っています。

質問は、これらのファイルを適切なDBのように使用する方法があるかどうかです。つまり、私は照会して回答を得ることができるインターフェースを持っていたいと思います。例を挙げてみましょう:異なるフィールドを含むファイルの日付があるとしましょう。各ファイルには、IDのリストと、値A、値B、値Cなどの多くのエントリがあります。 たとえば、Aで始まる各IDの値Bと、日付xと日付の間の期間y。すべてのデータは、古典的なSQLテーブルに集約された場合、私は

SELECT ValueB FROM MY_TABLE WHERE ID LIKE 'A%' AND Date > x AND Date < y; 

のようなものを照会したいあなたは、フラット・ファイルから始めて、そうすることを可能にする任意の技術がありますか? 私はそれらから読む必要があります。これらのファイルは他のプロセスによって自動的に生成されるため、編集する必要はありません。一方、新しいデータは定期的に追加されるので、私はこれを「動的に」したいと思います。また、この技術がPythonをベースにしていて、私がはるかに馴染んでいるなら、それはいいです(しかし必須ではありません)。 この例では、ファイルパスのリストを使って "MY_TABLE"を定義する何らかの方法があると考えています。この表は、ハードドライブのどこにでも1つのエンティティとして存在しませんが、データは事実上そのように表されます。

この方向への助けに感謝します。

ありがとうございました!

+0

理論的には、sqlite仮想テーブルでこれを行うことができます。迅速なGoogleは、ASPWバインディングが必要かもしれないと言います。実際には、このデータを実際のSqliteテーブルに持たせることができれば、うまく機能します。 – cco

+0

ご意見ありがとうございます。私の印象は、SQLiteはDB全体を1つの巨大なフラットファイルに格納するということでした。したがって、小さなプロジェクトの場合にのみお勧めします。ここでは数百Gbの話をしていますので、必要なファイルを「オンザフライ」で選択できるものが必要です。何か意味がありますか? – fatoddsun

+1

Sqliteにデータを読み込むためのスペアディスク容量(倍以上)がある場合は、最初のパスとして試してみます。 Windowsの場合は、MSFT ODBCテキストファイルのデータベースドライバを使用することもできます。便利なPostgresがあれば、File FDW(https://www.postgresql.org/docs/current/static/file-fdw.html)を選択することができます。いずれにしても、ファイルをテーブルにマップする方法を決定する必要があります(ここではマジックはありませんが、作業は必要です)が、多くの異なる環境ではテキストファイルをデータベースファイルとしてマップすることができます。 – cco

答えて

0

ODBCDriversを見てください。これは、CSVファイルをデータソースとして使用できることを示しています。

関連する問題