Google Cloud
変数からGCSへアップロード
概要
このブロックは、変数の内容をGCS上のファイルへ書き出します。
「クエリーの実行」ブロックなどのようなJSON形式のデータを変数に格納するブロックと組み合わせて使用します。
MAGELLAN BLOCKSの処理結果をファイルとして出力し、それを他システムへの入力とすることで、MAGELLAN BLOCKSと他システムとの連携が簡単に実現できます。また、CSVファイル出力することで、Excelとの連携も容易です。
書き出すファイルの形式は、以下の6種類です。
ファイル形式 | 説明 |
---|---|
(none) |
変数の内容をそのままファイルに書き出します。変数の内容が文字列のときのみ使用できます。変数の内容が文字列以外のときはファイルの書き出しに失敗します。 |
YAML |
変数の内容をYAMLに変換してファイルに書き出します。 |
JSON |
変数の内容をJSONに変換してファイルに書き出します。 |
CSV |
変数の内容をCSVに変換してファイルに書き出します。
以下は、オブジェクト生成ブロックを使って、オブジェクトの配列を用意した例です。 (画像をクリックすると拡大表示されます。) このデータをこのブロックで処理すると、以下のCSVが書き出されます(書き込む値を参照する変数に Col1,Col2,Col3 abc,123,1.23 xyz,456,4.56 |
改行区切りのJSON |
変数の内容を改行区切りのJSONに変換してファイルに書き出します。
|
バイナリ(Base64) |
変数の内容をBase64でエンコードされた文字列であると想定して、デコードした文字列をファイルに書き出します。変数の内容が文字列のときのみ使用できます。変数の内容が文字列以外のときはファイルの書き出しに失敗します。 |
プロパティ
プロパティ名 | 説明 |
---|---|
ブロック名 |
ブロックの名前を指定します。ブロックに表示されます。 |
GCPサービスアカウント |
このブロックで使用するGCPサービスアカウントを選択します。 |
アップロードするファイルGCS URL |
書き出し先ファイルのGCS上のURL( |
ファイル形式 |
書き出すファイルの形式を指定します。ここで指定された形式に従い、変数の内容を適切に変換してファイルに書き出します。
各形式について詳しくは、「概要」の説明を参照してください。 |
ブロックメモ |
ブロックに対するコメントを指定します。 |
書き込む値を参照する変数 |
ファイルに書き出す変数を指定します。 |
使用例
この使用例では、BigQueryから月次の売上データを取得し、CSVファイルとしてGoogle Cloud Storage(GCS)に保存するフローを紹介します。このフローにより、月次売上レポートの生成と保存を完全に自動化でき、データの長期保存、クロスプラットフォームでの利用、そしてスケーラブルで安全なデータストレージの重要性を理解できます。
補足
この使用例で示すブロックの設定値は、理解を助けるためのサンプルです。実際の利用に際しては、ご自身の環境やニーズに合わせて適切に変更してください。また、各ブロックの説明では、変更が必要な主要な設定項目のみを記載しています。デフォルト値のままで問題ない項目や、特に言及のない設定項目は省略しています。フローを構築する際は、各ブロックの全ての設定項目を確認し、必要に応じて調整することをお勧めします。
フローの概要は以下の通りです。
- フローを毎月1日の午前0時に開始します。
- BigQueryから前月の売上データを取得します。
- 取得したデータをCSVファイルとしてGCSにアップロードします。
- 処理完了をSlackで通知します。
このフローの実装例は、以下のとおりです。
- 「フローの開始」ブロックで、毎月1日の午前0時にフローを開始するように設定
プロパティ名 値 ID monthly_sales_report
ブロック名 月次売上レポート生成
開始時間 - 繰り返し:
毎月1日
- 時:
0
- 分:
0
開始時間を有効にする - 繰り返し:
- 「クエリーの実行」ブロックで、前月の売上データを取得
プロパティ名 値 クエリー SELECT DATE_TRUNC(sale_date, MONTH) AS month, product_name, SUM(quantity) AS total_quantity, SUM(price * quantity) AS total_revenue FROM `example.transactions` WHERE sale_date >= DATE_TRUNC(DATE_SUB(CURRENT_DATE(), INTERVAL 1 MONTH), MONTH) AND sale_date < DATE_TRUNC(CURRENT_DATE(), MONTH) GROUP BY month, product_name ORDER BY month, total_revenue DESC
結果を格納する変数 monthly_sales_data
このクエリーは前月の売上データを集計し、製品ごとの総販売数と総売上を計算します。
- 「変数からGCSへアップロード」ブロックで、取得したデータをCSVファイルとしてGCSにアップロード
プロパティ名 値 アップロードするファイルGCS URL *****-us-central1-data/block-reference-example/gcs-from-var/sales_report_%Y%m.csv
ファイル形式 CSV
書き込む値を参照する変数 monthly_sales_data
このブロックは、前のステップで取得したデータをCSV形式でGCSにアップロードします。ファイル名には現在の年月が含まれるため、毎月のレポートが一意に識別できます。
- 「Slack通知」ブロックで、処理完了を通知
プロパティ名 値 Webhook URL https://hooks.slack.com/services/T00000000000000000000000000000000/B00000000000000000000000000000000/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
メッセージ 月次売上レポートが生成され、GCSにアップロードされました。ファイル:gs://*****-us-central1-data/block-reference-example/gcs-from-var/sales_report_%Y%m.csv
完成したフローは以下のとおりです。
この使用例では、BigQueryとGCSを連携させて月次売上レポートを自動生成する方法を示しました。このフローは、データの抽出、加工、保存、通知までの一連のプロセスを自動化し、定期的なレポーティング業務を効率化します。
BigQueryとGCSの事前設定は以下のとおりです。
- BigQueryのデータセットとテーブルの作成
- データセット:
example
- テーブル:
transactions
- スキーマ:
[ {"name": "transaction_id", "type": "STRING", "mode": "REQUIRED"}, {"name": "sale_date", "type": "DATE", "mode": "REQUIRED"}, {"name": "product_id", "type": "STRING", "mode": "REQUIRED"}, {"name": "product_name", "type": "STRING", "mode": "REQUIRED"}, {"name": "quantity", "type": "INTEGER", "mode": "REQUIRED"}, {"name": "price", "type": "FLOAT", "mode": "REQUIRED"} ]
- サンプルデータ:
transaction_id,sale_date,product_id,product_name,quantity,price TRX001,2024-07-01,PROD001,Premium Widget,5,50.00 TRX002,2024-07-01,PROD002,Standard Gadget,10,20.00 TRX003,2024-07-02,PROD003,Economy Tool,20,10.00 TRX004,2024-07-02,PROD001,Premium Widget,3,50.00 TRX005,2024-07-03,PROD002,Standard Gadget,8,20.00 TRX006,2024-07-03,PROD003,Economy Tool,15,10.00 TRX007,2024-07-04,PROD001,Premium Widget,6,50.00 TRX008,2024-07-04,PROD002,Standard Gadget,12,20.00 TRX009,2024-07-05,PROD003,Economy Tool,25,10.00 TRX010,2024-07-05,PROD001,Premium Widget,4,50.00 TRX011,2024-07-06,PROD002,Standard Gadget,7,20.00 TRX012,2024-07-06,PROD003,Economy Tool,18,10.00 TRX013,2024-07-07,PROD001,Premium Widget,5,50.00 TRX014,2024-07-07,PROD002,Standard Gadget,9,20.00 TRX015,2024-07-08,PROD003,Economy Tool,22,10.00 TRX016,2024-07-08,PROD001,Premium Widget,3,50.00 TRX017,2024-07-09,PROD002,Standard Gadget,11,20.00 TRX018,2024-07-09,PROD003,Economy Tool,16,10.00 TRX019,2024-07-10,PROD001,Premium Widget,7,50.00 TRX020,2024-07-10,PROD002,Standard Gadget,13,20.00 TRX021,2024-07-11,PROD003,Economy Tool,24,10.00 TRX022,2024-07-11,PROD001,Premium Widget,4,50.00 TRX023,2024-07-12,PROD002,Standard Gadget,8,20.00 TRX024,2024-07-12,PROD003,Economy Tool,19,10.00 TRX025,2024-07-13,PROD001,Premium Widget,6,50.00 TRX026,2024-07-13,PROD002,Standard Gadget,10,20.00 TRX027,2024-07-14,PROD003,Economy Tool,21,10.00 TRX028,2024-07-14,PROD001,Premium Widget,5,50.00 TRX029,2024-07-15,PROD002,Standard Gadget,9,20.00 TRX030,2024-07-15,PROD003,Economy Tool,17,10.00
- データセット:
- GCSバケットの作成
*****-us-central1-data
バケット配下に、block-reference-example/gcs-from-var
フォルダーを作成します。*****-us-central1-data └ block-reference-example └ gcs-from-var
以下は、このフローによって生成されるCSVファイルの例です。
month,product_name,total_quantity,total_revenue 2024-07-01,Premium Widget,48,2400.0 2024-07-01,Economy Tool,197,1970.0 2024-07-01,Standard Gadget,97,1940.0
このCSVファイルは、月ごとの製品別売上概要を提供します。これにより、経営陣や営業チームが売上トレンドを簡単に把握し、データに基づいた意思決定ができます。
この設定により、BigQueryとGCSを効果的に連携させ、データの抽出から保存までの一連のプロセスを自動化できます。ユーザーはレポートの分析や戦略立案に集中でき、データ処理の効率と正確性が大幅に向上します。