arrow_back

Striim を使用した Cloud Spanner へのオンライン データ移行

ログイン 参加
知識をテストして、コミュニティで共有しましょう
done
700 を超えるハンズオンラボ、スキルバッジ、コースへのアクセス

Striim を使用した Cloud Spanner へのオンライン データ移行

ラボ 1時間 universal_currency_alt クレジット: 5 show_chart 中級
info このラボでは、学習をサポートする AI ツールが組み込まれている場合があります。
知識をテストして、コミュニティで共有しましょう
done
700 を超えるハンズオンラボ、スキルバッジ、コースへのアクセス

このラボは Google のパートナーである Striim と共同開発されました。アカウント プロフィールでサービスの最新情報、お知らせ、特典の受け取りをご希望になった場合、お客様の個人情報が本ラボのスポンサーである Striim と共有される場合があります。

GSP703

Google Cloud セルフペース ラボ

概要

このラボでは、Google Cloud のデータ移行パートナーである Striim を使用して、Cloud SQL for MySQL データベースを Cloud Spanner に移行する方法について学びます。

Striim は包括的なストリーミング ETL プラットフォームです。グラフィカルなドラッグ&ドロップ インターフェースを使用して、オンプレミスやクラウドのデータソースから Google Cloud データサービスに対してオンライン データ移行や継続的なストリーミング レプリケーションを実行できます。次の図は、Striim のアーキテクチャの概要を示しています。

Striim プラットフォーム アーキテクチャの図

注: このラボでは、MySQL から Cloud Spanner への継続的な移行の実装について重点的に説明します。データベースの移行やレプリケーション、基盤となるデータベースを移行する理由については説明しません。

Striim を介した Cloud SQL for MySQL から Cloud Spanner へのデータフローの図。

この図は、使用および作成するさまざまなサービスと、実装する 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 コンソールにログインする方法

  1. [ラボを開始] ボタンをクリックします。ラボの料金をお支払いいただく必要がある場合は、表示されるポップアップでお支払い方法を選択してください。 左側の [ラボの詳細] パネルには、以下が表示されます。

    • [Google Cloud コンソールを開く] ボタン
    • 残り時間
    • このラボで使用する必要がある一時的な認証情報
    • このラボを行うために必要なその他の情報(ある場合)
  2. [Google Cloud コンソールを開く] をクリックします(Chrome ブラウザを使用している場合は、右クリックして [シークレット ウィンドウでリンクを開く] を選択します)。

    ラボでリソースが起動し、別のタブで [ログイン] ページが表示されます。

    ヒント: タブをそれぞれ別のウィンドウで開き、並べて表示しておきましょう。

    注: [アカウントの選択] ダイアログが表示されたら、[別のアカウントを使用] をクリックします。
  3. 必要に応じて、下のユーザー名をコピーして、[ログイン] ダイアログに貼り付けます。

    {{{user_0.username | "Username"}}}

    [ラボの詳細] パネルでも [ユーザー名] を確認できます。

  4. [次へ] をクリックします。

  5. 以下のパスワードをコピーして、[ようこそ] ダイアログに貼り付けます。

    {{{user_0.password | "Password"}}}

    [ラボの詳細] パネルでも [パスワード] を確認できます。

  6. [次へ] をクリックします。

    重要: ラボで提供された認証情報を使用する必要があります。Google Cloud アカウントの認証情報は使用しないでください。 注: このラボでご自身の Google Cloud アカウントを使用すると、追加料金が発生する場合があります。
  7. その後次のように進みます。

    • 利用規約に同意してください。
    • 一時的なアカウントなので、復元オプションや 2 要素認証プロセスは設定しないでください。
    • 無料トライアルには登録しないでください。

その後、このタブで Google Cloud コンソールが開きます。

注: Google Cloud のプロダクトやサービスのリストを含むメニューを表示するには、左上のナビゲーション メニューをクリックします。ナビゲーション メニュー アイコン

