ブロックリファレンス

BLOCKS Reference

Google Cloud

変数からGCSへアップロード

概要

このブロックは、変数の内容をGCS上のファイルへ書き出します。

クエリーの実行」ブロックなどのようなJSON形式のデータを変数に格納するブロックと組み合わせて使用します。

MAGELLAN BLOCKSの処理結果をファイルとして出力し、それを他システムへの入力とすることで、MAGELLAN BLOCKSと他システムとの連携が簡単に実現できます。また、CSVファイル出力することで、Excelとの連携も容易です。

書き出すファイルの形式は、以下の6種類です。

ファイル形式 説明
(none)

変数の内容をそのままファイルに書き出します。変数の内容が文字列のときのみ使用できます。変数の内容が文字列以外のときはファイルの書き出しに失敗します。

YAML

変数の内容をYAMLに変換してファイルに書き出します。

JSON

変数の内容をJSONに変換してファイルに書き出します。

CSV

変数の内容をCSVに変換してファイルに書き出します。

  • この形式を使用するためには、変数の内容がオブジェクトの配列でなければなりません。
  • ファイルは、ヘッダー行付きのカンマ(,)区切りのCSVを書き出します。
  • ヘッダー行の各カラム値は、最初のオブジェクトの各ペアのキーになります。

以下は、オブジェクト生成ブロックを使って、オブジェクトの配列を用意した例です。

(画像をクリックすると拡大表示されます。)

このデータをこのブロックで処理すると、以下のCSVが書き出されます(書き込む値を参照する変数に_.dataと指定)。

Col1,Col2,Col3
abc,123,1.23
xyz,456,4.56
改行区切りのJSON

変数の内容を改行区切りのJSONに変換してファイルに書き出します。

  • 変数の内容が配列データのときは、要素ごとに1行のJSONに変換します(ファイルの行数は要素数分)。
  • 変数の内容が配列以外のデータのときは、そのデータを1行のJSONに変換します(ファイルの行数は1行のみ)。
バイナリ(Base64)

変数の内容をBase64でエンコードされた文字列であると想定して、デコードした文字列をファイルに書き出します。変数の内容が文字列のときのみ使用できます。変数の内容が文字列以外のときはファイルの書き出しに失敗します。

プロパティ

プロパティ名 説明
ブロック名

ブロックの名前を指定します。ブロックに表示されます。

GCPサービスアカウント

このブロックで使用するGCPサービスアカウントを選択します。

アップロードするファイルGCS URL

書き出し先ファイルのGCS上のURL(バケット/ファイルのようなURL)を指定します。

変数展開の指定が可能][%形式の文字列書式の指定が可能]
ファイル形式

書き出すファイルの形式を指定します。ここで指定された形式に従い、変数の内容を適切に変換してファイルに書き出します。

  • (none)
  • YAML
  • JSON
  • CSV
  • 改行区切りのJSON
  • バイナリ(Base64)

各形式について詳しくは、「概要」の説明を参照してください。

ブロックメモ

ブロックに対するコメントを指定します。

書き込む値を参照する変数

ファイルに書き出す変数を指定します。

使用例

この使用例では、BigQueryから月次の売上データを取得し、CSVファイルとしてGoogle Cloud Storage(GCS)に保存するフローを紹介します。このフローにより、月次売上レポートの生成と保存を完全に自動化でき、データの長期保存、クロスプラットフォームでの利用、そしてスケーラブルで安全なデータストレージの重要性を理解できます。

info 補足

この使用例で示すブロックの設定値は、理解を助けるためのサンプルです。実際の利用に際しては、ご自身の環境やニーズに合わせて適切に変更してください。また、各ブロックの説明では、変更が必要な主要な設定項目のみを記載しています。デフォルト値のままで問題ない項目や、特に言及のない設定項目は省略しています。フローを構築する際は、各ブロックの全ての設定項目を確認し、必要に応じて調整することをお勧めします。

フローの概要は以下の通りです。

  1. フローを毎月1日の午前0時に開始します。
  2. BigQueryから前月の売上データを取得します。
  3. 取得したデータをCSVファイルとしてGCSにアップロードします。
  4. 処理完了をSlackで通知します。

このフローの実装例は、以下のとおりです。

  1. フローの開始」ブロックで、毎月1日の午前0時にフローを開始するように設定
    プロパティ名
    ID monthly_sales_report
    ブロック名 月次売上レポート生成
    開始時間
    • 繰り返し:毎月1日
    • 時:0
    • 分:0
    開始時間を有効にする check_box
  2. クエリーの実行」ブロックで、前月の売上データを取得
    プロパティ名
    クエリー
    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

    このクエリーは前月の売上データを集計し、製品ごとの総販売数と総売上を計算します。

  3. 「変数から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にアップロードします。ファイル名には現在の年月が含まれるため、毎月のレポートが一意に識別できます。

  4. 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の事前設定は以下のとおりです。

  1. 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
      
  2. 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を効果的に連携させ、データの抽出から保存までの一連のプロセスを自動化できます。ユーザーはレポートの分析や戦略立案に集中でき、データ処理の効率と正確性が大幅に向上します。

この情報は役に立ちましたか?