Striim を使用して Azure Cosmos DB for NoSQL アカウントにデータを移行する
適用対象: NoSQL
Azure Marketplace の Striim イメージは、データウェアハウスとデータベースから Azure への継続的なリアルタイム データ移動を提供します。 データの移動中に、インライン非正規化とデータ変換の実行、およびリアルタイム分析とデータ レポートのシナリオの有効化を行うことができます。 Striim を使用してエンタープライズ データを Azure Cosmos DB for NoSQL に継続的に移動することは簡単に開始できます。 Azure には、Striim のデプロイと Azure Cosmos DB へのデータの移行を容易にするマーケットプレース オファリングが用意されています。
この記事では、Striim を使用して Oracle データベースから Azure Cosmos DB for NoSQL アカウントにデータを移行する方法について説明します。
前提条件
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 NoSQL アカウントを構成します。
Azure portal を使用して Azure Cosmos DB for NoSQL アカウントを作成します。
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 アプリケーションを作成するには、いくつかの異なる方法があります。 [テンプレートを使って開始する] を選択して、既存のテンプレートを使用して開始します。
[テンプレートの検索] フィールドに「Cosmos」と入力し、 [ターゲット:Azure Cosmos DB] を選択し、 [Oracle CDC to Azure Cosmos DB](Oracle CDC から Azure Cosmos DB へ) を選択します。
次のページで、アプリケーションに名前を付けます。 oraToCosmosDB などの名前を指定できます。その後、 [保存] を選択します。
次に、ソース Oracle インスタンスのソース構成を入力します。 [ソース名] に値を入力します。 ソース名は、単に Striim アプリケーションの名前付け規則です。src_onPremOracle などを使用できます。 残りのソース パラメーター [URL] 、 [ユーザー名] 、 [パスワード] に値を入力し、Oracle からデータを読み取るリーダーとして LogMiner を選択します。 [次へ] をクリックして続行します。
Striim によりユーザーの環境がチェックされ、ソース Oracle インスタンスに接続でき、適切な権限を持ち、CDC が適切に構成されていることが確認されます。 すべての値を検証した後、 [次へ] を選択します。
移行する Oracle データベースからテーブルを選択します。 たとえば、Orders テーブルを選択し、 [次へ] を選択します。
ソース テーブルを選択した後、マッピングやフィルター処理など、より複雑な操作を行うことができます。 この場合は、Azure Cosmos DB でソース テーブルのレプリカを作成するだけです。 [次へ] を選択してターゲットを構成します。
次のようにターゲットを構成します。
- [ターゲット名] - ターゲットのフレンドリ名を指定します。
- [Input From](入力元) - ドロップダウン リストから、ソース Oracle 構成で作成した対象からの入力ストリームを選択します。
- [コレクション] - ターゲット Azure Cosmos DB の構成プロパティを入力します。 コレクションの構文は SourceSchema.SourceTable, TargetDatabase.TargetContainer です。 この例では、値は “SYSTEM.ORDERS, StriimDemo.Orders” です。
- [AccessKey] - Azure Cosmos DB アカウントの PrimaryKey です。
- [ServiceEndpoint] – Azure Cosmos DB アカウントの URI です。これらは、Azure portal の [キー] セクションで見つけることができます。
[保存] を選択し、 [次へ] を選択します。
次に、Flow Designer が表示されます。ここでは、既存のコネクタのドラッグ アンド ドロップによってストリーミング アプリケーションを作成できます。 この時点では、フローには何も変更を加えません。 そのため、続行し、 [アプリのデプロイ] ボタンを選択してアプリケーションをデプロイします。
[Deployment](デプロイ) ウィンドウで、アプリケーションのある特定の部分をデプロイ トポロジの特定の部分で実行するかどうかを指定できます。 Azure を介して単純なデプロイ トポロジで実行しているので、既定のオプションを使用します。
デプロイ後、ストリームをプレビューして、データ フローを確認できます。 ウェーブ アイコンとその横の眼球を選択します。 上部メニュー バーの [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 Cosmos DB への移行のための容量計画を実行しようとしていますか?
- 既存のデータベース クラスター内の仮想コアとサーバーの数のみがわかっている場合は、仮想コア数または仮想 CPU 数を使用した要求ユニットの見積もりに関するページを参照してください
- 現在のデータベース ワークロードに対する通常の要求レートがわかっている場合は、Azure Cosmos DB Capacity Planner を使用した要求ユニットの見積もりに関するページを参照してください
データを Azure Cosmos DB for NoSQL に移行する場合は、Striim を使用して Cassandra 用 API アカウントにデータを移行する方法に関するページを参照してください。