Cloud Shell をアクティブにする

Cloud Shell は、開発ツールと一緒に読み込まれる仮想マシンです。5 GB の永続ホーム ディレクトリが用意されており、Google Cloud で稼働します。Cloud Shell を使用すると、コマンドラインで Google Cloud リソースにアクセスできます。

  1. Google Cloud コンソールの上部にある「Cloud Shell をアクティブにする」アイコン 「Cloud Shell をアクティブにする」アイコン をクリックします。

接続した時点で認証が完了しており、プロジェクトに各自の PROJECT_ID が設定されます。出力には、このセッションの PROJECT_ID を宣言する次の行が含まれています。

Your Cloud Platform project in this session is set to YOUR_PROJECT_ID

gcloud は Google Cloud のコマンドライン ツールです。このツールは、Cloud Shell にプリインストールされており、タブ補完がサポートされています。

  1. (省略可)次のコマンドを使用すると、有効なアカウント名を一覧表示できます。
gcloud auth list
  1. [承認] をクリックします。

  2. 出力は次のようになります。

出力:

ACTIVE: * ACCOUNT: student-01-xxxxxxxxxxxx@qwiklabs.net To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (省略可)次のコマンドを使用すると、プロジェクト ID を一覧表示できます。
gcloud config list project

出力:

[core] project = <project_ID>

出力例:

[core] project = qwiklabs-gcp-44776a13dea667a6 注: Google Cloud における gcloud ドキュメントの全文については、gcloud CLI の概要ガイドをご覧ください。

準備

データベースを移行するには、初期構成が必要です。

  1. Cloud Shell で、データベースとコンピューティング リソースをデプロイするデフォルトのコンピューティング ゾーンを設定します。詳しくは、地域とリージョンをご覧ください。このラボでは を使用します。
gcloud config set compute/zone "{{{project_0.default_zone | Zone}}}" export COMPUTE_ZONE="{{{project_0.default_zone | Zone}}}"
  1. MySQL が設定されていることを確認します。次のコマンドを実行します。
CSQL_NAME=striim-sql-src CSQL_USER_NAME=striim-user CSQL_USER_PWD=striim-usr-password CSQL_ROOT_PWD=striim-root-password
  1. 次に、作成したローカル変数を使用し、次のコマンドを実行して接続します。パスワードを求めるプロンプトが表示されます。パスワードは、作成した CSQL_USER_PWDstriim-usr-password です。
gcloud sql connect $CSQL_NAME --user=$CSQL_USER_NAME
  1. 接続したら、次のコマンドで始めます。
USE striimdemo; SELECT 1 FROM DUAL;
  1. 次に、mysql> プロンプトでトランザクションを読み込みます。
