チェックポイント
Set up the Striim software
/ 30
Set up Connector/J
/ 30
Create a Cloud Spanner access key
/ 40
Striim を使用した Cloud Spanner へのオンライン データ移行
このラボは Google のパートナーである Striim と共同開発されました。アカウント プロフィールでサービスの最新情報、お知らせ、特典の受け取りをご希望になった場合、お客様の個人情報が本ラボのスポンサーである Striim と共有される場合があります。
GSP703
概要
このラボでは、Google Cloud のデータ移行パートナーである Striim を使用して、Cloud SQL for MySQL データベースを Cloud Spanner に移行する方法について学びます。
Striim は包括的なストリーミング ETL プラットフォームです。グラフィカルなドラッグ&ドロップ インターフェースを使用して、オンプレミスやクラウドのデータソースから Google Cloud データサービスに対してオンライン データ移行や継続的なストリーミング レプリケーションを実行できます。次の図は、Striim のアーキテクチャの概要を示しています。
この図は、使用および作成するさまざまなサービスと、実装する Striim を介した Cloud SQL for MySQL から Cloud Spanner へのデータフローを示しています。
ラボの内容
このハンズオンラボでは、次のタスクの方法について学びます。
- 既存の Cloud SQL for MySQL データベースへのアクセスと使用。
- 既存の Cloud Spanner データベースへのアクセスと使用。
- Google Cloud Marketplace を介した Striim のデプロイと設定。
- Striim を使用したソース Cloud SQL for MySQL データベースからの読み取り。
- Striim を使用した Cloud SQL for MySQL から Cloud Spanner への継続的なレプリケーション。
設定と要件
[ラボを開始] ボタンをクリックする前に
こちらの手順をお読みください。ラボの時間は記録されており、一時停止することはできません。[ラボを開始] をクリックするとスタートするタイマーは、Google Cloud のリソースを利用できる時間を示しています。
このハンズオンラボでは、シミュレーションやデモ環境ではなく、実際のクラウド環境を使ってご自身でラボのアクティビティを行うことができます。そのため、ラボの受講中に Google Cloud にログインおよびアクセスするための、新しい一時的な認証情報が提供されます。
このラボを完了するためには、下記が必要です。
- 標準的なインターネット ブラウザ(Chrome を推奨)
- ラボを完了するために十分な時間を確保してください。ラボをいったん開始すると一時停止することはできません。
ラボを開始して Google Cloud コンソールにログインする方法
-
[ラボを開始] ボタンをクリックします。ラボの料金をお支払いいただく必要がある場合は、表示されるポップアップでお支払い方法を選択してください。 左側の [ラボの詳細] パネルには、以下が表示されます。
- [Google Cloud コンソールを開く] ボタン
- 残り時間
- このラボで使用する必要がある一時的な認証情報
- このラボを行うために必要なその他の情報(ある場合)
-
[Google Cloud コンソールを開く] をクリックします(Chrome ブラウザを使用している場合は、右クリックして [シークレット ウィンドウでリンクを開く] を選択します)。
ラボでリソースが起動し、別のタブで [ログイン] ページが表示されます。
ヒント: タブをそれぞれ別のウィンドウで開き、並べて表示しておきましょう。
注: [アカウントの選択] ダイアログが表示されたら、[別のアカウントを使用] をクリックします。 -
必要に応じて、下のユーザー名をコピーして、[ログイン] ダイアログに貼り付けます。
{{{user_0.username | "Username"}}} [ラボの詳細] パネルでも [ユーザー名] を確認できます。
-
[次へ] をクリックします。
-
以下のパスワードをコピーして、[ようこそ] ダイアログに貼り付けます。
{{{user_0.password | "Password"}}} [ラボの詳細] パネルでも [パスワード] を確認できます。
-
[次へ] をクリックします。
重要: ラボで提供された認証情報を使用する必要があります。Google Cloud アカウントの認証情報は使用しないでください。 注: このラボでご自身の Google Cloud アカウントを使用すると、追加料金が発生する場合があります。 -
その後次のように進みます。
- 利用規約に同意してください。
- 一時的なアカウントなので、復元オプションや 2 要素認証プロセスは設定しないでください。
- 無料トライアルには登録しないでください。
その後、このタブで Google Cloud コンソールが開きます。
Cloud Shell をアクティブにする
Cloud Shell は、開発ツールと一緒に読み込まれる仮想マシンです。5 GB の永続ホーム ディレクトリが用意されており、Google Cloud で稼働します。Cloud Shell を使用すると、コマンドラインで Google Cloud リソースにアクセスできます。
- Google Cloud コンソールの上部にある「Cloud Shell をアクティブにする」アイコン をクリックします。
接続した時点で認証が完了しており、プロジェクトに各自の PROJECT_ID が設定されます。出力には、このセッションの PROJECT_ID を宣言する次の行が含まれています。
gcloud
は Google Cloud のコマンドライン ツールです。このツールは、Cloud Shell にプリインストールされており、タブ補完がサポートされています。
- (省略可)次のコマンドを使用すると、有効なアカウント名を一覧表示できます。
-
[承認] をクリックします。
-
出力は次のようになります。
出力:
- (省略可)次のコマンドを使用すると、プロジェクト ID を一覧表示できます。
出力:
出力例:
gcloud
ドキュメントの全文については、gcloud CLI の概要ガイドをご覧ください。
準備
データベースを移行するには、初期構成が必要です。
- Cloud Shell で、データベースとコンピューティング リソースをデプロイするデフォルトのコンピューティング ゾーンを設定します。詳しくは、地域とリージョンをご覧ください。このラボでは
を使用します。
- MySQL が設定されていることを確認します。次のコマンドを実行します。
- 次に、作成したローカル変数を使用し、次のコマンドを実行して接続します。パスワードを求めるプロンプトが表示されます。パスワードは、作成した CSQL_USER_PWD の
striim-usr-password
です。
- 接続したら、次のコマンドで始めます。
- 次に、
mysql>
プロンプトでトランザクションを読み込みます。
-
定義したデータベースとテーブルを使用して Cloud Spanner インスタンスが設定されていることを確認します。Google Cloud コンソールの左ペインから、ナビゲーション メニュー > [Spanner] を選択します。
-
インスタンス
striim-spanner-demo
、データベースstriimdemo
の順にクリックします。テーブル orders が存在することを確認します。 -
テーブル orders をクリックして、[データ] タブをクリックします。テーブルは空です。
- [スキーマ] をクリックします。スキーマが定義されていることがわかります。
タスク 1. Striim ソフトウェアの設定
次に、Google Cloud Marketplace を介して、Striim サーバーのインスタンスを設定します。
- Google Cloud Marketplace 上の Striim プロダクトに移動します。一連の Google Cloud プロジェクトが表示されている場合は、このラボのプロジェクト ID を選択します。
または、直接リンクを使用して、Marketplace で検索できます。
-
[使ってみる] ボタンをクリックします。
-
チェックボックスをオンにして、利用規約に同意し、[同意する] をクリックします。
-
[デプロイ] をクリックします。Striim サーバーの構成オプションが表示されます。
-
ゾーンを
に変更します。 -
Striim との情報共有を許可するかどうかを選択します。
-
他のすべての設定をそのままの状態にし、[デプロイ] ボタンをクリックします。
ソリューションのプロビジョニング後、[Deployment Manager] ページにリダイレクトされ、デプロイメントの詳細が表示されます。
- VMの名前(次のスクリーンショットの例では [Instance])とその VM がデプロイされているゾーン([Instance zone])をメモします。
-
mysql>
プロンプトをまだ終了していない場合は、「exit
」と入力して Cloud Shell に戻ります。戻ったら、次のコマンドを実行します。VM 名[STRIIM VM NAME]
とゾーン[STRIIM VM ZONE]
はデプロイメントの詳細ペインのものに置き換えます。
- 次に、Striim が Cloud SQL と通信できるよう、Striim サーバーの IP アドレスを追加して、接続を許可する必要があります。次のコマンドを実行し、プロンプトが表示されたら、
Y
キーを押して続行することを確認します。
-
[Deployment Manager] ページで、[Visit the site] をクリックします。新しいブラウザタブで Striim 構成ウィザードが開きます。リダイレクト通知が表示された場合は、無視してかまいません。表示されたリンクをクリックします。
-
[Accept Striim EULA and Continue] をクリックして EULA に同意します。
-
Striim インストールを構成します。
プロパティ | 値(値を入力するか、指定されたオプションを選択) |
---|---|
First name | Example |
Last name | User |
user@example.com |
|
Company Name | Example |
Cluster name | my_cluster |
Admin password | my_admin_password |
Sys user password | my_cluster_password |
Striim Key Store password | my_cluster_password |
クラスタ名およびクラスタと管理者のパスワードは、このラボの後半で使用するためメモしておきます。
-
[Save and Continue] をクリックします。
-
次の画面で、ライセンスの詳細を尋ねられます。項目を空白のままにして [Save and Continue] をクリックします。
-
[Launch] をクリックし、緑色の [Log In] ボタンをクリックします。
-
admin
ユーザーと管理者パスワードmy_admin_password
を使用してログインします。Striim 管理者コンソール(次に示す画面)が表示され、MySQL に接続できるようになりました。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
タスク 2. Connector/J の設定
Striim オンライン ドキュメントに従い、MySQL Connector/J を使用して Striim を Cloud SQL インスタンスに接続します。
-
Striim インスタンスの [Deployment Manager] ページで、青色の [Visit the site] ボタンの横にある [SSH] をクリックします。新しいウィンドウが開き、仮想マシンに自動的に SSH 接続します。
-
Connector/J を VM にダウンロードして解凍します。
- ファイルを Striim ライブラリパスにコピーし、実行可能にしてオーナー権限を変更します。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
- 次のコマンドを実行してユーザー ディレクトリを作成し、アクセスに必要なユーザー権限を付与します。
- ここで、新しいライブラリを認識するように Striim サーバーを再起動する必要があります。このことは、次のコマンドを実行して同じ SSH セッションで行います。
- Striim 管理コンソールのブラウザ ウィンドウに戻ってウィンドウを更新し、
admin
ユーザーとパスワードを使用してログインします。再起動後、管理コンソールの更新に数分かかります。最初のトライアルで管理コンソールが再読み込みされない場合は、管理コンソールが表示されるまで何回か更新してください。
管理コンソールが表示されない場合は、サイトアドレスを使用します。ただし、ポートは 9070 ではなく 9080 を使用します。例: http://[IP_ADDRESS]:9080/
admin
ユーザーは組み込みユーザーで、Striim 管理コンソールで正常にログインするにはこれを使用する必要があります。タスク 3. Cloud Spanner アクセスキーの作成
Striim では、Cloud Spanner に接続するためにアクセスキーが必要です。必要な手順は次のとおりです。
- Cloud Spanner に接続するために使用する Striim のサービス アカウントを作成します。Cloud Shell で次のコマンドを実行します。
ホームパスに striim-spanner-key.json
というキーが作成されます。
次に、作成したキーを Striim VM に移動する必要があります。
-
Deployment Manager のデプロイメントの詳細ページに移動するか、Cloud コンソールで gcloud compute instances list コマンドを使用して、Striim がデプロイされている仮想マシンの名前を特定します。Striim VM の名前がわかったら、次の手順に進みます。
-
次のコマンドを使用して、JSON ファイルを Striim サーバーにコピーします。
これにより、SSH キーが生成されることがあります(その場合はパスフレーズを指定する必要があります)。
- プロンプトが表示されたら
Y
キーを押して続行し、パスフレーズ項目を空のままにします。
- 次のコマンドを使用して、Striim VM 上の JSON ファイルを /opt/striim ディレクトリに移動します。
これで、Striim アプリケーションを作成する準備が整いました。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
タスク 4. オンライン データベース移行の作成
オンライン データベース移行では、データをソース データベース(オンプレミスまたはクラウド プロバイダのホスト型)から Google Cloud のターゲット データベースに移動します。その間、ビジネス アプリケーションからソース データベースには引き続き完全にアクセスでき、ソース データベースのパフォーマンスへの影響は最小化されます。
オンライン移行では、初期一括読み込みが実行され、変更の継続的なキャプチャも実行されます。その後、2 つのデータベースを同期して、データが失われないようにします。通常、両方のデータベースは長期間保持されるため、新しいクラウド データベースへの切り替えの際に、アプリケーションとユーザーが影響を受けないことをテストして確認できます。
まず初期一括読み込みを作成します。
-
Striim Web UI で、[Apps] ペインをクリックします。
-
ページの右上にある [Create App] ボタンをクリックします。
Striim でアプリケーションを作成する方法はいくつかあります。
-
[Start From Scratch] をクリックします。
-
アプリケーションに覚えやすい名前を付けます。このラボでは、
demo_online
を使用します。 -
アプリケーション名の下で名前空間を選択できます。これらは、アプリケーションの編成に役立つ論理グループです。デフォルトの
admin
名前空間を使用します。[Save] をクリックします。
[Flow Designer] ページが表示されます。ストリーミング データ アプリケーションの作成に必要なコネクタはすべて、すぐに使用できる状態でメニューバーの左側に表示されます。
-
1 回限りのデータの初期一括読み込みを行うために、Database Reader を使用します。
-
[Database] タイルを [Sources] ペインから中央のアプリケーション キャンバスにドラッグ&ドロップします。
- 右側の [New Source] ですべての接続プロパティを入力します。
プロパティ | 値(値を入力するか、指定されたオプションを選択) |
---|---|
Name | mysql_source |
Connection URL | jdbc:mysql://[PRIMARY_ADDRESS]:3306/striimdemo |
Username | striim-user |
Password | striim-usr-password |
[PRIMARY_ADDRESS]
は、SQL インスタンスの IP アドレスです。IP アドレスは、Cloud Shell で gcloud sql instances list
コマンドを使用して確認できます。
- [Show Advanced Settings] リンクをクリックして、その他の構成プロパティを表示します。
プロパティ | 値(値を入力するか、指定されたオプションを選択) |
---|---|
Tables | striimdemo.ORDERS |
[OUTPUT TO] > [New Output] | stream_CloudSQLMySQLInitLoad |
- [Save] をクリックします。
簡単なテストを実施し、構成設定が正しいかどうかと、Striim が MySQL に正常に接続できることを確認します。
- ページの中央に、[Created] ボタンとその横にプルダウン矢印が表示されます。ボタンをクリックし、[Deploy App] を選択します。
[Deployment] ウィンドウで、デプロイメント トポロジのどの部分で、アプリケーションのどの部分が実行されるようにするかを指定します。通常、これを使用するのは、ソースに接してデプロイされた軽量の転送エージェントをオンプレミスで実行し、クラウドで実行されている Striim サーバーに特定のポートを介してデータを push する場合です。
-
シンプルなデプロイメント トポロジを使用するので、デフォルト オプションを選択して、[デプロイ] をクリックします。
-
Database Reader コンポーネントの下にあるウェーブ アイコンをクリックし、その横にある目のアイコンをクリックして、Striim パイプラインを通過するデータをプレビューします。
- 上部のメニューバーまで戻り、[Deployed]、[Start App] の順にクリックします。
これで、Striim アプリケーションが実行され、データがパイプラインを通過することがわかります。エラーが発生した場合は、パイプラインにソース コンポーネントのみ存在するためにソース データベースへの接続に問題があることを意味します。アプリケーションが正常に実行されてもデータが通過しない場合、通常はデータベースにデータが存在しないことを意味します。
ソース データベースに正常に接続し、データを読み取ることができることをテストしました。
-
上部のメニューバーの [Running] をクリックし、[Stop App] を選択します。
-
[Stopped] をクリックし、[Undeploy App] を選択します。これで、Cloud Spanner に接続できるようになりました。
-
[DatabaseReader] の下にあるウェーブボタンをクリックします。今回は + ボタンが表示されます。これをクリックして [Connect next Target component] を選択します。
-
このターゲット オブジェクトに CloudSpannerInitialLoadTarget という名前を付けて、[Adapter] フィールドの下で、「Spanner」を検索します。[SpannerWriter] を選択します。
- 残りの接続プロパティを入力します。
プロパティ | 値(値を入力するか、指定されたオプションを選択) |
---|---|
Service Account Key | /opt/striim/striim-spanner-key.json |
InstanceID | striim-spanner-demo |
Tables | striimdemo.ORDERS,striimdemo.orders |
gcloud spanner instances list
を使用して確認できます。srcSchema1.srcTable1,tgtSchema1.tgtTable1; srcSchema2.srcTable2,tgtSchema2.tgtTable2
のような形式になります。-
[Save] をクリックします。
-
[Created] プルダウンで [Deploy App] をクリックします。
-
デフォルトのオプションを選択し、[Deploy] をクリックします。
-
[Deployed] をクリックし、[Start App] をクリックします。
-
Cloud Console で [Spanner] に移動し、次に
striimdemo
データベースに移動します。 -
左側のペインで、[Spanner Studio] をクリックします。
-
エディタ ウィンドウで、クエリ
SELECT * from orders
を実行すると、複製されたデータが返されます。
これで、一括読み込みが実行されるように Striim 環境とパイプラインを設定できました。
- Cloud Spanner を使用しているため、次の分析クエリを実行して、データが正しく返されることを確認します。
このクエリによって、注文の平均数量と合計数量がわかります。これらは、それぞれ 43148.952
と 431489.52
です。
タスク 5. Cloud SQL for MySQL から Cloud Spanner への継続的なデータ パイプラインの作成
1 回限りの初期一括読み込みを完了したところで、次に、継続的なレプリケーション パイプラインを設定します。これは作成した一括パイプラインによく似ていますが、ソース オブジェクトが異なります。
- 画面の左上隅にある Striim ロゴをクリックして、メインメニューを開きます。[HOME] をクリックしてメインページに戻り、[Apps] をクリックしてから右上隅にある [Create App] ボタンをクリックして新しいアプリを作成します。
-
[Start from Scratch] をクリックし、
MySQLToCloudSpanner_cdc
という名前を付けます。名前空間はadmin
などのようにそのままにします。 -
[Save] をクリックします。
-
今回は、DatabaseReader ソースではなく MySQL CDC リーダーを選択します。
- 右側の [New Source] ですべての接続プロパティを入力します。
プロパティ | 値(値を入力するか、指定されたオプションを選択) |
---|---|
Name | spanner_source |
Connection URL | jdbc:mysql://[PRIMARY_ADDRESS]:3306/striimdemo |
Username | striim-user |
Password | striim-usr-password |
Tables | striimdemo.ORDERS |
[OUTPUT TO] > [New Output] | tgt_MySQLCDCSpanner |
[PRIMARY_ADDRESS]
は、SQL インスタンスの IP アドレスです。IP アドレスは、Cloud Shell で gcloud sql instances list
コマンドを使用して確認できます。
-
[Save] をクリックします。
-
[Spanner_Source] の下にあるウェーブボタンをクリックします。今回は + ボタンが表示されます。これをクリックして [Connect next Target component] を選択します。
-
このターゲット オブジェクトに
tgt_CDC_SPANNER
という名前を付けて、[Adapter] フィールドの下で「Spanner」を検索します。[SpannerWriter] を選択します。 -
残りの接続プロパティを入力します。
プロパティ | 値(値を入力するか、指定されたオプションを選択) |
---|---|
Service Account Key | /opt/striim/striim-spanner-key.json |
InstanceID | striim-spanner-demo |
Tables | striimdemo.ORDERS,striimdemo.orders |
-
[Save] をクリックします。
-
[Created] プルダウンで [Deploy App] をクリックします。
-
デフォルトのオプションを選択し、[Deploy] をクリックします。
-
[Deployed] をクリックし、[Start App] をクリックします。
-
ウェーブ アイコンをクリックし、その横にある目のアイコンをクリックしてデータを確認します。
-
Cloud Shell に戻り、次のコマンドを実行して MySQL インスタンスを接続します。
-
パスワードの入力を求められたら、「
striim-usr-password
」と入力します。 -
striimdemo
データベースで、次のコマンドを実行してデータを追加します。
- Striim コンソールに戻ると、トランザクションが流れていることが表示され始めます。
- Cloud Spanner でテーブルを見るには、Cloud Shell で
gcloud
ツールを使用してクエリするか、Cloud コンソールでテーブルに移動します。データが正しくターゲットに複製されていることがわかります。
-
Cloud コンソールで Cloud Spanner に移動して
striimdemo
データセットに移動します。 -
Spanner Studio で最後のクエリを実行して、データが正しく返されることを確認します。これにより、平均注文数量と合計注文数量がわかります。CDC パイプライン後、それぞれ
41959.899333333335
と629398.4900000001
になります。
お疲れさまでした
これで、Google Cloud のデータ移行パートナーである Striim を使用して、Cloud SQL for MySQL から Cloud Spanner へのストリーミング パイプラインを設定できました。
次のステップと詳細情報
- Google Cloud Marketplace で Striim を探します。
- Striim について詳しく知るには、ウェブサイトにアクセスするか、Striim 技術者とデモをスケジュールしてください。
- Striim ブログを購読します。
Google Cloud トレーニングと認定資格
Google Cloud トレーニングと認定資格を通して、Google Cloud 技術を最大限に活用できるようになります。必要な技術スキルとベスト プラクティスについて取り扱うクラスでは、学習を継続的に進めることができます。トレーニングは基礎レベルから上級レベルまであり、オンデマンド、ライブ、バーチャル参加など、多忙なスケジュールにも対応できるオプションが用意されています。認定資格を取得することで、Google Cloud テクノロジーに関するスキルと知識を証明できます。
最終テスト日: 2023 年 12 月 5 日
最終更新日: 2023 年 12 月 5 日
Copyright 2024 Google LLC All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。