メインコンテンツまでスキップ

Google スプレッドシートでデータ更新をスケジュールする

このページでは、インポートしたデータを最新の状態に保つために、 Google Sheets 用 Databricks コネクタ で自動データ更新をスケジュールする方法について説明します。スケジュールされた更新では、保存されたクエリが定期的に実行され、対応するシートが更新されます。

要件​

Unity Catalog接続を作成する​

スケジュールされた更新には、以下のものが必要です。

  • Google スプレッドシートでメタストア管理者が作成した、 databricks_google_connectionという名前のUnity Catalog接続。
  • 接続に対するUSE CONNECTION権限は、スケジュールされた更新を作成または管理する必要があるユーザーに付与されます。
  1. Databricksメタストア管理者として、Googleスプレッドシートで、Databricks Connector for Google Sheetsサイドバーを開きます。
  2. 「保存済みインポート」 タブをクリックします。
  3. 右上のカレンダーをクリックします。
  4. [接続の設定] をクリックします。

Databricksで接続を共有する​

接続が確立されたら、スケジュールされた更新を作成または管理する必要のあるユーザーにUSE CONNECTION権限を付与します。メタストア管理者、または接続に対してMANAGE権限を持つユーザーは、この権限を付与できます。接続の管理の詳細については、 「レイクハウスフェデレーションの接続の管理」を参照してください。

スケジュールを作成する​

各インポートは 1 つのスケジュールにのみ割り当てることができます。既存のインポートに新しいスケジュールを作成するには:

  1. Google スプレッドシートの Databricks コネクタのサイドバーで、 「保存済みインポート」 タブをクリックします。

  2. カレンダーアイコンをクリックし、 [新しいスケジュール] をクリックします。

  3. スケジュールを作成するインポートを選択してください。

  4. スケジュールの名前を入力します。

  5. スケジュールの 頻度 を選択します:

    • 「毎時」 の場合は、更新を実行する分を選択してください。
    • 「毎日」 の場合は、更新を実行する時刻を選択します。
    • 毎週 の場合は、更新を実行する曜日と時刻を選択します。

    スケジュールではローカルタイムゾーンが使用されます。

  6. スケジュールされたクエリに使用するSQLウェアハウスを選択します。

  7. [スケジュールの作成] をクリックします。

実行履歴とスケジュールの詳細を表示する​

スケジュールされたすべての更新の実行履歴を確認するには、次の手順を実行します。

  1. Google スプレッドシートの Databricks コネクタのサイドバーで、 「保存済みインポート」 タブをクリックします。
  2. カレンダーアイコンをクリックし、 「実行履歴を表示」 をクリックします。
  3. 特定の実行をクリックして、スケジュールの詳細を表示します。

スケジュールされた更新の実行履歴と構成の詳細を表示するには、次の手順を実行します。

  1. 「実行履歴の表示」 ペインから、表示したいスケジュールの名前を選択します。 [最近の実行] の下に、各実行のステータスが表示されます。

  2. ステータス アイコンにカーソルを置くと、実行の 実行 ID 、 開始時刻 、および 実行ステータスが 表示されます。

    [最近の実行] の実行ステータス アイコンにカーソルを合わせると、個々の実行の詳細が表示されます

  3. 「設定を表示」 をクリックすると、選択したインポートとスケジュール設定を含むスケジュールの詳細が表示されます。

    • 他のユーザーが作成したスケジュールを表示している場合、表示される時間は作成者のローカルタイムゾーンの時間になります。

スケジュールされた更新を削除する​

スケジュールされた更新を削除するには、次の手順を実行します。

  1. Google スプレッドシートの Databricks コネクタのサイドバーで、 「保存済みインポート」 タブをクリックします。
  2. カレンダーアイコンをクリックし、 スケジュールの管理を クリックします。
  3. 削除したいスケジュールを選択してください。
  4. 「設定の表示」 をクリックし、次に 「削除」 をクリックします。

トラブルシューティング​

期限切れまたは取り消されたトークンのエラーについては、「Googleトークンの有効期限が切れたか、取り消されたため、スケジュールされた更新に失敗しました」を参照してください。

スケジュールされた更新に関するその他の問題については、Google Sheetsのスケジュールと、Databricksの対応する Unity Catalog 接続を削除し、スケジュールを再作成します。Unity Catalog接続の詳細については、「レイクハウスフェデレーションの接続の管理」を参照してください。

Googleトークンの有効期限が切れたか、取り消されたため、スケジュールされた更新に失敗しました​

スケジュールされた更新は、以下のようなエラーで失敗する可能性があります。

Text
BAD_REQUEST: The OAuth token exchange failed with HTTP status code 400 Bad Request. ... Map(error -> invalid_grant, error_description -> Token has been expired or revoked.)

コネクタのサイドバーのラン履歴には、次のように表示されます: Googleスプレッドシートの認証情報がないか期限切れのため、最後のランは失敗しました。「接続の設定」から接続を再認証してください。

このエラーは、スケジュールの所有者に対して保存されているGoogle認証が有効ではなくなったことを意味します。一般的な原因は次のとおりです。

  • ユーザーがGoogleアカウントからコネクタへのアクセスを削除しました。
  • Google ワークスペース 管理者のポリシーにより、トークンが取り消されたか、制限されました。
  • 認証は6か月間使用されていません。Googleドキュメントの更新トークンの有効期限を参照してください。

エラーを解決するには、スケジュールの所有者が Google スプレッドシートの認可を再設定します:

  1. Google スプレッドシートの Databricks コネクタのサイドバーで、 「保存済みインポート」 タブをクリックします。
  2. tabの上部で、更新アイコンの右側にあるスケジュールアクションアイコンをクリックします。次に、 接続のセットアップ をクリックします。
  3. [Googleスプレッドシートを認証] をクリックし、Googleサインインを完了します。

ダイアログに、Google スプレッドシートの認証がアクティブであることが表示されます。既存のスケジュールは、次のスケジュールされたランで再開されます。これらを再作成する必要はありません。

「 Googleスプレッドシートを承認する 」が表示されない場合は、メタストア管理者に依頼して、Catalog Explorerのdatabricks_google_connection接続ページでユーザー資格情報を取り消してください。次に、これらのステップを繰り返します。

制限事項​

  • スケジュールされた更新は編集できません。既存のスケジュールを表示または削除することのみ可能です。スケジュールを変更するには、スケジュールを削除して新しいスケジュールを作成します。
  • スケジュールで使用されているクエリを編集しても、スケジュールは自動的に変更内容を反映しません。更新されたクエリテキストを適用するには、スケジュールを削除して再作成してください。
  • ピボットテーブルでは、更新をスケジュールすることはできません。Google APIは生のクエリデータのみを更新するため、クエリ結果のスキーマが変更されてもピボット構成を変更することはできません。
  • 1つのスケジュールには、最大20件の輸入を含めることができます。
  • スケジュールされた更新で使用されるインポートのクエリテキストには、4,096文字の制限があります。