ブロックリファレンス

BLOCKS Reference

BigQuery

GCS上のExcelからテーブルへロード

概要

このブロックは、指定されたGoogle Cloud Storage(GCS)open_in_new上のExcelファイルのワークシートをBigQueryopen_in_newのテーブルへロードします。

GCS上のExcelからテーブルへロードブロックの概念図
(図をクリックすると拡大表示されます。)

このブロックの利用にあたっては、以下の留意事項があります。

  • 複数ファイルおよび複数ワークシートのロードには対応していません。
  • 対応するExcelファイルは、拡張子が.xlsもしくは.xlsxのみです。
  • スキーマ設定をデータから自動生成する場合、数値列のデータ型は自動的に決定されます。現在の動作では、数値列の内容に応じてFLOAT型またはINTEGER型として扱われますが、これは将来のバージョンで変更される可能性があります。

report注意

セルフサービスプランの場合は、このブロックを使用する前に、Cloud Functions APIを有効にしてください。また、利用するGCPサービスアカウントのロールに、「Cloud Functions開発者」が付与されている必要があります。

プロパティ

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

編集パネルに配置した当該ブロックの表示名が変更できます。

ブロックリストパネル中のブロック名は変更されません。

GCPサービスアカウント

このブロックで扱うGCSとBigQueryにアクセス権があるGCPサービスアカウントを選択します。

このGCPサービスアカウントには、少なくともGCSからの読み取りの権限と、BigQueryへの書き込み権限が必要です。

投入するExcelファイルのGCS URL

テーブルへロードする対象のExcelファイルのGCS URL(gs://my-bucket/foo/bar.xlsxのようなURL)を指定します。

変数展開の指定が可能][%形式の文字列書式の指定が可能]
投入する対象のワークシート名

テーブルへロードする対象のExcelファイル内のワークシートの名前を指定します。

指定しない場合は、一番左のワークシート(通常「Sheet1」)が選択されます。

投入先のデータセット

ロード先テーブルのデータセットを指定します。

変数展開の指定が可能][%形式の文字列書式の指定が可能]
投入先のテーブル

ロード先テーブルを指定します。

変数展開の指定が可能][%形式の文字列書式の指定が可能]
スキーマ設定をデータから自動生成する

スキーマを自動生成する場合は、チェックボックスにチェックを付けます。

自動生成を有効にした場合は、[読み飛ばし行数]プロパティに1が指定されたものとして扱います。ただし、[読み飛ばし行数]プロパティに値を直接指定した場合は、その値が使用されます。

ヘッダー行の列名がカラム名として不正な値だった場合は、「field_0」・「field_1」といった列名が割り当てられます。

スキーマの指定が複数ある場合は、以下の優先順位でスキーマが決定します。

  1. スキーマ設定をデータから自動生成するプロパティ
  2. スキーマ設定プロパティ
スキーマ設定

投入先テーブルのスキーマを指定します。

※[JSONで編集]リンクをクリックすると、JSON形式の文字列を直接指定できます。

info参考

画面上には表示されませんが、descriptionキーが自動で追加されます。JSONで編集の場合は、descriptionキーは表示され編集も可能です。

スキーマの指定が複数ある場合は、以下の優先順位でスキーマが決定します。

  1. スキーマ設定をデータから自動生成するプロパティ
  2. スキーマ設定プロパティ

lightbulbヒント

使い方は、基本操作ガイドの「スキーマ設定プロパティの使い方」を参照願います。

空でないテーブルが存在したとき

投入先のテーブルが存在したときの動作を選択します。

  • 追加:データを追加で読み込みます。
  • 上書き:テーブルを空にしてから読み込みます。
  • エラー:テーブルが空でなければ失敗となります。
ブロックメモ このブロックに関するメモが記載できます。このブロックの処理に影響しません。
読み飛ばし行数

対象データの先頭何行を読み飛ばすかの行数を指定します。

スキーマ自動生成の場合は、読み飛ばした行の最後の行がカラム名になります。

以下の対象データに対して、スキーマ自動生成をオン・読み飛ばし行数を2とした場合は、2行目の「product_cd」・「unit_price」・「unit_cost」がカラム名となります。

     
product_cd unit_price unit_cost
P040101001 198.0 149.0
P040101002 218.0 164.0
P040101003 230.0 173.0
P040101004 248.0 186.0
P040101005 268.0 201.0

info参考

上記サンプルは、「データサイエンティスト協会スキル定義委員」の「データサイエンス100本ノック(構造化データ加工編)」のデータを利用してます。

開始セル(A1形式)

BigQueryのテーブルにロードするデータの位置をA1表記法で指定します。空欄の場合は、A1が指定されたものと見なされます。

以下のような範囲指定も可能です。この場合は、指定した範囲のデータをロードします。

  • A1:B2
  • A:A
  • 1:2
  • A5:A
メモリ上限

Excelファイル内のワークシートを読み込んで、BigQueryテーブルへロードする際に使用するメモリーの上限を指定します。

メモリ上限の適切値は、Excelファイルのワークシートのデータ容量によります。メモリー不足でロードに失敗する場合は、メモリー上限を少しずつ上げて試してください。

  • 256 MB
  • 512 MB
  • 1 GB
  • 2 GB
  • 4 GB
  • 8 GB
インデックスカラム追加時のカラム名(省略可)

BigQueryテーブルに行番号用カラムを追加する場合、カラム名を指定します。カラム名の指定がないと、行番号用カラムは追加されません。

行番号は、読み込むセル範囲の先頭行からカウントされます。この範囲は、指定された読み飛ばし行数開始セル(A1形式)に基づいて決定されます。

たとえば、「index」というカラム名でExcelシートをBigQueryにロードすると、以下のようになります。

Excelシート:
  A B C
1 製品ID 販売量 売上金額
2 P001 50 500,000
3 75 750,000
4 100 1,000,000
5 P002 80 800,000
6 60 600,000
7 90 900,000
BigQueryテーブル:
Row index product_id sales_volume sales_amount
1 1 P001 50 500000
2 2 null 75 750000
3 3 null 100 1000000
4 4 P002 80 800000
5 5 null 60 600000
6 6 null 90 900000

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