BigQuery Studio Git リポジトリでコードを管理する

BigQuery Studio Git リポジトリを使用して、SQL スクリプトとノートブックを管理できます。この機能により、バージョン管理が BigQuery Studio ファイル ブラウザに直接統合されるため、リポジトリのクローン作成、 ブランチの管理、Git オペレーションの実行を Google Cloud コンソールを離れることなく行うことができます。

BigQuery Studio Git リポジトリは、従来のリポジトリと比較して、フォルダベースの合理化された エクスペリエンスを提供します BigQuery Studio Git リポジトリは、左側のペインのユーザー ルートフォルダに直接表示されます。

BigQuery Studio Git リポジトリを使用すると、リモート Git リポジトリへの接続を維持しながら、標準のファイルやディレクトリと同じようにコードアセットを操作できます。

制限事項

  • BigQuery Studio Git リポジトリは、ユーザー ルートフォルダのコンテキストに制限され、プライベートでの使用を目的としています。これらのリポジトリを他のユーザーと共有しないでください。これらのリポジトリは、プロジェクト内のアセットの仮想表現であるユーザー ルートフォルダに表示されますが、技術的にはプロジェクト レベルで作成されます。
  • Git プロキシで Developer Connect アカウント コネクタを使用することはサポートされていません。
  • マウント ロケーション内のファイル システム オペレーションは、Dataform の割り当てを消費します。
  • ファイル数が多いリポジトリ、ファイルサイズが大きいリポジトリ、ブランチが多いリポジトリ、commit 履歴が複雑なリポジトリは、クローン作成に時間がかかります。クローン作成オペレーションがオペレーション タイムアウトを超える可能性があり、リポジトリを正常に作成できないことがあります。commit 履歴が深い リポジトリのクローン作成時間を短縮するには、シャロー クローンを作成します。 必要に応じて、後で commit を取得できます。
  • BigQuery Studio Git リポジトリ マウントに保存できるノートブック ファイルのサイズは 30 MB を超えることはできません。ファイルが 30 MB を超える場合は、マウントされたロケーションの外にある Colab ランタイムのローカル ストレージに保存してください。
  • マウントの外で Git リポジトリに変更を加えた場合(たとえば、左側のペインでファイルを編集または名前変更した場合)、ノートブックのランタイムのマウント内に変更が表示されるまでに最大 60 秒かかることがあります。 この期間は、コンストラクタに CACHE_TTL_SECONDS パラメータを渡すことで調整できます。

      FuseWidget(CACHE_TTL_SECONDS=NUMBER)
    

    NUMBER は、キャッシュが有効な状態を維持する秒数に置き換えます。この値を小さくすると、同期の頻度 が増え、Dataform の割り当てが早く消費されます。

始める前に

プロジェクトで Developer Connect API を有効にします。 Google Cloud

API を有効にする

必要なロール

BigQuery Studio Git リポジトリでコードを管理するために必要な権限を取得するには、プロジェクトに対するDeveloper Connect OAuth ユーザー roles/developerconnect.oauthUser)IAM ロールを付与するように管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織に対するアクセス権の管理をご覧ください。

この事前定義ロールには BigQuery Studio Git リポジトリでコードを管理するために必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。

必要な権限

BigQuery Studio Git リポジトリでコードを管理するには、次の権限が必要です。

  • resourcemanager.projects.get
  • resourcemanager.projects.list
  • developerconnect.operations.list
  • developerconnect.operations.get
  • developerconnect.locations.list
  • developerconnect.locations.get
  • developerconnect.users.startOAuth
  • developerconnect.users.finishOAuth
  • developerconnect.users.fetchAccessToken
  • developerconnect.users.getSelf
  • developerconnect.users.deleteSelf
  • developerconnect.accountConnectors.get
  • developerconnect.accountConnectors.list
  • developerconnect.accountConnectors.gitProxyUse
  • developerconnect.accountConnectors.httpProxyUse
  • developerconnect.accountConnectors.gitProxyRead
  • developerconnect.accountConnectors.gitProxyWrite
  • developerconnect.accountConnectors.httpProxyRead
  • developerconnect.accountConnectors.httpProxyWrite
  • developerconnect.accountConnectors.fetchUserRepositories

カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。

リポジトリのセキュリティに関する考慮事項

