menu
arrow_back

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

—/100

Checkpoints

arrow_forward

Set up the Striim software

Set up Connector/J

Create a Cloud Spanner access key

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

1時間 クレジット: 7

GSP703

Google Cloud セルフペース ラボ

概要

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

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

23578ad3db1d8fff.png

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

ee37d9c44e583b3c.png

この図は、使用および作成するさまざまなサービスと、実装する Striim を介した Cloud SQL for MySQL から Cloud Spanner へのデータフローを示しています。

ラボの内容

このハンズオンラボでは、次の方法について学びます。

  • 既存の Cloud SQL for MySQL データベースへのアクセスと使用

  • 既存の Cloud Spanner データベースへのアクセスと使用

  • GCP Marketplace を介した Striim のデプロイと設定

  • Striim を使用したソース Cloud SQL for MySQL データベースからの読み取り

  • Striim を使用した Cloud SQL for MySQL から Cloud Spanner への継続的なレプリケーション

設定と要件

必要なもの

[ラボを開始] ボタンをクリックする前に

こちらの手順をお読みください。ラボの時間は制限されており、一時停止することはできません。[ラボを開始] ボタンをクリックするとタイマーが開始され、Cloud リソースを利用できる時間が表示されます。

この Qwiklabs ハンズオンラボでは、シミュレーションやデモ環境ではなく、実際のクラウド環境を使ってご自身でラボのアクティビティを行うことができます。一時的な認証情報が新しく提供されるため、ラボ受講中の Google Cloud Platform へのログインおよびアクセスにはその認証情報を使用してください。

前提条件

このラボを完了するには、次のものが必要です。

  • 標準的なインターネット ブラウザ(Chrome を推奨)。
  • ラボを完了するために必要な時間。

注: すでに個人の GCP アカウントやプロジェクトをお持ちの場合でも、そのアカウントやプロジェクトはラボでは使用しないでください。

ラボを開始して Console にログインする方法

  1. [ラボを開始] ボタンをクリックします。ラボの料金をお支払いいただく必要がある場合は、表示されるポップアップでお支払い方法を選択してください。 左側のパネルには、このラボで使用する必要がある一時的な認証情報が表示されます。

    Google Console を開く

  2. ユーザー名をコピーし、[Google Console を開く] をクリックします。 ラボでリソースが起動し、別のタブで [アカウントの選択] ページが表示されます。

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

  3. [アカウントの選択] ページで [別のアカウントを使用] をクリックします。

    アカウントを選択

  4. [ログイン] ページが開きます。[接続の詳細] パネルでコピーしたユーザー名を貼り付けます。パスワードもコピーして貼り付けます。

    重要: 認証情報は [接続の詳細] パネルに表示されたものを使用してください。ご自身の Qwiklabs 認証情報は使用しないでください。請求が発生する事態を避けるため、GCP アカウントをお持ちの場合でもそのアカウントはラボで使用しないでください。

  5. 以降のページでは次の点にご注意ください。

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

しばらくすると、このタブで GCP Console が開きます。

Google Cloud Shell の有効化

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

  1. GCP Console の右上のツールバーにある [Cloud Shell をアクティブにする] ボタンをクリックします。

    Cloud Shell アイコン

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

    cloudshell_continue

環境のプロビジョニングと接続には少し時間がかかります。接続すると、すでに認証されており、プロジェクトは PROJECT_ID に設定されています。例えば:

Cloud Shell 端末

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

次のコマンドを使用すると、有効なアカウント名を一覧表示できます。

gcloud auth list

出力:

Credentialed accounts:
- <myaccount>@<mydomain>.com (active)
	

出力例:

Credentialed accounts:
- google1623327_student@qwiklabs.net
	

次のコマンドを使用すると、プロジェクト ID を一覧表示できます。

gcloud config list project
	

出力:

[core]
project = <project_ID>
	

出力例:

[core]
project = qwiklabs-gcp-44776a13dea667a6
	

始める前に

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

  1. Cloud Shell で、データベースとコンピューティング リソースをデプロイするデフォルトのコンピューティング ゾーンを設定します。詳しくは、地域とリージョンをご覧ください。このラボでは us-central1-a を使用しますが、別のゾーンを使用する場合はここで変更してください。

gcloud config set compute/zone us-central1-a
export COMPUTE_ZONE=us-central1-a
  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_PWD の striim-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 インスタンスが設定されていることを確認します。Cloud Console で、左側のペインからナビゲーション メニュー > [Spanner] を選択します。

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

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

c225a7167838c0cf.png

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

3acedddf683a7c38.png

Qwiklabs に参加してこのラボの残りの部分や他のラボを確認しましょう。

  • Google Cloud Console への一時的なアクセス権を取得します。
  • 初心者レベルから上級者レベルまで 200 を超えるラボが用意されています。
  • ご自分のペースで学習できるように詳細に分割されています。
参加してこのラボを開始