Arcion を使用して Cassandra から Azure Cosmos DB for Apache Cassandra アカウントにデータを移行する
適用対象: Cassandra
Azure Cosmos DB の Cassandra API は、次のような多くの理由により、Apache Cassandra 上で実行されているエンタープライズ ワークロードに適した選択肢になりました。
管理と監視のオーバーヘッドなし: OS、JVM、および yaml ファイルやそれらの相互作用での無数の設定を管理および監視する際のオーバーヘッドが解消されます。
大幅なコスト削減: Azure Cosmos DB によってコストを節約できます。これには、VM、帯域幅、適用されるすべてのライセンスのコストが含まれます。 さらに、データ センター、サーバー、SSD ストレージ、ネットワーク、電気代を管理する必要がありません。
既存のコードとツールを使用可能: Azure Cosmos DB では、既存の Cassandra SDK およびツールとのワイヤ プロトコル レベルの互換性が提供されます。 この互換性により、Azure Cosmos DB for Apache Cassandra を少し変更するだけで、既存のコードベースを使用できることが保証されます。
データベースのワークロードをプラットフォーム間で移行するには、さまざまな方法があります。 Arcion とは、他のデータベースから Azure Cosmos DB への移行をダウンタイムなしで実行するための安全で信頼性の高い方法を提供するツールです。 この記事では、Arcion を使用して Apache Cassandra データベースから Azure Cosmos DB for Apache Cassandra にデータを移行するために必要な手順について説明します。
注意
Arcion からのこのオファリングは、現在ベータ版です。 詳細については、Arcion のサポートにお問い合わせください
移行に Arcion を使用する利点
Arcion の移行ソリューションでは、段階的なアプローチに従って複雑な運用ワークロードを移行します。 Arcion のダウンタイムなしの移行プランの主な特徴は次のとおりです。
Apache Cassandra データベースから Azure Cosmos DB へのビジネス ロジック (テーブル、インデックス、ビュー) の自動移行を提供します。 スキーマを手動で作成する必要はありません。
Arcion は、大量の並列データベース レプリケーションを提供します。 これにより、変更データ キャプチャ (CDC) という手法を使用することで、移行中にソースとターゲット両方のプラットフォームを同期することができます。 CDC を使用することで、Arcion は継続的に、ソース データベース (Apache Cassandra) から変更のストリームをプルし、それを移行先データベース (Azure Cosmos DB) に適用します。
フォールトトレラントであるため、システムでハードウェアまたはソフトウェアの障害が発生している間でもデータの配信が 1 回だけ行われます。
TLS、暗号化などのセキュリティ手法を使用して、転送中のデータを保護します。
データを移行する手順
このセクションでは、Arcion を設定して Apache Cassandra データベースから Azure Cosmos DB にデータを移行するために必要な手順について説明します。
Arcion replicant をインストールする予定のコンピューターから、セキュリティ証明書を追加します。 この証明書は、指定された Azure Cosmos DB アカウントを使用して TLS 接続を確立するために Arcion replicant で必要になります。 この証明書は、次の手順を使用して追加できます。
wget https://cacert.omniroot.com/bc2025.crt mv bc2025.crt bc2025.cer keytool -keystore $JAVA_HOME/lib/security/cacerts -importcert -alias bc2025ca -file bc2025.cer
Arcion のインストール ファイルとバイナリ ファイルを入手するには、Arcion Web サイトでデモをリクエストします。 または、チームにメールを送信することもできます。
CLI ターミナルから、ソース データベースの構成を設定します。
vi conf/conn/cassandra.yml
コマンドを使用して構成ファイルを開き、Cassandra ノードの IP アドレス、ポート番号、ユーザー名、パスワードなどの必要な詳細から成るコンマ区切りリストを追加します。 構成ファイルの内容の例を次に示します。type: CASSANDRA host: 172.17.0.2 port: 9042 username: 'cassandra' password: 'cassandra' max-connections: 30
構成の詳細を入力したら、そのファイルを保存して閉じます。
必要に応じて、ソース データベースのフィルター ファイルを設定できます。 このフィルター ファイルでは、移行するスキーマまたはテーブルを指定します。
vi filter/cassandra_filter.yml
コマンドを使用して構成ファイルを開き、次の構成の詳細を入力します。allow: - schema: “io_arcion” Types: [TABLE]
データベース フィルターの詳細を入力したら、そのファイルを保存して閉じます。
次に、移行先データベースの構成を設定します。 構成を定義する前に、Azure Cosmos DB for Apache Cassandra アカウントを作成し、キースペースと、移行されたデータを格納するテーブルを作成します。 Apache Cassandra から Azure Cosmos DB の API for Cassandra に移行しているため、Apache Cassandra で使用していたのと同じパーティション キーを使用できます。
データを移行する前に、コンテナーのスループットを、お使いのアプリケーションで迅速に移行するために必要な量に引き上げます。 たとえば、このスループットを 100,000 RU に引き上げることができます。 移行を開始する前にスループットをスケーリングすると、データの移行にかかる時間を短縮するのに役立ちます。
移行が完了したら、スループットを下げます。 格納されたデータの量と各操作に必要な RU に基づいて、データの移行後に必要なスループットを見積もることができます。 必要な RU の見積もり方法の詳細については、「コンテナーとデータベースのスループットのプロビジョニング」と「Azure Cosmos DB Capacity Planner を使用して RU/秒を見積もる」の記事を参照してください。
[接続文字列] ウィンドウで、ご利用の Azure Cosmos DB アカウントのコンタクト ポイント、ポート、ユーザー名、およびプライマリ パスワードを取得します。 これらの値は構成ファイルで使用します。
CLI ターミナルから、移行先データベースの構成を設定します。
vi conf/conn/cosmosdb.yml
コマンドを使用して構成ファイルを開き、ホスト URI、ポート番号、ユーザー名、パスワードなどの必要なパラメーターから成るコンマ区切りリストを追加します。 次の例は、構成ファイルの内容を示します。type: COSMOSDB host: '<Azure Cosmos DB account’s Contact point>' port: 10350 username: 'arciondemo' password: '<Your Azure Cosmos DB account’s primary password>' max-connections: 30
次に、Arcion を使用してデータを移行します。 Arcion replicant は、フルまたはスナップショット モードで実行できます。
フル モード - このモードでは、replicant が移行後も実行され続け、ソースの Apache Cassandra システムでの変更を待機します。 変更が検出されると、ターゲットの Azure Cosmos DB アカウントにリアルタイムでレプリケートされます。
スナップショット モード - このモードでは、スキーマの移行と 1 回限りのデータ レプリケーションを実行できます。 このオプションでは、リアルタイムのレプリケーションがサポートされていません。
上記の 2 つのモードを使用すると、ダウンタイムなしで移行を実行できます。
データを移行するには、Arcion replicant CLI ターミナルから次のコマンドを実行します。
./bin/replicant full conf/conn/cassandra.yaml conf/conn/cosmosdb.yaml --filter filter/cassandra_filter.yaml --replace-existing
replicant UI には、レプリケーションの進行状況が表示されます。 スキーマの移行とスナップショットの操作が完了すると、進行状況には 100% と表示されます。 移行が完了したら、ターゲットの Azure Cosmos DB データベース上のデータを検証できます。
移行にはフル モードを使用したため、ソースの Apache Cassandra データベースに対してデータの挿入、更新、削除などの操作を実行することができます。 後で、ターゲットの Azure Cosmos DB データベースにリアルタイムでレプリケートされたことを検証します。 移行後は、Azure Cosmos DB コンテナー用に構成されているスループットを必ず下げるようにしてください。
replicant は、どの時点でも停止でき、 --resume スイッチを使用して再開できます。 replicant は、データの整合性を損なうことなく、停止した時点から再開されます。 次のコマンドは、resume スイッチの使用方法を示しています。
./bin/replicant full conf/conn/cassandra.yaml conf/conn/cosmosdb.yaml --filter filter/cassandra_filter.yaml --replace-existing --resume
移行先へのデータ移行、リアルタイムの移行の詳細については、Arcion replicant のデモを参照してください。