USE striimdemo; CREATE TABLE ORDERS (ORDER_ID Integer, ORDER_DATE VARCHAR(50), ORDER_MODE VARCHAR(8), CUSTOMER_ID Integer, ORDER_STATUS Integer, ORDER_TOTAL Float, SALES_REP_ID Integer, PROMOTION_ID Integer, PRIMARY KEY (ORDER_ID)); INSERT INTO ORDERS (ORDER_ID, ORDER_DATE, ORDER_MODE, CUSTOMER_ID, ORDER_STATUS, ORDER_TOTAL, SALES_REP_ID, PROMOTION_ID) VALUES (1001, 1568927976017, 'In-Store', 1001, 9, 34672.59, 331, 9404); INSERT INTO ORDERS (ORDER_ID, ORDER_DATE, ORDER_MODE, CUSTOMER_ID, ORDER_STATUS, ORDER_TOTAL, SALES_REP_ID, PROMOTION_ID) VALUES (1002, 1568928036017, 'In-Store', 1002, 1, 28133.14, 619, 2689); INSERT INTO ORDERS (ORDER_ID, ORDER_DATE, ORDER_MODE, CUSTOMER_ID, ORDER_STATUS, ORDER_TOTAL, SALES_REP_ID, PROMOTION_ID) VALUES (1003, 1568928096017, 'CompanyB', 1003, 1, 37367.95, 160, 30888); INSERT INTO ORDERS (ORDER_ID, ORDER_DATE, ORDER_MODE, CUSTOMER_ID, ORDER_STATUS, ORDER_TOTAL, SALES_REP_ID, PROMOTION_ID) VALUES (1004, 1568928156017, 'CompanyA', 1004, 1, 7737.02, 362, 89488); INSERT INTO ORDERS (ORDER_ID, ORDER_DATE, ORDER_MODE, CUSTOMER_ID, ORDER_STATUS, ORDER_TOTAL, SALES_REP_ID, PROMOTION_ID) VALUES (1005, 1568928216017, 'CompanyA', 1005, 9, 15959.91, 497, 78454); INSERT INTO ORDERS (ORDER_ID, ORDER_DATE, ORDER_MODE, CUSTOMER_ID, ORDER_STATUS, ORDER_TOTAL, SALES_REP_ID, PROMOTION_ID) VALUES (1006, 1568928276017, 'In-Store', 1006, 1, 82531.55, 399, 22488); INSERT INTO ORDERS (ORDER_ID, ORDER_DATE, ORDER_MODE, CUSTOMER_ID, ORDER_STATUS, ORDER_TOTAL, SALES_REP_ID, PROMOTION_ID) VALUES (1007, 1568928336017, 'CompanyA', 1007, 7, 52929.61, 420, 66256); INSERT INTO ORDERS (ORDER_ID, ORDER_DATE, ORDER_MODE, CUSTOMER_ID, ORDER_STATUS, ORDER_TOTAL, SALES_REP_ID, PROMOTION_ID) VALUES (1008, 1568928396017, 'Online', 1008, 1, 26912.56, 832, 7262); INSERT INTO ORDERS (ORDER_ID, ORDER_DATE, ORDER_MODE, CUSTOMER_ID, ORDER_STATUS, ORDER_TOTAL, SALES_REP_ID, PROMOTION_ID) VALUES (1009, 1568928456017, 'CompanyA', 1009, 1, 97706.08, 124, 12185); INSERT INTO ORDERS (ORDER_ID, ORDER_DATE, ORDER_MODE, CUSTOMER_ID, ORDER_STATUS, ORDER_TOTAL, SALES_REP_ID, PROMOTION_ID) VALUES (1010, 1568928516017, 'CompanyB', 1010, 1, 47539.16, 105, 17868);
  1. 定義したデータベースとテーブルを使用して Cloud Spanner インスタンスが設定されていることを確認します。Google Cloud コンソールの左ペインから、ナビゲーション メニュー > [Spanner] を選択します。

  2. インスタンス striim-spanner-demo、データベース striimdemo の順にクリックします。テーブル orders が存在することを確認します。

  3. テーブル orders をクリックして、[データ] タブをクリックします。テーブルは空です。

空のテーブルを表示している [データ] タブのページ。

  1. [スキーマ] をクリックします。スキーマが定義されていることがわかります。

オーダー ID、ステータス、プロモーション ID などの情報が含まれている [スキーマ] タブのページ。

タスク 1. Striim ソフトウェアの設定

次に、Google Cloud Marketplace を介して、Striim サーバーのインスタンスを設定します。

  1. Google Cloud Marketplace 上の Striim プロダクトに移動します。一連の Google Cloud プロジェクトが表示されている場合は、このラボのプロジェクト ID を選択します。

Marketplace で Striim を開く

または、直接リンクを使用して、Marketplace で検索できます。

  1. [使ってみる] ボタンをクリックします。

  2. チェックボックスをオンにして、利用規約に同意し、[同意する] をクリックします。

  3. [デプロイ] をクリックします。Striim サーバーの構成オプションが表示されます。

  4. ゾーンを に変更します。

  5. Striim との情報共有を許可するかどうかを選択します。

  6. 他のすべての設定をそのままの状態にし、[デプロイ] ボタンをクリックします。

