Striim を使用して Azure Cosmos DB for Apache Cassandra アカウントにデータを移行する
適用対象: Cassandra
Azure Marketplace の Striim イメージは、データウェアハウスとデータベースから Azure への継続的なリアルタイム データ移動を提供します。 データの移動中に、インライン非正規化とデータ変換の実行、およびリアルタイム分析とデータ レポートのシナリオの有効化を行うことができます。 Striim を使用してエンタープライズ データを Azure Cosmos DB for Apache Cassandra に継続的に移動することは簡単に開始できます。 Azure には、Striim のデプロイと Azure Cosmos DB へのデータの移行を容易にするマーケットプレース オファリングが用意されています。
この記事では、Striim を使用して Oracle データベースから Azure Cosmos DB for Apache Cassandra アカウントにデータを移行する方法について説明します。
前提条件
Azure サブスクリプションをお持ちでない場合は、開始する前に無料アカウントを作成してください。
オンプレミスで実行されている、データが含まれた Oracle データベース。
Striim マーケットプレース ソリューションをデプロイする
Azure portal にサインインします。
[リソースの作成] を選択し、Azure Marketplace で "Striim" を検索します。 最初のオプションを選択し、 [作成] します。
次に、Striim インスタンスの構成プロパティを入力します。 Striim 環境が仮想マシンにデプロイされます。 [基本] ウィンドウから、VM ユーザー名、VM パスワードを入力します (このパスワードは、VM への SSH 接続に使用されます)。 ご使用のサブスクリプション、リソース グループ、および Striim をデプロイする場所の詳細を選択します。 完了したら、 [OK] を選択します。
[Striim Cluster settings](Striim クラスターの設定) ウィンドウで、Striim のデプロイの種類と仮想マシンのサイズを選択します。
設定 値 説明 Striim のデプロイの種類 スタンドアロン Striim は、 [スタンドアロン] または [クラスター] のデプロイの種類で実行できます。 スタンドアロン モードでは、Striim サーバーは単一の仮想マシンにデプロイされます。データ ボリュームに応じて VM のサイズを選択できます。 クラスター モードでは、Striim サーバーは、選択されたサイズの 2 つ以上の VM にデプロイされます。 ノードの数が 2 つを超えるクラスター環境では、自動の高可用性とフェールオーバーが提供されます。
このチュートリアルでは、[スタンドアロン] オプションを選ぶことができます。 既定の “Standard_F4s” サイズの VM を使用します。Striim クラスターの名前 <Striim_cluster_Name> Striim クラスターの名前。 Striim クラスターのパスワード <Striim_cluster_password> クラスターのパスワード。 フォームに入力したら、 [OK] を選択して続行します。
[Striim access settings](Striim のアクセス設定) ウィンドウで、Striim UI にログインするために使用する [Public IP address](パブリック IP アドレス) (既定の値を選択)、 [Domain name for Striim](Striim のドメイン名) 、 [Admin password](管理者パスワード) を構成します。 VNET とサブネットを構成します (既定の値を選択)。 詳細を入力したら、 [OK] を選択して続行します。
Azure はデプロイを検証し、すべてが適切であることを確認します。検証の完了までには数分かかります。 検証が完了したら、 [OK] を選択します。
最後に使用条件を確認し、 [作成] を選択して Striim インスタンスを作成します。
ソース データベースを構成する
このセクションでは、データ移動のソースとして Oracle データベースを構成します。 Striim サーバーには、Oracle への接続に使用される Oracle JDBC ドライバーが付属しています。 ソースの Oracle データベースから変更を読み取るには、LogMiner または XStream API のいずれかを使用できます。 Oracle JDBC ドライバーは、Oracle データベースのデータの読み取り、書き込み、または永続化のために、Striim の Java クラスパスに存在します。
ターゲット データベースを構成する
このセクションでは、データ移動のターゲットとして Azure Cosmos DB for Apache Cassandra アカウントを構成します。
Microsoft Azure portal を使用して Azure Cosmos DB for Apache Cassandra アカウントを作成します。
Azure Cosmos DB アカウントで [データ エクスプローラー] ペインに移動します。 [新しいテーブル] を選択して、新しいコンテナーを作成します。 "製品" と "注文" のデータを Oracle データベースから Azure Cosmos DB に移行するとします。 Orders コンテナーを使用して、StriimDemo という名前の新しいキースペースを作成します。 1000 RU でコンテナーをプロビジョニングします (この例では 1000 RU を使用しますが、ご自分のワークロード用に推定されるスループットを使用してください)。そして、主キーとして /ORDER_ID を使用します。 これらの値は、ソース データによって異なります。
Oracle から Azure Cosmos DB へのデータ フローを構成する
Azure portal でデプロイした Striim インスタンスに移動します。 上部メニュー バーの [接続] ボタンを選択し、 [SSH] タブから [VM ローカル アカウントを使用してログインする] フィールドに URL をコピーします。
新しいターミナル ウィンドウを開き、Azure portal からコピーした SSH コマンドを実行します。 この記事では、macOS でターミナルを使用しますが、Windows コンピューター上の別の SSH クライアントを使用して、同様の手順を実行できます。 プロンプトが表示されたら、yes と入力して続行し、前の手順で仮想マシンに対して設定したパスワードを入力します。
同じターミナル ウィンドウで次のコマンドを実行して、Striim サーバーを再起動します。
systemctl stop striim-node systemctl stop striim-dbms systemctl start striim-dbms systemctl start striim-node
Striim の起動には 1 分かかります。 状態を確認するには、次のコマンドを実行します。
tail -f /opt/striim/logs/striim-node.log
次に、Azure に戻り、Striim VM のパブリック IP アドレスをコピーします。
Striim の Web UI に移動するために、ブラウザーで新しいタブを開き、パブリック IP をコピーし、その後に9080 を指定します。 admin ユーザー名と、Azure portal で指定した管理者パスワードを使用してサインインします。
これで、Striim のホーム ページが表示されます。 3 つの異なるウィンドウ (ダッシュボード、アプリ、SourcePreview) があります。 [ダッシュボード] ウィンドウでは、リアルタイムでデータを移動し、視覚化することができます。 [アプリ] ウィンドウには、ストリーミング データ パイプライン (データ フロー) が含まれています。 このページの右側には SourcePreview があります。ここでは、データを移動する前にプレビューすることができます。
[アプリ] ウィンドウを選択します。今はこのウィンドウに焦点を当てます。 Striim について学ぶために使用できるさまざまなサンプル アプリがありますが、この記事では、独自のものを作成します。 右上隅にある [アプリの追加] ボタンを選択します。
Striim アプリケーションを作成するには、いくつかの異なる方法があります。 このシナリオでは、 [最初から行う] を選択します。
oraToCosmosDB のような分かりやすい名前をアプリケーションに指定し、 [保存] を選択します。
Flow Designer が表示されます。ここでは、既存のコネクタのドラッグ アンド ドロップによってストリーミング アプリケーションを作成できます。 検索バーに [Oracle] と入力し、Oracle CDC ソースをアプリのキャンバスにドラッグ アンド ドロップします。
Oracle インスタンスのソース構成プロパティを入力します。 ソース名は、単に Striim アプリケーションの名前付け規則です。src_onPremOracle のような名前を使用できます。 さらに、アダプターの種類、接続 URL、ユーザー名、パスワード、テーブル名などの詳細を入力します。 [保存] を選択して続行します。
次に、ストリームのウェーブ アイコンをクリックして、ターゲット Azure Cosmos DB インスタンスを接続します。
ターゲットを構成する前に、Striim の Java 環境に Baltimore ルート証明書が追加されていることを確認します。
ターゲット Azure Cosmos DB インスタンスの構成プロパティを入力し、 [保存] を選択して続行します。 注意が必要な重要なパラメーターを次に示します。
アダプター - DatabaseWriter を使用します。 Azure Cosmos DB for Apache Cassandra に書き込む場合は、DatabaseWriter が必要です。 Cassandra ドライバー 3.6.0 は Striim にバンドルされています。 DatabaseWriter が Azure Cosmos DB コンテナーにプロビジョニングされている RU の数を超えると、アプリケーションはクラッシュします。
接続 URL - Azure Cosmos DB JDBC 接続 URL を指定します。 この URL は
jdbc:cassandra://<contactpoint>:10350/<databaseName>?SSL=true
という形式になっていますユーザー名 - Azure Cosmos DB アカウント名を指定します。
パスワード - Azure Cosmos DB アカウントの主キーを指定します。
テーブル - ターゲット テーブルには主キーが必要です。主キーを更新することはできません。
次に、続行して、Striim アプリケーションを実行します。 上部のメニュー バーで、 [Created](作成済み) を選択し、次に [Deploy App](アプリをデプロイ) を選択します。 [Deployment](デプロイ) ウィンドウで、アプリケーションのある特定の部分をデプロイ トポロジの特定の部分で実行するかどうかを指定できます。 Azure を介して単純なデプロイ トポロジで実行しているので、既定のオプションを使用します。
次に、ストリームをプレビューして、Striim を経由するデータ フローを確認します。 ウェーブのアイコンをクリックし、その横の目のアイコンをクリックします。 デプロイ後、ストリームをプレビューして、データ フローを確認できます。 ウェーブ アイコンとその横の眼球を選択します。 上部メニュー バーの [Deployed](デプロイ済み) ボタンを選択し、 [Start App](アプリの開始) を選択します。
CDC (変更データ キャプチャ) リーダーを使用することにより、Striim は、データベースの新しい変更のみを取得します。 ソース テーブルを経由するデータ フローがある場合は、それが表示されます。 ただし、これはサンプル テーブルであるため、ソースはどのアプリケーションにも接続されていません。 サンプル データ ジェネレーターを使用する場合は、Oracle データベースに一連のイベントを挿入できます。
Striim プラットフォームを経由するデータ フローが表示されます。 Striim は、お使いのテーブルに関連するすべてのメタデータも取得します。これは、データを監視し、データが正しいターゲットに到着することを確認するのに役立ちます。
最後に、Azure にサインインし、Azure Cosmos DB アカウントに移動します。 データ エクスプローラーを更新すると、データが到着していることを確認できます。
Azure の Striim ソリューションを使用することにより、Oracle、Cassandra、MongoDB、およびその他のさまざまなソースから Azure Cosmos DB にデータを継続的に移行することができます。 詳細については、Striim の Web サイトや Striim の 30 日間無料お試し版のダウンロード ページにアクセスしてください。Striim で移行パスを設定しようとして問題が発生した場合、サポート リクエストを提出してください。
次のステップ
データを Azure Cosmso DB for NoSQL に移行する場合は、Striim を使用して Cassandra API のアカウントにデータを移行する方法に関するページを参照してください。