私は20個のsqliteデータベース(DBごとに50個のテーブルと約10万レコード)を持っています。 これらの20のデータベースを1つのマスタDBに結合したいと考えています。 概念は、レコードが適用可能なドメインを示す追加の列を持つことです。例えばデータベースの結合:共通レコードの識別 - 最も効率的な方法
:
表
FRUIT | COLOR | SHAPE
----------------------
apple | red | round
banana| yellow | curved
表B
FRUIT | COLOR | SHAPE
----------------------
apple | red | round
banana| yellow | curved
表C
のFRUIT | COLOR | SHAPE
----------------------
apple | red | round
banana| blue | straight
これらの表(A、B及びC)は、マスターテーブルに結合されるであろう:
マスターテーブル
FRUIT | COLOR | SHAPE | DOMAIN
---------------------------------
apple | red | round | 0b111
banana| yellow | curved | 0b110
banana| blue | straight| 0b001
Iは、テキストファイル形式でデータベースを持っています(すなわち、タブ区切りリスト)。私はPythonを使用してそれらをsqlite DBにインポートします。 はどのようにして最も効率的ですかこのマージプロセスは何ですか?
私は2つのアイデアを持っている:
は、マスタDBに最初のDBをインポートします。次のDBをインポートするときは、完全なレコードが存在するかどうかを確認してください。有効な場合は、適用可能性列に対してSQL UPDATE問合せを実行します。そうでない場合は、INSERTを使用して新しいレコードを作成します。
テーブルの種類ごとに、pythonで20個のドメインテーブルを読み込み、すべてのドメインまたはサブセットにレコードが存在するかどうかを確認します。次に、適用可能なレコードをマスタDBにインポートします。
これらの操作を効率的に行う方法があるかどうかを知りたいと思います。各データベースのサイズとこのインポートを何度もやる必要があるため、できるだけプロセスを高速化する必要があります。