Google Sheetsデータソースの設定
Google Sheetsデータソースは、オフライン同期でGoogle スプレッドシートのデータを読み取り、プラットフォーム内蔵のデータウェアハウスに書き込むために使用します。このドキュメントでは、Google側での権限付与の準備、データソースの設定、同期プランの作成、タスクフローへのマウントについて説明します。
使用制限と事前準備
設定を始める前に、以下の制限と前提条件を確認してください:
- Google Sheetsはデータソースとしてのみ使用でき、データの流向としては使用できません。また、Google スプレッドシートへの書き戻しも行いません。
- システムは、Google Sheetsの上部に表示される列記号(A、B、Cなど)に
col_プレフィックスを自動で付けて、ソースフィールド名を生成します。たとえば、A列からはcol_A、B列からはcol_Bが生成されます。ソースフィールドのタイプはすべて文字列のため、フィールド照合の際に目標テーブルの要件に合わせてフィールドを変換または調整してください。 - Google Cloudプロジェクト、サービスアカウント、JSONキーを作成できるGoogleアカウントを用意し、そのアカウントに対象のGoogle スプレッドシートをサービスアカウントと共有する権限があることを確認してください。
- プラットフォームの実行環境からGoogle Sheets APIとGoogle Drive APIにアクセスできる必要があります。
| 環境の構成方法 | 適用シナリオ | 設定要件 |
|---|---|---|
| 環境を区別しない | 開発環境と本番環境で同じサービスアカウントを共用 | JSONキーを1つアップロードするだけ |
| 独立環境構成 | 開発環境と本番環境で異なるサービスアカウントを使用 | キーをそれぞれアップロード。両方のアカウントが同名のGoogle スプレッドシートとシートにアクセスできる必要あり |
独立環境構成では、設定とプレビューには開発環境の認証情報が、本番タスクには本番環境の認証情報が使用されます。両方の環境で、スプレッドシート名、シート名、共有権限を事前に確認してください。
Google CloudとGoogle Sheetsでの権限付与
Google Sheetsデータソースは、サービスアカウントを使ってサーバー側で認証します。OAuth同意画面、クライアントID、コールバックURL、ドメイン全体の委任を設定する必要はありません。
- Google Cloudプロジェクトを作成または選択します。Google Cloud Consoleにアクセスし、既存のプロジェクトを選択するか、新しいプロジェクトを作成します。
- 必要なAPIを有効にします。APIとサービス > ライブラリ で Google Sheets API と Google Drive API をそれぞれ検索して有効にします。前者はセルのデータの読み取りに、後者はスプレッドシートの検出とファイルのメタデータの読み取りに使用します。
- サービスアカウントを作成します。IAMと管理 > サービス アカウント に移動し、Google Sheetsの読み取り専用のサービスアカウントを作成します。この接続では、サービスアカウントにプロジェクトのオーナー、編集者、Drive管理者などの広範なロールを付与する必要はありません。
- JSONキーを作成します。そのサービスアカウントの キー タブを開き、鍵を追加 > 新しい鍵を作成 > JSON を選択して、キーファイルをダウンロードし、安全に保管します。
- 対象のスプレッドシートを共有します。読み取るGoogle スプレッドシートを開き、右上の 共有 をクリックして、JSONファイル内の
client_emailを入力します。権限として 閲覧者 を選択し、共有を完了します。
サービスアカウントに、対象のGoogle スプレッドシートの閲覧権限を付与します。
読み取るスプレッドシートはすべて、サービスアカウントと直接共有するか、親フォルダーからアクセス権限を継承させる必要があります。APIを有効にしただけでは、スプレッドシートへのアクセス権限は自動的に付与されません。
Service Account JSONには機密性の高い認証情報が含まれます。キーをコードリポジトリ、ログ、グループチャット、チケットに登録しないでください。キーが漏洩した場合は、Google Cloudですぐに無効化または削除し、再生成してください。
キーを作成できない場合は、Google Cloudの管理者に連絡して組織のポリシー iam.disableServiceAccountKeyCreation を確認してください。iam.gserviceaccount.com のアドレスとスプレッドシートを共有できない場合は、Google Workspaceの管理者に連絡してDriveの外部共有ポリシーを確認してください。
Google Sheetsデータソースの作成
- データ開発プラットフォーム > バッチ統合 > データソース に移動し、新規データソース をクリックします。
- GoogleSheets を選択し、データソース名と備考を入力します。
- 環境を区別しない または 独立環境構成 を選択します。独立環境構成では、開発環境と本番環境の設定をそれぞれ完了する必要があります。
- Service Account JSON に、Google Cloudからダウンロードした元の
.jsonファイルをアップロードします。 - 接続性テスト をクリックします。接続可能 と表示されたら、完了 をクリックします。
Service Account JSONをアップロードし、接続性テストの結果が「接続可能」であることを確認します。
| 構成項目 | 説明 |
|---|---|
| Service Account JSON | Google Cloudからダウンロードした元のJSONキーファイルをアップロードします。プラットフォームが自動で検証します。 |
| 環境を区別しない | 開発環境と本番環境で現在のキーを共用 |
| 独立環境構成 | 開発環境と本番環境のキーをそれぞれ管理。両方の環境で個別に接続性テストに合格する必要あり |
保存済みのデータソースを編集する場合、画面にはマスクされたサービスアカウントのメールアドレスのみが表示され、秘密鍵は表示されません。キーを変更する場合は、新しいJSONファイルをアップロードし直して、再度接続をテストしてください。
オフライン同期プランの作成
- データ開発プラットフォーム > バッチ統合 > オフライン同期 に移動し、統合プランの作成 をクリックします。
- データソース で GoogleSheets と作成済みのデータソースを選択します。
- 読み取る Google スプレッドシート と、その中の シート を順に選択します。リストには、現在のサービスアカウントがアクセス権限を持つものだけが表示されます。
- 列範囲 を入力します。範囲には列の文字のみを含めます(例:
A:F、F:F、AA:ZZZ)。システムが自動で大文字に変換します。 - ファイル読み取りルール を展開し、スプレッドシートの内容に応じて ヘッダーを飛ばす を設定します。オンにすると2行目から、オフにすると1行目から読み取ります。
- ソースデータのプレビューをクリックし、選択した範囲、行数、データの内容が想定どおりであることを確認します。
スプレッドシート、シート、列範囲を選択したら、ソースデータのプレビューで読み取り結果を確認します。
列範囲には行番号やシート名を含めません。A1:F、A:F50000、工作表1!A:F、および開始列が終了列より後にある F:A はいずれも無効な形式です。
独立環境構成では、本番実行時に本番環境のサービスアカウントを使って同名のGoogle スプレッドシートとシートを検索します。名前が重複している、存在しない、または権限が付与されていない場合、本番タスクが失敗することがあります。
フィールド照合と同期の検証
データソースの設定が完了したら、プラットフォーム内蔵のデータウェアハウスで目標テーブルを選択し、フィールド照合を作成します。Google Sheetsのフィールドは列の文字に基づいて生成されます。たとえばA列は col_A、B列は col_B に対応し、タイプはすべて文字列です。
- データの流向 で目標テーブルを選択または作成し、業務上の必要に応じて書き込み方法を設定します。
- フィールド照合 でソースフィールドを目標フィールドに照合します。目標フィールドのタイプが一致しない場合は、先に必要なタイプ変換を行います。
- プラン名、責任者、備考を入力して保存します。
- 手動実行 をクリックし、実行記録でタスクが成功したことを確認してから、目標テーブルで行数、フィールドの順序、データの内容を確認します。
| 現象 | 確認事項 |
|---|---|
| 接続性テストに失敗する | アップロードしたのが完全なサービスアカウントJSONであること、キーが無効化・削除されていないこと、Google Sheets APIとGoogle Drive APIが有効になっていることを確認 |
| 対象のGoogle スプレッドシートが見つからない | スプレッドシートがJSON内の client_email と共有されており、権限が「閲覧者」以上であることを確認 |
| シートが見つからない | シートが削除されていないことを確認。独立環境では、本番アカウントが同名のスプレッドシートとシートにアクセスできるかを確認 |
| 列範囲のエラー | 列の文字のみを入力し、開始列が終了列より後になっていないことを確認。範囲がシートの読み取り可能な範囲を超えていないことを確認 |
| 429またはリクエスト制限のメッセージ | しばらくしてから再試行し、Google APIの割り当てとタスクの同時実行数を確認 |
タスクフローへのマウント
手動での検証に成功したら、オフライン同期プランをタスクフローにマウントして、スケジュール周期に従って自動実行できます。
- 保存済みのオフライン同期プランを開き、ジョブフローにマウントする をクリックします。
- 対象のタスクフローを選択します。
- ノード名を入力し、実行モードを選択して、必要に応じて責任者と備考を設定します。ノードタイプと統合プランは自動的に入力されます。
- ノードを作成し、マウントします をクリックします。マウントに成功したら、タスクフローに進む をクリックして、ノードの位置と上流・下流の依存関係を確認できます。
- タスクフローを保存してリリースします。本番のスケジュールでは、本番環境のデータソース設定が使用されます。
同期プランやデータソースを変更する場合は、まず既存のタスクフローの依存関係を評価し、変更後にもう一度検証を実行してください。