BigQuery のコードアセットは Dataform を基盤としているため、これらのアセットにアクセスできるユーザーに対しては、次のセキュリティ上の影響を考慮する必要があります。

  • コードアセットの可視性は、プロジェクト レベルの Dataform 権限によって管理されます。dataform.repositories.list 権限(BigQuery ジョブ ユーザーBigQuery Studio ユーザーBigQuery ユーザー などの標準の BigQuery ロールに含まれています)を持つユーザーは、これらのアセットを作成したかどうか、またはこれらのアセットが共有されたかどうかに関係なく、 Google Cloud プロジェクトの [エクスプローラ] パネル内のすべてのコードアセットを表示できます。可視性を制限するには、カスタムロールを作成して、dataform.repositories.list権限を除外します。
  • Dataform サービス エージェントと共有されるシークレットは、これらのアセットを編集できるユーザーがアクセスできる可能性があります。認証情報を保護するには、信頼できるユーザーへの作成アクセスと編集アクセスを制限し、Dataform サービス エージェントがアクセスできるシークレットを制限します。詳細については、パッケージのインストール時のシークレット アクセスをご覧ください。

詳細については、Dataform 権限のセキュリティに関する考慮事項をご覧ください。

BigQuery Studio Git リポジトリを作成する

Git リポジトリを作成する際は、次の要件を考慮してください。

  • リモート Git リポジトリが公共のインターネットに開かれていない場合(例: ファイアウォールの内側にある場合)、リモート Git リポジトリを Git リポジトリに接続できないことがあります。この場合は、必要な Dataform 下り(外向き)IP アドレス範囲 をファイアウォール ルールに追加して、保護されたリモート リポジトリへの接続を有効にします。
  • dataform.restrictGitRemotes 組織のポリシーで許可リストに登録されていないリモート Git リポジトリに接続する Git リポジトリを作成するには、まずリモート Git リポジトリをポリシーの allowedValues リストに追加してから、Git リポジトリを作成します。詳細については、 リモート リポジトリを制限するをご覧ください。

Git リポジトリを作成する手順は次のとおりです。

  1. コンソール Google Cloud で、[BigQuery] ページに移動します。

    BigQuery に移動

  2. 左側のペインで、 [Files] をクリックしてファイル ブラウザを開きます。

    左側のペインが表示されていない場合は、 [左ペインを開く] をクリックしてペインを開きます。

  3. ユーザー ルートノードの横にある [アクションを表示] > [作成] > [Git リポジトリ] をクリックします。

  4. リモート Git リポジトリの URL を入力します。

  5. BigQuery Studio は、既存の Developer Connect アカウント コネクタ が使用可能かどうかを検出します。お手数ですが以下のどちらかの方法でご対応ください。

  6. 省略可: commit 履歴が制限されたシャロー クローン リポジトリを作成するには、[詳細オプション] をクリックし、[シャロー クローン] チェックボックスをオンにします。

    1. [Depth] フィールドに、制限された commit 履歴で取得する commit の数を入力します。
  7. [接続] をクリックします。

ファイルの編集

ファイルを編集するには、ファイルノード(SQL スクリプトやノートブックなど)をクリックして、新しいエディタタブでファイルを開きます。

加えた変更は自動的に保存されます。

ファイルの管理

各項目に関連付けられたアクション メニューを使用して、標準的な管理タスクを実行できます。これらのオプションにアクセスするには、ディレクトリまたはファイルの横にある [**アクションを開く**] をクリックします。

ディレクトリ レベルでは、次のタスクを実行できます。

  • リポジトリに作成: SQL クエリ、 ノートブック、データ キャンバス、データ準備、ファイル、サブディレクトリなどの新しいコードアセットを作成します。
  • リポジトリにアップロード: ローカルマシンから 選択したディレクトリに既存のファイルをインポートします。
  • 名前を変更: ディレクトリの名前を変更します。
  • 移動: ディレクトリを移動します。ディレクトリは、同じ Git リポジトリ内の別の場所にのみ移動できます。詳細については、 ファイルとディレクトリを移動またはコピーするをご覧ください。
  • 削除: ディレクトリとそのすべてのコンテンツを ローカル ワークスペースから完全に削除します。

ファイル レベルでは、次のタスクを実行できます。

  • [開く] または [開く] : デフォルトのエディタまたは 特定のアプリケーション(特定のノートブック環境など)でファイルを表示します。
  • 名前を変更: ファイル名を変更します。
  • コピー: ファイルの複製を作成します。ファイルをコピーできるのは、同じ Git リポジトリ内のディレクトリのみです。
  • 移動: ファイルを同じ Git リポジトリ内の別のディレクトリに移動します。 詳細については、 ファイルとディレクトリを移動またはコピーするをご覧ください。
  • ダウンロード: ファイルのコピーをローカルマシンに保存します。
  • 削除: ワークスペースからファイルを削除します。

ファイルとディレクトリを移動またはコピーする

ファイルとディレクトリを移動またはコピーできますが、同じ Git リポジトリ内に残す必要があります。

  1. コンソールで、[BigQuery] ページに移動します。 Google Cloud

    BigQuery に移動

  2. 左側のペインで、 [Files] をクリックしてファイル ブラウザを開きます。