Cloud DB Scanner のユースケース

Prev Next

VPC環境で利用できます。

シナリオの概要

Cloud DB for MySQLを対象にスキャナーを作成してユーザーが希望するソースデータのスキーマをスキャンし、テーブルを作成するプロセスを説明します。

ソースデータ

Cloud DB for MySQLに保存されているソースデータには、大気汚染の測定データとして日時、測定所名、オゾン濃度、亜硫酸ガス濃度など、様々な測定情報があります。

データ例

date area_code area_name measure_center_code measure_center_name fine_dust_per_hour fine_dust_per_day ultrafine_dust_per_day ozone_ppm nitrogen_dioxide_concentration_ppm carbon_monoxide_concentration_ppm sulfurous_acid_gas_concentration_ppm
202210302300 100 downtown 111123 junggu 69 59 49 0.013 0.064 0.8 0.004
202210302300 100 downtown 111121 junggu-2 82 59 56 0.008 0.074 0.8 0.003
202210302300 100 downtown 111131 yongsangu 68 58 64 0.028 0.037 0.7 0.003

スキャナー作成と実行

コネクション作成

# 基本情報
名前: (atmosphere-mysql-connection)

# ソースデータ
データタイプ: (Cloud DB for MySQL)
DBサービス: (ユーザーが保有した Cloud DB for MySQLの DBサービス名)
データベース: (DBサービスにあるスキャンするデータベース名)

# アカウント作成
ユーザー名: (Cloud DB for MySQLにアクセスする DBアカウント名)
パスワード: (Cloud DB for MySQLにアクセスする DBパスワード)
  • アカウント作成>ユーザー名 / パスワード: ソースデータにアクセスする DBアカウントを新規で作成します。新規作成されたアカウントは読み取り権限のみ許可され、Data Catalogからのみアクセスできるように制限されます。
参考

入力したユーザー名が別の Connectionで作成された名前だったり、既に存在するユーザー名である場合、既に登録されたユーザー名を使用することになり、入力されたパスワードは無視されます(既に登録されたユーザー名、パスワードは変更しません)。

スキャナー作成

# ソースデータ
データタイプ: (Cloud DB for MySQL)
コネクション: (atmosphere-mysql-connection)
パス: (未入力)

# 実行オプション
実行周期: (オンデマンド)
パターン: (使用しない)
  • パス: 値を入力すると、「当該値 + %」で自動的に処理され、スキャンするデータベースが保有するテーブルのうち当該値で始まる名前のテーブルを対象にスキャンします。
  • パターン: パターンを含めたり除くと、当該パターンに関する名前のテーブルのみスキャンできます。使用しない場合、選択したデータベースのパスの全テーブルをスキャンします。

パスとパターンの条件をすべて設定すると、パスに該当するテーブルのうちパターンの条件を満たすテーブルをスキャンします。

# 出力データ
データベース: (default)
prefix: (未入力)
スキーマ追加時: (テーブル定義をアップデート)
  • prefix: 出力データのテーブル名に prefixがつくため、他のスキャンの出力データと区分できます。

  • スキーマ追加時

    • テーブル定義をアップデート: スキャンするとテーブル変更に関するすべての内容がアップデートされます。
    • 新しい列のみ追加: カラムを追加した場合にのみスキャンするとアップデートされ、カラムを削除した場合は無視します。
    • 無視: スキャンする際、テーブルが変更されてもすべて無視します。

スキャナー実行

  • 実行待機中のスキャナーの [実行] ボタンを押してスキャンを開始します。
  • 実行を開始する ステータスのスキャナーは、スキャン完了と同時に実行待機 ステータスに変更されます。
  • 実行履歴タブで結果を確認でき、スキーマは Tableメニューで確認できます。

スキーマ実行結果

追加テーブル プロパティ情報 スキーマ
atmosphere-data connectionName,
mysqlCollation,
mysqlDataSize,
mysqlIndexSize,
mysqlIndexes,
mysqlRows,
mysqlTableSize,
scannerId,
scannerName, ...
date (bigint ) date (bigint )
area_code (double)
area_name (string)
measure_center_code (double)
measure_center_name (string)
fine_dust_per_hour (double)
fine_dust_per_day (double)
ultrafine_dust_per_day (double)
ozone_ppm (double)
nitrogen_dioxide_concentration_ppm (double)
carbon_monoxide_concentration_ppm (double)
sulfurous_acid_gas_concentration_ppm (double)

テーブル位置

スキャンされたテーブルはそれぞれの位置情報を持ち、作成ルールは次の通りです。

テーブル名: TableName
位置: /DatabaseName.TableName
  • スキャン後にテーブル名と位置が同じテーブルが既に存在する場合、スキャンしたテーブルは既存のテーブルとして認識してアップデートを行います。
  • そのため、複数の DBMSをスキャンする際に同じ Database名、テーブル名を持つ場合、DMBSが異なってもアップデートが行われますのでご注意ください。テーブル名に Prefixを追加することをお勧めします。