注: 通常、Marketplace ソリューションには、ソフトウェアをサポートするために一緒に起動するさまざまなリソースが付属しています。本番アカウントで Striim を起動する前に、1 か月あたりの請求推定額を確認してください。

ソリューションのプロビジョニング後、[Deployment Manager] ページにリダイレクトされ、デプロイメントの詳細が表示されます。

  1. VMの名前(次のスクリーンショットの例では [Instance])とその VM がデプロイされているゾーン([Instance zone])をメモします。

ハイライト表示されたインスタンス URL とインスタンス ゾーンが含まれている [Striim] ページ。

  1. mysql> プロンプトをまだ終了していない場合は、「exit」と入力して Cloud Shell に戻ります。戻ったら、次のコマンドを実行します。VM 名 [STRIIM VM NAME] とゾーン [STRIIM VM ZONE] はデプロイメントの詳細ペインのものに置き換えます。
STRIIMVM_NAME=[STRIIM VM NAME] STRIIMVM_ZONE=[STRIIM VM ZONE]
  1. 次に、Striim が Cloud SQL と通信できるよう、Striim サーバーの IP アドレスを追加して、接続を許可する必要があります。次のコマンドを実行し、プロンプトが表示されたら、Y キーを押して続行することを確認します。
gcloud sql instances patch $CSQL_NAME --authorized-networks=$(gcloud compute instances describe $STRIIMVM_NAME --format='get(networkInterfaces[0].accessConfigs[0].natIP)' --zone=$STRIIMVM_ZONE)
  1. [Deployment Manager] ページで、[Visit the site] をクリックします。新しいブラウザタブで Striim 構成ウィザードが開きます。リダイレクト通知が表示された場合は、無視してかまいません。表示されたリンクをクリックします。

  2. [Accept Striim EULA and Continue] をクリックして EULA に同意します。

  3. Striim インストールを構成します。

プロパティ 値(値を入力するか、指定されたオプションを選択)
First name Example
Last name User
Email 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
: フォームでスペースや他の記号を使用しないでください。

クラスタ名およびクラスタと管理者のパスワードは、このラボの後半で使用するためメモしておきます。

  1. [Save and Continue] をクリックします。

  2. 次の画面で、ライセンスの詳細を尋ねられます。項目を空白のままにして [Save and Continue] をクリックします。

  3. [Launch] をクリックし、緑色の [Log In] ボタンをクリックします。

  4. admin ユーザーと管理者パスワード my_admin_password を使用してログインします。Striim 管理者コンソール(次に示す画面)が表示され、MySQL に接続できるようになりました。

注: 「admin」ユーザーは組み込みユーザーで、正常にログインするにはこれを使用する必要があります。

ダッシュボード、アプリ、およびソース プレビューのタイルが含まれている Striim 管理者コンソール。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 Striim ソフトウェアの設定

タスク 2. Connector/J の設定

Striim オンライン ドキュメントに従い、MySQL Connector/J を使用して Striim を Cloud SQL インスタンスに接続します。

  1. Striim インスタンスの [Deployment Manager] ページで、青色の [Visit the site] ボタンの横にある [SSH] をクリックします。新しいウィンドウが開き、仮想マシンに自動的に SSH 接続します。

  2. Connector/J を VM にダウンロードして解凍します。

sudo curl -LO https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-8.0.29.tar.gz sudo tar -xvzf mysql-connector-java-8.0.29.tar.gz
  1. ファイルを Striim ライブラリパスにコピーし、実行可能にしてオーナー権限を変更します。
