Data Migration (データ・マイグレーション)¶
QuantumLeap へのデータの移行を支援するいくつかのツールが利用可能です。
QuantumLeap Crate からTimescale への移行¶
QuantumLeap は、QuantumLeap CrateDB データベースから QuantumLeap
Timescale データベースへのテーブルの移行を支援する自己完結型の Python
スクリプトを提供します。 スクリプトは timescale-container
ディレクトリにあり、 crate-exporter.py
と呼ばれます。指定された
Crate テーブルの行をエクスポートし、stdout
で、そのデータを Timescale
にインポートするために必要なすべての SQL ステートメントを生成します。
これらには、必要に応じて PostgreSQL で対応するスキーマ、テーブル、
ハイパーテーブルを作成することが含まれます。スクリプトは DDL
ステートメントを生成することに注意してください。実行すると、Crate
テーブルに格納された行に対応する NGSI エンティティを見ると QuantumLeap
Timescale バックエンドが生成したものとまったく同じテーブル構造になります。
以下に使用例を示します :
$ python crate-exporter.py --schema mtyoutenant --table etdevice \
> mtyoutenant.etdevice-import.sql
ここでは、Crate table mtyoutenant.etdevice
のすべての行をエクスポート
します。生成されたファイルには、テーブルを再作成してデータを Timescale
に挿入するためのすべての SQL ステートメントが含まれています。
Timescale section で説明されているように、Timescale で
QuantumLeap DB をブートストラップするときにデータが自動的に移行される
ように、このファイルを quantumleap-db-setup
スクリプトの init
ディレクトリに置くことができます。
デフォルトでは、スクリプトは Crate テーブルのすべての行をエクスポート
しますが、次のように、--query
引数を使用してクエリを指定し、目的の
サブセットのみを選択することもできます。
$ python crate-exporter.py --schema mtyoutenant --table etdevice --query \
"SELECT * FROM mtyoutenant.etdevice where time_index > '2019-04-15';"