このドキュメントでは、Oracle データベースから Google Cloud にオペレーション データをリアルタイムでレプリケートして処理する方法について説明します。チュートリアルはまた、将来の需要をどのように予測するか、そしてこの予測データが得られた際にどのように可視化するかについても示しています。
このチュートリアルの対象は、オペレーション データを使用するデータ エンジニアとアナリストです。SQL クエリとユーザー定義関数(UDF)の両方の作成に精通していることを前提としています。
このチュートリアルでは、FastFresh という名前の架空の店舗を使用して、そのコンセプトを説明します。FastFresh は生鮮食品の販売を専門としており、食品廃棄物を最小限に抑え、すべての店舗間で在庫数を最適化したいと考えています。チュートリアルでの運用データとしては、FastFresh の模擬販売トランザクションを使用します。
アーキテクチャ
次の図は、Google Cloud を介した運用データのフローを示しています。
上の図に示されている運用フローは次のとおりです。
Oracle のソースから受信したデータが、Datastream を通じて Cloud Storage にキャプチャされ、複製されます。
このデータを Dataflow テンプレートによって処理、拡充してから、BigQuery に送ります。
BigQuery ML はデータの需要予測に使用され、Looker で可視化されます。
Google では、Oracle ワークロードのライセンスを提供していません。Google Cloud 上で実行することを選択した Oracle ワークロードのライセンスの調達と、これらのライセンスの条件の遵守は、お客様の責任で行っていただく必要があります。
目標
Oracle のデータを BigQuery にリアルタイムで複製して処理します。
BigQuery で Oracle から複製して処理されたデータに対して需要を予測します。
Looker の予測需要データとオペレーション データをリアルタイムに可視化します。
料金
このドキュメントでは、Google Cloud の次の課金対象のコンポーネントを使用します。
料金計算ツールを使うと、予想使用量に基づいて費用の見積もりを生成できます。
このドキュメントに記載されているタスクの完了後、作成したリソースを削除すると、それ以上の請求は発生しません。詳細については、クリーンアップをご覧ください。
始める前に
-
Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。
-
Compute Engine, Datastream, Dataflow, and Pub/Sub API を有効にします。
デベロッパーとして Looker インスタンスにアクセスできることを確認します。独自の Looker モデルとダッシュボードを設定するには、このアクセス権が必要です。
トライアルをリクエストするには、Looker の無料トライアルデモをご覧ください。
また、プロジェクト オーナーまたは編集者のロールが付与されている必要があります。
環境を準備する
Cloud Shell で、以下の環境変数を定義します。
export PROJECT_NAME="YOUR_PROJECT_NAME" export PROJECT_ID="YOUR_PROJECT_ID" export PROJECT_NUMBER="YOUR_PROJECT_NUMBER" export BUCKET_NAME="${PROJECT_ID}-oracle_retail"
次のように置き換えます。
YOUR_PROJECT_NAME
: プロジェクトの名前YOUR_PROJECT_ID
: オブジェクトの IDYOUR_PROJECT_NUMBER
: プロジェクトの数
次のように入力します。
gcloud config set project ${PROJECT_ID}
このチュートリアルで使用するスクリプトやユーティリティを含む、GitHub のチュートリアル リポジトリのクローンを作成します。
git clone \ https://github.com/caugusto/datastream-bqml-looker-tutorial.git
Oracle に読み込むサンプル トランザクションを含んだカンマ区切りファイルを抽出します。
bunzip2 \ datastream-bqml-looker-tutorial/sample_data/oracle_data.csv.bz2
以下のようにして、Compute Engine にサンプルの Oracle XE 11g の Docker インスタンスを作成します。
Cloud Shell で、ディレクトリを
build_docker
に変更します。cd datastream-bqml-looker-tutorial/build_docker
次の
build_orcl.sh
スクリプトを実行します。./build_orcl.sh \ -p YOUR_PROJECT_ID \ -z GCP_ZONE \ -n GCP_NETWORK_NAME \ -s GCP_SUBNET_NAME \ -f Y \ -d Y
次のように置き換えます。
YOUR_PROJECT_ID
: Google Cloud プロジェクト IDGCP_ZONE
: Compute インスタンスが作成されるゾーンGCP_NETWORK_NAME
= VM とファイアウォールのエントリを作成するネットワーク名GCP_SUBNET_NAME
= VM とファイアウォールのエントリを作成するネットワーク サブネットY or N
= FastFresh スキーマとORDERS
テーブルを作成するための選択肢(Y または N)。このチュートリアルでは、Y を使用します。Y or N
= Datastream で使用するために Oracle データベースを構成するための選択肢(Y または N)。このチュートリアルでは、Y を使用します。
このスクリプトは次のことを行います。
- Google Cloud Compute のインスタンスを新規作成する。
- Oracle 11g XE の docker コンテナを構成する。
- FastFresh スキーマと Datastream の前提条件をプリロードする。
スクリプトの実行後、
build_orcl.sh
スクリプトによって接続の詳細と認証情報(DB Host、DB Port、SID)が表示されます。このチュートリアルの後半で使用するため、これらの詳細のコピーを作成します。複製したデータを保存するための Cloud Storage バケットを作成します。
gsutil mb gs://${BUCKET_NAME}
バケット名は後のステップで使用するため、コピーを作成します。
オブジェクトの変更に関する通知を Pub/Sub トピックに送信するようにバケットを構成します。この構成は、Dataflow テンプレートで必要となります。手順は次のとおりです。
oracle_retail
という名前の新しいトピックを作成します。gsutil notification create -t projects/${PROJECT_ID}/topics/oracle_retail -f \ json gs://${BUCKET_NAME}
このコマンドは、オブジェクトの変更に関する通知を Pub/Sub トピックに送信する
oracle_retail
という新しいトピックを作成します。oracle_retail
トピックに送信されるメッセージを受信するための Pub/Sub サブスクリプションを作成します。gcloud pubsub subscriptions create oracle_retail_sub \ --topic=projects/${PROJECT_ID}/topics/oracle_retail
retail
という名前の BigQuery データセットを作成します。bq mk --dataset ${PROJECT_ID}:retail
Compute Engine のサービス アカウントに BigQuery の Admin ロールを割り当てます。
gcloud projects add-iam-policy-binding ${PROJECT_ID} \ --member=serviceAccount:${PROJECT_NUMBER}-compute@developer.gserviceaccount.com \ --role='roles/bigquery.admin'
Datastream で Oracle データを Google Cloud に複製する
Datastream は、MySQL や Oracle などのソースから Google Cloud データベースやストレージ ソリューションへのデータ同期をサポートしています。
このセクションでは、Datastream を使用して Oracle FastFresh スキーマをバックフィルし、Oracle データベースから Cloud Storage にリアルタイムで更新を複製する方法を説明します。
ストリームの作成
Google Cloud コンソールで、Datastream に移動して [ストリームの作成] をクリックします。フォームが表示されます。
次のようにフォームに入力し、[続行] をクリックします。
ストリーム名:
oracle-cdc
ストリーム ID:
oracle-cdc
Source type:
Oracle
宛先の種類:
Cloud Storage
他のすべてのフィールド: デフォルト値を保持する
[ソースの定義とテスト] セクションで、[新しい接続の作成] プロファイルを選択します。フォームが表示されます。
次のようにフォームに入力し、[続行] をクリックします。
接続プロファイルの名前:
orcl-retail-source
接続プロファイル ID:
orcl-retail-source
ホスト名: <
db_host
>ポート:
1521
ユーザー名:
datastream
パスワード:
tutorial_datastream
システム ID(SID):
XE
接続方法:
IP allowlisting
を選択します。
[テストを実行] をクリックして、移行元データベースと Datastream が相互に通信できることを確認します。その後、[作成して続行] をクリックします。
複製するオブジェクト、特定のスキーマ、テーブル、列を定義し、包含または除外する [含めるオブジェクトを選択] ページが表示されます。
テストが失敗した場合は、フォームのパラメータに必要な変更を加えてから、再度テストを実行します。
以下のイメージにあるように、[FastFresh] > [Orders] を選択します。
既存のレコードを読み込むには、バックフィル モードを [自動] に設定し、[続行] をクリックします。
[宛先の定義] セクションで [新しい接続プロファイルの作成] を選択します。フォームが表示されます。
以下のようにフォームに記入し、[作成して続行] をクリックします。
接続プロファイルの名前:
oracle-retail-gcs
接続プロファイル ID:
oracle-retail-gcs
バケット名: 環境を準備するで作成したバケットの名前。
ストリームのパス接頭辞は空白にしておき、出力フォーマットに JSON を選択します。[続行] をクリックします。
[新しい接続プロファイルを作成] ページで、[検証を実行] をクリックし、[作成] をクリックします。
出力は次のようになります。
Datastream to BigQuery テンプレートを使用して Dataflow ジョブを作成する
このセクションでは、Dataflow の Datastream to BigQuery ストリーミング テンプレートをデプロイし、Datastream で取得した変更を BigQuery に複製します。
また、UDF を作成して使用することで、このテンプレートの機能を拡張します。
受信データを処理するための UDF を作成する
バックフィルされたデータと新しい受信データの両方に対して、以下の処理を実行する UDF を作成します。
お客様の支払方法などの機密情報を削除します。
データ系列と検出の目的で、Oracle ソーステーブルを BigQuery に追加します。
このロジックは、Datastream が生成する JSON ファイルを入力パラメータとする JavaScript ファイルにキャプチャされます。
Cloud Shell セッションで、次のコードをコピーして
retail_transform.js
という名前のファイルに保存します。function process(inJson) { var obj = JSON.parse(inJson), includePubsubMessage = obj.data && obj.attributes, data = includePubsubMessage ? obj.data : obj; data.PAYMENT_METHOD = data.PAYMENT_METHOD.split(':')[0].concat("XXX"); data.ORACLE_SOURCE = data._metadata_schema.concat('.', data._metadata_table); return JSON.stringify(obj); }
retail_transform.js file
を保存する Cloud Storage バケットを作成し、この新しく作成したバケットに JavaScript ファイルをアップロードします。gsutil mb gs://js-${BUCKET_NAME} gsutil cp retail_transform.js \ gs://js-${BUCKET_NAME}/utils/retail_transform.js
Dataflow ジョブを作成する
Cloud Shell で、デッドレター キュー(DLQ)バケットを作成します。
gsutil mb gs://dlq-${BUCKET_NAME}
このバケットは Dataflow によって使用されます。
Dataflow 実行用のサービス アカウントを作成し、アカウントに
Dataflow Worker
、Dataflow Admin
、Pub/Sub Admin
、BigQuery Data Editor
、BigQuery Job User
、Datastream Admin
のロールを割り当てます。gcloud iam service-accounts create df-tutorial gcloud projects add-iam-policy-binding ${PROJECT_ID} \ --member="serviceAccount:df-tutorial@${PROJECT_ID}.iam.gserviceaccount.com" \ --role="roles/dataflow.admin" gcloud projects add-iam-policy-binding ${PROJECT_ID} \ --member="serviceAccount:df-tutorial@${PROJECT_ID}.iam.gserviceaccount.com" \ --role="roles/dataflow.worker" gcloud projects add-iam-policy-binding ${PROJECT_ID} \ --member="serviceAccount:df-tutorial@${PROJECT_ID}.iam.gserviceaccount.com" \ --role="roles/pubsub.admin" gcloud projects add-iam-policy-binding ${PROJECT_ID} \ --member="serviceAccount:df-tutorial@${PROJECT_ID}.iam.gserviceaccount.com" \ --role="roles/bigquery.dataEditor" gcloud projects add-iam-policy-binding ${PROJECT_ID} \ --member="serviceAccount:df-tutorial@${PROJECT_ID}.iam.gserviceaccount.com" \ --role="roles/bigquery.jobUser" gcloud projects add-iam-policy-binding ${PROJECT_ID} \ --member="serviceAccount:df-tutorial@${PROJECT_ID}.iam.gserviceaccount.com" \ --role="roles/datastream.admin" gcloud projects add-iam-policy-binding ${PROJECT_ID} \ --member="serviceAccount:df-tutorial@${PROJECT_ID}.iam.gserviceaccount.com" \ --role="roles/storage.admin"
下りファイアウォール ルールを作成して、自動スケーリングが有効になっている場合に Dataflow VM が TCP ポート 12345 と 12346 でネットワーク トラフィックと通信、送信、受信を行うようにします。
gcloud compute firewall-rules create fw-allow-inter-dataflow-comm \ --action=allow \ --direction=ingress \ --network=GCP_NETWORK_NAME \ --target-tags=dataflow \ --source-tags=dataflow \ --priority=0 \ --rules tcp:12345-12346
Dataflow ジョブを作成して実行します。
export REGION=us-central1 gcloud dataflow flex-template run orders-cdc-template --region ${REGION} \ --template-file-gcs-location "gs://dataflow-templates/latest/flex/Cloud_Datastream_to_BigQuery" \ --service-account-email "df-tutorial@${PROJECT_ID}.iam.gserviceaccount.com" \ --parameters \ inputFilePattern="gs://${BUCKET_NAME}/",\ gcsPubSubSubscription="projects/${PROJECT_ID}/subscriptions/oracle_retail_sub",\ inputFileFormat="json",\ outputStagingDatasetTemplate="retail",\ outputDatasetTemplate="retail",\ deadLetterQueueDirectory="gs://dlq-${BUCKET_NAME}",\ autoscalingAlgorithm="THROUGHPUT_BASED",\ mergeFrequencyMinutes=1,\ javascriptTextTransformGcsPath="gs://js-${BUCKET_NAME}/utils/retail_transform.js",\ javascriptTextTransformFunctionName="process"
Dataflow コンソールを確認し、新しいストリーミング ジョブが開始されたことを確認します。
Cloud Shell で、以下のコマンドを実行し、Datastream のストリームを開始します。
gcloud datastream streams update oracle-cdc \ --location=us-central1 --state=RUNNING --update-mask=state
Datastream ストリームのステータスを確認します。
gcloud datastream streams list \ --location=us-central1
状態が「
Running
」と表示されていることを確認します。新しい状態の値が反映されるまで、数秒かかる場合があります。Datastream コンソールをチェックして、
ORDERS
テーブルのバックフィルの進捗を確認します。出力は次のようになります。
このタスクは初期ロードであるため、Datastream は
ORDERS
オブジェクトから読み取ります。ストリーム作成時に指定した Cloud Storage バケットにある JSON ファイルに全レコードを書き込みます。バックフィル作業には 10 分程度かかります。
BigQuery でデータを分析する
数分後、バックフィルされたデータが BigQuery に複製されます。新着データは、ほぼリアルタイムでデータセットにストリーミングされます。各レコードは、Dataflow テンプレートの一部として定義した UDF ロジックで処理されます。
Dataflow のジョブにより、データセット内に以下の 2 つのテーブルが新たに作成されます。
ORDERS
: この出力テーブルは Oracle テーブルのレプリカで、Dataflow テンプレートの一部としてデータに適用された変換を含みます。出力は次のようになります。
ORDERS_log
: このステージング テーブルには、Oracle ソースからのすべての変更が記録されます。テーブルはパーティション分割され、更新されたレコードと、その変更が更新、挿入、削除のいずれなのかというメタデータの変更情報が格納されます。出力は次のようになります。
BigQuery を使えば、業務データをリアルタイムに見ることができます。また、特定の商品の売上を店舗間でリアルタイムに比較する、または、売上と顧客データを組み合わせて特定の店舗でのお客様の消費傾向を分析するなどのクエリを実行できます。
業務データに対してクエリを実行する
BigQuery で、以下の SQL を実行し、売れ筋上位の 3 商品をクエリします。
SELECT product_name, SUM(quantity) as total_sales FROM `retail.ORDERS` GROUP BY product_name ORDER BY total_sales desc LIMIT 3
出力は次のようになります。
BigQuery で、次の SQL ステートメントを実行して、
ORDERS
テーブルとORDERS_log
テーブルの両方の行数をクエリします。SELECT count(*) FROM `hackfast.retail.ORDERS_log` SELECT count(*) FROM `hackfast.retail.ORDERS`
バックフィルが完了すると、どちらのステートメントも数字 520217 を返します。
BigQuery ML で需要予測モデルをビルドする
BigQuery ML では、ARIMA_PLUS
アルゴリズムを使用して需要予測モデルをビルド、デプロイできます。このセクションでは、BigQuery ML を使用して、店舗内の商品の需要を予測するモデルをビルドします。
トレーニング データを準備する
バックフィルしたデータのサンプルを使用して、モデルをトレーニングします。この場合、1 年間のデータを使用します。トレーニング データの内容は次のとおりです。
- 商品名(
product_name
) - 各商品の販売数(
total_sold
) - 1 時間あたりの販売商品数(
hourly_timestamp
)
手順は次のとおりです。
BigQuery で次の SQL を実行し、トレーニング データを作成して
training_data
という名前の新しいテーブルに保存します。CREATE OR REPLACE TABLE `retail.training_data` AS SELECT TIMESTAMP_TRUNC(time_of_sale, HOUR) as hourly_timestamp, product_name, SUM(quantity) AS total_sold FROM `retail.ORDERS` GROUP BY hourly_timestamp, product_name HAVING hourly_timestamp BETWEEN TIMESTAMP_TRUNC('2021-11-22', HOUR) AND TIMESTAMP_TRUNC('2021-11-28', HOUR) ORDER BY hourly_timestamp
次の SQL を実行して、
training_data
テーブルを確認します。SELECT * FROM `retail.training_data` LIMIT 10;
出力は次のようになります。
需要を予測する
BigQuery で次の SQL を実行し、
ARIMA_PLUS
アルゴリズムを使用する時系列モデルを作成します。CREATE OR REPLACE MODEL `retail.arima_plus_model` OPTIONS( MODEL_TYPE='ARIMA_PLUS', TIME_SERIES_TIMESTAMP_COL='hourly_timestamp', TIME_SERIES_DATA_COL='total_sold', TIME_SERIES_ID_COL='product_name' ) AS SELECT hourly_timestamp, product_name, total_sold FROM `retail.training_data`
ML.FORECAST
関数は、n
時間にわたって見込まれる需要を予測するために使用します。次の SQL を実行して、今後 30 日間の有機バナナの需要を予測します。
SELECT * FROM ML.FORECAST(MODEL `retail.arima_plus_model`, STRUCT(720 AS horizon))
出力は次のようになります。
トレーニング データは 1 時間ごとであるため、ホライズン値は予測時に同じ時間単位(時間)を使用します。ホライズン値を 720 時間に設定すると、今後 30 日間の予測結果が返されます。
このチュートリアルでは小規模なサンプル データセットを使用するため、モデルの精度についてさらに詳しく調べることはしません。
Looker で可視化用のビューを作成する
BigQuery で、次の SQL クエリを実行して、有機バナナの実際の売上と予測された売上を結合するビューを作成します。
CREATE OR REPLACE VIEW `retail.orders_forecast` AS ( SELECT timestamp, product_name, SUM(forecast_value) AS forecast, SUM(actual_value) AS actual from ( SELECT TIMESTAMP_TRUNC(TIME_OF_SALE, HOUR) AS timestamp, product_name, SUM(QUANTITY) as actual_value, NULL AS forecast_value FROM `retail.ORDERS` GROUP BY timestamp, product_name UNION ALL SELECT forecast_timestamp AS timestamp, product_name, NULL AS actual_value, forecast_value, FROM ML.FORECAST(MODEL `retail.arima_plus_model`, STRUCT(720 AS horizon)) ORDER BY timestamp ) GROUP BY timestamp, product_name ORDER BY timestamp )
このビューにより、Looker は実際のデータと予測データを調査する際に関連データを照会できます。
次の SQL を実行してビューを検証します。
SELECT * FROM `retail.orders_forecast` WHERE PRODUCT_NAME='Bag of Organic Bananas' AND TIMESTAMP_TRUNC(timestamp, HOUR) BETWEEN TIMESTAMP_TRUNC('2021-11-28', HOUR) AND TIMESTAMP_TRUNC('2021-11-30', HOUR) LIMIT 100;
出力は次のようになります。
BigQuery ビューの代わりに、Looker の組み込みの派生テーブル機能を使用することもできます。これには、組み込みの派生テーブルと SQL ベースの派生テーブルが含まれます。詳しくは、Looker の派生テーブルをご覧ください。
Looker で運用データと予測データを可視化する
このセクションでは、Looker でグラフを作成して orders_forecast
ビューの内容を可視化します。
BigQuery の接続を設定する
Cloud Shell で、BigQuery データ編集者と BigQuery ジョブユーザーのロールを持つサービス アカウントを作成します。
gcloud iam service-accounts create looker-sa gcloud projects add-iam-policy-binding ${PROJECT_ID} \ --member="serviceAccount:looker-sa@${PROJECT_ID}.iam.gserviceaccount.com" \ --role="roles/bigquery.dataEditor" gcloud projects add-iam-policy-binding ${PROJECT_ID} \ --member="serviceAccount:looker-sa@${PROJECT_ID}.iam.gserviceaccount.com" \ --role="roles/bigquery.jobUser" gcloud iam service-accounts keys create looker_sa_key.json \ --iam-account=looker-sa@${PROJECT_ID}.iam.gserviceaccount.com
キーを JSON 形式でダウンロードします。キーが Cloud Shell ディレクトリにダウンロードされます。
Looker を開き、[Admin] > [Database] > [Connections] > [Add Connections] に移動します。
[接続設定] フォームに次のように入力します。
- 名前:
rds_cdc_retail
- 言語: Google BigQuery 標準 SQL
- プロジェクト名:
your_project_name
- データセット:
retail
- サービス アカウントのメールアドレス: 前の手順で作成したアカウントの名前。
- 永続的な派生テーブル: この機能を有効にするには、チェックボックスをオンにします。
- 名前:
ダウンロードしたサービス アカウントキーを
Service Account JSON/P12 File
フィールドにアップロードします。[Test These Settings] をクリックして接続を検証し、[Create Connection] をクリックします。
新しい LookML プロジェクトを作成する
LookML は、データのモデルのビルドに使用できる軽量なモデリング言語です。これらのモデルを使用して、Looker にデータのクエリ方法を指示します。このセクションでは、このチュートリアルで使用する BigQuery データセット スキーマを反映して LookML モデルをビルドします。Looker はこの BigQuery データセットに対して SQL クエリを作成し、モデルに関連するデータを抽出します。
Looker コンソールで、[Go to Develop] > [Manage LookML Projects] > [New LookML Project] をクリックします。
次のようにフォームに入力します。
Starting point: [Database Schema] で [Generate Model] を選択します。
Connection:
rds_cdc_retail
Build views from: [All Tables] を選択します。
このプロジェクトでは、前のセクションで作成した BigQuery 接続を使用してクエリを生成します。
[プロジェクトを作成] をクリックします。[Explore] ページが開きます。プロジェクトの作成の一環として、BigQuery テーブルを表すモデルファイルとビューファイルが作成されます。
出力は次のようになります。
モデルファイルには、使用するテーブルとそのテーブル間の関係が記述されます。
ビューファイルでは、テーブル内のフィールドにアクセスする方法を示し、カスタム ディメンション、集計、データ全体の関係を作成できます。
次のコードを
orders_forecast.view
ファイルにコピーし、新しい measure を追加します。measure: actual_sum { type: sum sql: ${TABLE}.actual ;; } measure: forecast_sum { type: sum sql: ${TABLE}.forecast ;; }
この measure は、BigQuery テーブルのそれぞれの
actual_sum
フィールドとforecast_sum
フィールドを要約します。[Save Changes] をクリックします。
Looker Explore を作成する
このセクションでは、Looker ML プロジェクトの可視化のタイプを選択します。
Explore を使用して、クエリを実行し、データモデルで定義されたディメンションと測定に対する可視化を行うことができます。Looker Explore の詳細については、Explore パラメータをご覧ください。
Looker コンソールで、[
orders_forecast.view
] プルダウン メニューから [Explore Orders Forecast] を選択します。これを選択すると、有機バナナの予測される売上と実際の売上を一定期間にわたって調査、比較できます。
Explore の [All Fields] タブで以下を選択します。
Actual Sum
フィルタとForecast Sum
フィルタを選択します。[Product Name] の横にあるフィルタ アイコン filter_alt を選択し、次のように設定します。
- Orders Forecast Timestamp Date:
is equal to
:Bag of Organic Bananas
次のようなフィルタが表示されます。
- Orders Forecast Timestamp Date:
[Timestamp] フィールドを展開し、[Time] ディメンションを選択します。
[Timestamp] フィールドで、[Date] の横にあるフィルタ アイコン filter_alt を選択し、[Orders Forecast Timestamp Date] フィールドで次のフィルタを設定します。
is in range
:2021-11-28
until (before)
:2021-11-30
[実行] をクリックします。BigQuery の結果は列形式で表示されます。
出力は次のようになります。
結果を可視化するには、[Visualization] をクリックしてから [Line Chart] をクリックします。
右上の設定アイコン settings をクリックし、[Save to Dashboard] をクリックします。
タイルに「
Forecasted Data
」という名前を付けて、[New Dashboard] を選択します。出力は次のようになります。
プロンプトが表示されたら、ダッシュボードに「
FastFresh Retail Dashboard
」という名前を付けます。[FastFresh Retail Dashboard] リンクテキストをクリックして、新しいダッシュボードに移動します。
次の出力が表示されます。
FastFresh ダッシュボードにタイトルを追加して、引き続き Looker を探索できます。
Looker ダッシュボードはフィルタリングとアラートをサポートし、組織全体で共有することも、特定のチームに定期的に送信するようにスケジュールすることもできます。組織内の他のユーザーがダッシュボードを使用できるようにするには、LookML モデルを本番環境に push する必要がありますが、このチュートリアルでは説明しません。
クリーンアップ
このチュートリアルで使用したリソースについて、Google Cloud アカウントに課金されないようにするには、リソースを含むプロジェクトを削除するか、プロジェクトを維持して個々のリソースを削除します。
- Google Cloud コンソールで、[リソースの管理] ページに移動します。
- プロジェクト リストで、削除するプロジェクトを選択し、[削除] をクリックします。
- ダイアログでプロジェクト ID を入力し、[シャットダウン] をクリックしてプロジェクトを削除します。
次のステップ
- Looker インスタンスを BigQuery に接続する方法を確認する
- BigQuery での需要予測について読む
- Cloud アーキテクチャ センターで、リファレンス アーキテクチャ、図、ベスト プラクティスを確認する。