sudo cp mysql-connector-java-8.0.29/mysql-connector-java-8.0.29.jar /opt/striim/lib sudo chmod +x /opt/striim/lib/mysql-connector-java-8.0.29.jar sudo chown striim /opt/striim/lib/mysql-connector-java-8.0.29.jar

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。Connector/J の設定

  1. 次のコマンドを実行してユーザー ディレクトリを作成し、アクセスに必要なユーザー権限を付与します。
export user_id=`whoami` sudo mkdir /home/$user_id sudo chown -R $user_id /home/$user_id sudo chmod -R u+rX /home/$user_id
  1. ここで、新しいライブラリを認識するように Striim サーバーを再起動する必要があります。このことは、次のコマンドを実行して同じ SSH セッションで行います。
sudo systemctl stop striim-node sudo systemctl stop striim-dbms sudo systemctl start striim-dbms sudo systemctl start striim-node
  1. Striim 管理コンソールのブラウザ ウィンドウに戻ってウィンドウを更新し、admin ユーザーとパスワードを使用してログインします。再起動後、管理コンソールの更新に数分かかります。最初のトライアルで管理コンソールが再読み込みされない場合は、管理コンソールが表示されるまで何回か更新してください。

管理コンソールが表示されない場合は、サイトアドレスを使用します。ただし、ポートは 9070 ではなく 9080 を使用します。例: http://[IP_ADDRESS]:9080/

注: admin ユーザーは組み込みユーザーで、Striim 管理コンソールで正常にログインするにはこれを使用する必要があります。

タスク 3. Cloud Spanner アクセスキーの作成

Striim では、Cloud Spanner に接続するためにアクセスキーが必要です。必要な手順は次のとおりです。

  1. Cloud Spanner に接続するために使用する Striim のサービス アカウントを作成します。Cloud Shell で次のコマンドを実行します。
gcloud iam service-accounts create striim-spanner --display-name striim-spanner export sa_striim_spanner=$(gcloud iam service-accounts list --filter="displayName:striim-spanner" --format='value(email)') export PROJECT=$(gcloud info --format='value(config.project)') gcloud projects add-iam-policy-binding $PROJECT --role roles/spanner.databaseUser --member serviceAccount:$sa_striim_spanner gcloud iam service-accounts keys create ~/striim-spanner-key.json --iam-account $sa_striim_spanner

ホームパスに striim-spanner-key.json というキーが作成されます。

次に、作成したキーを Striim VM に移動する必要があります。

  1. Deployment Manager のデプロイメントの詳細ページに移動するか、Cloud コンソールで gcloud compute instances list コマンドを使用して、Striim がデプロイされている仮想マシンの名前を特定します。Striim VM の名前がわかったら、次の手順に進みます。

  2. 次のコマンドを使用して、JSON ファイルを Striim サーバーにコピーします。

gcloud compute scp ~/striim-spanner-key.json $STRIIMVM_NAME:~ --zone=$STRIIMVM_ZONE

これにより、SSH キーが生成されることがあります(その場合はパスフレーズを指定する必要があります)。

  1. プロンプトが表示されたら Y キーを押して続行し、パスフレーズ項目を空のままにします。
注: コンソールにワークグループ エラーが表示されることがあります。これは無視してかまいません。
  1. 次のコマンドを使用して、Striim VM 上の JSON ファイルを /opt/striim ディレクトリに移動します。
gcloud compute ssh --zone=$STRIIMVM_ZONE $STRIIMVM_NAME -- 'sudo cp ~/striim-spanner-key.json /opt/striim && sudo chown striim /opt/striim/striim-spanner-key.json'

これで、Striim アプリケーションを作成する準備が整いました。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 Cloud Spanner アクセスキーの作成

タスク 4. オンライン データベース移行の作成

オンライン データベース移行では、データをソース データベース(オンプレミスまたはクラウド プロバイダのホスト型)から Google Cloud のターゲット データベースに移動します。その間、ビジネス アプリケーションからソース データベースには引き続き完全にアクセスでき、ソース データベースのパフォーマンスへの影響は最小化されます。

