ScalarDB Schema Loader を使用して既存のテーブルを ScalarDB にインポートする
注記
このページは英語版のページが機械翻訳されたものです。英語版との間に矛盾または不一致がある場合は、英語版を正としてください。
既存のデータベースで ScalarDB を使用したい場合があります (データベースにまたがるトランザクションなど)。その場合、ScalarDB Schema Loader を使用して、それらのデータベースを ScalarDB の制御下にインポートできます。ScalarDB Schema Loader は、既存の各テーブルとメタデータテーブルに ScalarDB 内部メタデータ列を自動的に追加し、複数のデータベースにわたるトランザクション管理などのさまざまな ScalarDB 機能を有効にします。
始める前に
警告
運用環境で ScalarDB にテーブルをインポートする場合は、データベーステーブルと ScalarDB メタデータテーブルにトランザクションメタデータ列が追加されるため、慎重に計画する必要があります。この場合、データベースと ScalarDB の間にはいくつかの違いがあり、いくつかの制限もあります。
データベースに追加されるもの
- ScalarDB メタデータテーブル: ScalarDB は、'scalardb' という名前空間 (基盤となるデータベースのスキーマまたはデータベース) で名前空間名とテーブルメタデータを管理します。
- トランザクションメタデータ列: Consensus Commit トランザクションマネージャーでは、トランザクションを適切に処理するために、実際のレコードとともに保存されたメタデータ (トランザクション ID、レコードバージョン、トランザクションステータスなど) が必要です。したがって、Consensus Commit トランザクションマネージャーを使用する場合、このツールはメタデータ列を追加します。
注記
このツールはデータベースのメタデータのみを変更します。そのため、処理時間はデータベースのサイズに比例して増加することはなく、通常は数秒しかかかりません。
要件
- SQLite を除く JDBC データベースをインポートできます。
- 各テーブルにはプライマリーキー列が必要です。(複合プライマリーキーを使用できます。)
- ターゲットテーブルには、サポートされているデータ型の列のみが必要です。詳細については、JDBC データベースから ScalarDB へのデータ型マッピングを参照してください。
- ScalarDB は、すべての管理操作および CRUD 操作で同じ基盤データベースユーザーアカウントが使用されることを前提としています。そのため、テーブル所有者が ScalarDB で使用されるユーザーアカウントと異なる場合、データベース権限要件で言及されている権限を超えた追加の権限が必要になる可能性があります。これらの要件は、ScalarDB で使用されるユーザーアカウントがテーブル所有者でもあることを前提としています。