オンライン移行では、初期一括読み込みが実行され、変更の継続的なキャプチャも実行されます。その後、2 つのデータベースを同期して、データが失われないようにします。通常、両方のデータベースは長期間保持されるため、新しいクラウド データベースへの切り替えの際に、アプリケーションとユーザーが影響を受けないことをテストして確認できます。

まず初期一括読み込みを作成します。

  1. Striim Web UI で、[Apps] ペインをクリックします。

  2. ページの右上にある [Create App] ボタンをクリックします。

Striim でアプリケーションを作成する方法はいくつかあります。

  1. [Start From Scratch] をクリックします。

  2. アプリケーションに覚えやすい名前を付けます。このラボでは、demo_online を使用します。

  3. アプリケーション名の下で名前空間を選択できます。これらは、アプリケーションの編成に役立つ論理グループです。デフォルトの admin 名前空間を使用します。[Save] をクリックします。

[Flow Designer] ページが表示されます。ストリーミング データ アプリケーションの作成に必要なコネクタはすべて、すぐに使用できる状態でメニューバーの左側に表示されます。

  1. 1 回限りのデータの初期一括読み込みを行うために、Database Reader を使用します。

  2. [Database] タイルを [Sources] ペインから中央のアプリケーション キャンバスにドラッグ&ドロップします。

中央に [New Database] タイルが表示されている Striim アプリケーション キャンバス。

  1. 右側の [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 コマンドを使用して確認できます。
  1. [Show Advanced Settings] リンクをクリックして、その他の構成プロパティを表示します。
プロパティ 値(値を入力するか、指定されたオプションを選択)
Tables striimdemo.ORDERS
[OUTPUT TO] > [New Output] stream_CloudSQLMySQLInitLoad
注: このステップと前のステップでの設定は、次のセクションでまた必要になるため、メモしておきます。
  1. [Save] をクリックします。

簡単なテストを実施し、構成設定が正しいかどうかと、Striim が MySQL に正常に接続できることを確認します。

  1. ページの中央に、[Created] ボタンとその横にプルダウン矢印が表示されます。ボタンをクリックし、[Deploy App] を選択します。

[Deployment] ウィンドウで、デプロイメント トポロジのどの部分で、アプリケーションのどの部分が実行されるようにするかを指定します。通常、これを使用するのは、ソースに接してデプロイされた軽量の転送エージェントをオンプレミスで実行し、クラウドで実行されている Striim サーバーに特定のポートを介してデータを push する場合です。

  1. シンプルなデプロイメント トポロジを使用するので、デフォルト オプションを選択して、[デプロイ] をクリックします。

  2. Database Reader コンポーネントの下にあるウェーブ アイコンをクリックし、その横にあるのアイコンをクリックして、Striim パイプラインを通過するデータをプレビューします。

UI でハイライト表示された目のアイコン

  1. 上部のメニューバーまで戻り、[Deployed]、[Start App] の順にクリックします。

これで、Striim アプリケーションが実行され、データがパイプラインを通過することがわかります。エラーが発生した場合は、パイプラインにソース コンポーネントのみ存在するためにソース データベースへの接続に問題があることを意味します。アプリケーションが正常に実行されてもデータが通過しない場合、通常はデータベースにデータが存在しないことを意味します。

全体的な出力、入力レート、前のデータ ストリームなどの情報が含まれている [Application Progress] ページ。

ソース データベースに正常に接続し、データを読み取ることができることをテストしました。

  1. 上部のメニューバーの [Running] をクリックし、[Stop App] を選択します。

  2. [Stopped] をクリックし、[Undeploy App] を選択します。これで、Cloud Spanner に接続できるようになりました。

  3. [DatabaseReader] の下にあるウェーブボタンをクリックします。今回は + ボタンが表示されます。これをクリックして [Connect next Target component] を選択します。

  4. このターゲット オブジェクトに CloudSpannerInitialLoadTarget という名前を付けて、[Adapter] フィールドの下で、「Spanner」を検索します。[SpannerWriter] を選択します。

[Adapter] カテゴリで選択されている Spanner ライター。

  1. 残りの接続プロパティを入力します。
プロパティ 値(値を入力するか、指定されたオプションを選択)
Service Account Key /opt/striim/striim-spanner-key.json
InstanceID striim-spanner-demo
Tables striimdemo.ORDERS,striimdemo.orders
注: いつでも Cloud Shell で gcloud spanner instances list を使用して確認できます。 注: [Tables] プロパティは、カンマで区切られたソースとターゲットのペアです。srcSchema1.srcTable1,tgtSchema1.tgtTable1; srcSchema2.srcTable2,tgtSchema2.tgtTable2 のような形式になります。 注: [Service Account Key] プロパティは、前に生成されたキーファイルの完全修飾パスと名前です。
  1. [Save] をクリックします。

  2. [Created] プルダウンで [Deploy App] をクリックします。

  3. デフォルトのオプションを選択し、[Deploy] をクリックします。

  4. [Deployed] をクリックし、[Start App] をクリックします。

  5. Cloud Console で [Spanner] に移動し、次に striimdemo データベースに移動します。

  6. 左側のペインで、[Spanner Studio] をクリックします。

  7. エディタ ウィンドウで、クエリ SELECT * from orders を実行すると、複製されたデータが返されます。

注: デフォルトの構成設定のため、データが表示されるまで数分かかる場合があります。

いくつかのオーダーとその詳細がリストされている [結果] タブのページ。

これで、一括読み込みが実行されるように Striim 環境とパイプラインを設定できました。

  1. Cloud Spanner を使用しているため、次の分析クエリを実行して、データが正しく返されることを確認します。
SELECT COUNT(*) AS ORDERS, AVG(ORDER_TOTAL) AS ORDERS_AVE, SUM(ORDER_TOTAL) AS ORDERS_SUM FROM orders;

このクエリによって、注文の平均数量と合計数量がわかります。これらは、それぞれ 43148.952431489.52 です。

1 つの結果がリストされている [結果] タブのページ。

タスク 5. Cloud SQL for MySQL から Cloud Spanner への継続的なデータ パイプラインの作成

1 回限りの初期一括読み込みを完了したところで、次に、継続的なレプリケーション パイプラインを設定します。これは作成した一括パイプラインによく似ていますが、ソース オブジェクトが異なります。

  1. 画面の左上隅にある Striim ロゴをクリックして、メインメニューを開きます。[HOME] をクリックしてメインページに戻り、[Apps] をクリックしてから右上隅にある [Create App] ボタンをクリックして新しいアプリを作成します。

UI に表示されている [Create App] ボタン。

  1. [Start from Scratch] をクリックし、MySQLToCloudSpanner_cdc という名前を付けます。名前空間は admin などのようにそのままにします。

  2. [Save] をクリックします。

  3. 今回は、DatabaseReader ソースではなく MySQL CDC リーダーを選択します。

[Sources] カテゴリでハイライト表示されている MySQL CDC タイル。

  1. 右側の [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 コマンドを使用して確認できます。
  1. [Save] をクリックします。

  2. [Spanner_Source] の下にあるウェーブボタンをクリックします。今回は + ボタンが表示されます。これをクリックして [Connect next Target component] を選択します。

  3. このターゲット オブジェクトに tgt_CDC_SPANNER という名前を付けて、[Adapter] フィールドの下で「Spanner」を検索します。[SpannerWriter] を選択します。

  4. 残りの接続プロパティを入力します。

プロパティ 値(値を入力するか、指定されたオプションを選択)
Service Account Key /opt/striim/striim-spanner-key.json
InstanceID striim-spanner-demo
Tables striimdemo.ORDERS,striimdemo.orders
  1. [Save] をクリックします。

  2. [Created] プルダウンで [Deploy App] をクリックします。

  3. デフォルトのオプションを選択し、[Deploy] をクリックします。

  4. [Deployed] をクリックし、[Start App] をクリックします。

  5. ウェーブ アイコンをクリックし、その横にある目のアイコンをクリックしてデータを確認します。

  6. Cloud Shell に戻り、次のコマンドを実行して MySQL インスタンスを接続します。

gcloud sql connect striim-sql-src --user=striim-user
  1. パスワードの入力を求められたら、「striim-usr-password」と入力します。

  2. striimdemo データベースで、次のコマンドを実行してデータを追加します。

USE striimdemo; INSERT INTO ORDERS (ORDER_ID, ORDER_DATE, ORDER_MODE, CUSTOMER_ID, ORDER_STATUS, ORDER_TOTAL, SALES_REP_ID, PROMOTION_ID) VALUES (1011, 1568928576017, 'In-Store', 1011, 9, 13879.56, 320, 88252); INSERT INTO ORDERS (ORDER_ID, ORDER_DATE, ORDER_MODE, CUSTOMER_ID, ORDER_STATUS, ORDER_TOTAL, SALES_REP_ID, PROMOTION_ID) VALUES (1012, 1568928636017, 'CompanyA', 1012, 1, 19729.99, 76, 95203); INSERT INTO ORDERS (ORDER_ID, ORDER_DATE, ORDER_MODE, CUSTOMER_ID, ORDER_STATUS, ORDER_TOTAL, SALES_REP_ID, PROMOTION_ID) VALUES (1013, 1568928696017, 'In-Store', 1013, 5, 7286.68, 164, 45162); INSERT INTO ORDERS (ORDER_ID, ORDER_DATE, ORDER_MODE, CUSTOMER_ID, ORDER_STATUS, ORDER_TOTAL, SALES_REP_ID, PROMOTION_ID) VALUES (1014, 1568928756017, 'Online', 1014, 1, 87268.61, 909, 70407); INSERT INTO ORDERS (ORDER_ID, ORDER_DATE, ORDER_MODE, CUSTOMER_ID, ORDER_STATUS, ORDER_TOTAL, SALES_REP_ID, PROMOTION_ID) VALUES (1015, 1568928816017, 'CompanyB', 1015, 1, 69744.13, 424, 79401);
  1. Striim コンソールに戻ると、トランザクションが流れていることが表示され始めます。
注: デフォルトの構成設定に応じて、トランザクションが表示されるまで数分かかる場合があります。

ステータス [Running] を表示している [Flow] ページ。

  1. Cloud Spanner でテーブルを見るには、Cloud Shell で gcloud ツールを使用してクエリするか、Cloud コンソールでテーブルに移動します。データが正しくターゲットに複製されていることがわかります。

いくつかのオーダーとその詳細がリストされている [データ] タブのページ。

  1. Cloud コンソールで Cloud Spanner に移動して striimdemo データセットに移動します。

  2. Spanner Studio で最後のクエリを実行して、データが正しく返されることを確認します。これにより、平均注文数量と合計注文数量がわかります。CDC パイプライン後、それぞれ 41959.899333333335629398.4900000001 になります。

SELECT COUNT(*) AS ORDERS, AVG(ORDER_TOTAL) AS ORDERS_AVE, SUM(ORDER_TOTAL) AS ORDERS_SUM FROM orders;

1 つの検索結果が入力されている [結果] タブのページ。

お疲れさまでした

これで、Google Cloud のデータ移行パートナーである Striim を使用して、Cloud SQL for MySQL から Cloud Spanner へのストリーミング パイプラインを設定できました。

次のステップと詳細情報

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 の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。

このコンテンツは現在ご利用いただけません

利用可能になりましたら、メールでお知らせいたします

ありがとうございます。

利用可能になりましたら、メールでご連絡いたします