使用 BigQuery Studio Git 存放區管理程式碼
您可以使用 BigQuery Studio Git 存放區管理 SQL 指令碼和筆記本。這項功能直接將版本管控整合到 BigQuery Studio 檔案瀏覽器中,讓您不必離開 Cloud de Confiance 控制台,就能複製存放區、管理分支版本及執行 Git 作業。
與傳統存放區相比,BigQuery Studio Git 存放區提供更簡化的資料夾式體驗。BigQuery Studio Git 存放區會直接顯示在左窗格中,位於使用者根資料夾下方。
使用 BigQuery Studio Git 存放區時,您可以像處理標準檔案和目錄一樣與程式碼資產互動,同時維持與遠端 Git 存放區的連線。
限制
- BigQuery Studio Git 存放區僅限使用者根資料夾環境使用,且僅供私人用途。請勿與其他使用者共用這些存放區。雖然這些存放區會顯示在使用者根資料夾中 (這是專案中資產的虛擬表示法),但實際上是在專案層級建立。
- 不支援透過 Git Proxy 使用 Developer Connect 帳戶連接器。
- 掛接位置內的檔案系統作業會耗用 Dataform 配額。
- 如果存放區包含大量檔案、檔案很大、分支眾多,或是提交記錄複雜且深入,複製時間就會比較長。複製作業可能會超過作業逾時時間,導致無法順利建立存放區。
- 儲存在 BigQuery Studio Git 存放區掛接點的筆記本檔案大小不得超過 30 MB。如果檔案超過 30 MB,請將檔案儲存至 Colab 執行階段的本機儲存空間,而非已掛接的位置。
如果您在掛接點外部變更 Git 存放區 (例如在左側窗格中編輯或重新命名檔案),這些變更最多可能需要 60 秒,才會顯示在筆記本執行階段的掛接點中。如要調整這段時間,請將
CACHE_TTL_SECONDS參數傳遞至建構函式:FuseWidget(CACHE_TTL_SECONDS=NUMBER)將
NUMBER替換為快取保持有效的秒數。減少這個值會增加同步頻率,並更快耗用 Dataform 配額。
事前準備
在 Cloud de Confiance 專案中啟用 Developer Connect API。
必要的角色
如要取得透過 BigQuery Studio Git 存放區管理程式碼所需的權限,請要求系統管理員授予您專案的「Developer Connect OAuth 使用者」 (roles/developerconnect.oauthUser) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
這個預先定義的角色具備管理 BigQuery Studio Git 存放區中程式碼所需的權限。如要查看確切的必要權限,請展開「Required permissions」(必要權限) 部分:
所需權限
如要透過 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 Studio Git 存放區
建立 Git 存放區時,請考量下列規定:
- 如果遠端存放區未對公開網際網路開放 (例如位於防火牆後方),將遠端 Git 存放區連線至 Git 存放區可能會失敗。在這種情況下,請將必要的 Dataform 輸出 IP 位址範圍新增至防火牆規則,以啟用與受保護遠端存放區的連線。
- 如要建立連線至遠端 Git 存放區的 Git 存放區,但該遠端 Git 存放區不在
dataform.restrictGitRemotes組織政策的允許清單中,請先將遠端 Git 存放區新增至政策的allowedValues清單,然後再建立 Git 存放區。詳情請參閱「限制遠端存放區」。
如要建立 Git 存放區,請按照下列步驟操作:
前往 Cloud de Confiance 控制台的「BigQuery」頁面。
在左側窗格中,按一下「檔案」,開啟檔案瀏覽器。
如果沒有看到左側窗格,請按一下 「Expand left pane」(展開左側窗格),開啟窗格。
在使用者根節點旁邊,依序點選 「View actions」(查看動作) >「Create」(建立) >「Git repository」(Git 存放區)。
輸入遠端 Git 存放區的網址。
BigQuery Studio 會偵測是否有現有的Developer Connect 帳戶連接器。您可以採取下列做法︰
- 如果找到帳戶連接器,系統會預先填入 Git 存放區的顯示名稱。您可以編輯這些值。
- 如果沒有帳戶連接器,請按一下「建立帳戶連接器」建立新的帳戶連接器。
- 如不想使用 Developer Connect 帳戶連接器,請按一下「使用其他連線類型」,透過 HTTPS 或 SSH 連線。
按一下「連線」。
編輯檔案
如要編輯檔案,請點選檔案節點 (例如 SQL 指令碼或筆記本),在新的編輯器分頁中開啟檔案。
系統會自動儲存您所做的任何變更。
管理檔案
您可以使用與每個項目相關聯的動作選單,執行標準管理工作。如要存取這些選項,請按一下任何目錄或檔案旁的「開啟動作」。
在目錄層級,您可以執行下列工作:
- 在存放區中建立:建立新的程式碼資產,包括 SQL 查詢、筆記本、資料畫布、資料準備、檔案或子目錄。
- 上傳至存放區:將本機電腦中的現有檔案匯入所選目錄。
- 重新命名:變更目錄名稱。
- 移動:重新放置目錄。您只能將目錄移至同一個 Git 存放區內的其他位置。詳情請參閱「移動或複製檔案和目錄」。
- 刪除:從本機工作區永久移除目錄和所有內容。
在檔案層級,您可以執行下列工作:
- 「開啟」或「在...中開啟」:在預設編輯器或特定應用程式 (例如特定筆記本環境) 中查看檔案。
- 重新命名:變更檔案名稱。
- 複製:建立檔案副本。你只能將檔案複製到同一個 Git 存放區內的目錄。
- 移動:將檔案移至同一個 Git 存放區內的其他目錄。 詳情請參閱「移動或複製檔案和目錄」。
- 下載:將檔案副本儲存到本機。
- 刪除:從工作區中移除檔案。
移動或複製檔案和目錄
您可以移動或複製檔案和目錄,但必須保留在同一個 Git 存放區中。
前往 Cloud de Confiance 控制台的「BigQuery」頁面。
在左側窗格中,按一下「檔案」,開啟檔案瀏覽器。
找出要移動或複製的檔案或目錄。
依序點按 「開啟動作」「移動」或「複製」。
在隨即顯示的對話方塊中,選取相同 Git 存放區中的目標目錄。
按一下「移動」或「複製」。
修訂並推送變更
如要將本機編輯內容與遠端存放區同步處理,請按照下列步驟操作:
前往 Cloud de Confiance 控制台的「BigQuery」頁面。
在左側窗格中,按一下「存放區」 。
選用:將游標懸停在已修改的檔案上,然後按一下「查看差異比較」,即可逐行比較本機版本和上次修訂的版本。
在「提交訊息」欄位中,輸入變更說明。
按一下「修訂版本」。變更會儲存到本機分支版本記錄中。
按一下「推送至遠端分支版本」。變更會同步處理至遠端存放區。
查看新的分支版本
您可以管理本機分支,並根據現有的本機或遠端追蹤分支建立新的本機分支。
在「Repository」(存放區) 分頁的「Branches」(分支版本) 部分,您可以看到已簽出的本機分支版本。「CURRENT」標籤表示有效的分支,「DEFAULT」標籤則表示存放區的預設分支。
如要查看新分支版本,請按照下列步驟操作:
前往 Cloud de Confiance 控制台的「BigQuery」頁面。
在左側窗格中,按一下「存放區」 。
展開「分店」部分。
按一下分支旁的「開啟動作」,然後點選「簽出新分支」。
在「來源分支版本」選單中,選取要據以建立新分支版本的分支版本,例如
origin/main。在「Branch name」(分支名稱) 欄位中,輸入新分支的名稱。
按一下「結帳」。BigQuery Studio 會先簽出來源分支。如果提供的分支名稱表示新分支,系統會根據該來源建立新分支。新分支版本會成為有效分支版本,而 Git 存放區的內容會自動更新,反映已簽出分支版本的狀態。
存取 Git 存放區掛接中的筆記本檔案
從 BigQuery Studio Git 存放區存取筆記本時,您可以將主機 Git 存放區掛接到筆記本的執行階段。掛接是一種連線,可讓遠端 Git 存放區顯示為筆記本執行階段的本機存放區。這樣一來,筆記本就能直接存取、讀取及寫入同一存放區中的其他檔案和查詢指令碼。
掛接 Git 存放區
如要掛接 Git 存放區,請在筆記本中執行下列 Python 程式碼:
from google_dataform_fuse_widget import FuseWidget
FuseWidget()
筆記本連線至掛接點後,會發生下列變化:
- 筆記本工作階段的目前工作目錄會更新,以反映 Git 存放區中的相對路徑。這可確保系統自動根據路徑存取檔案。
- 筆記本執行階段的 Git 存放區路徑會新增至 Python 系統路徑,因此您可以使用標準 Python 匯入陳述式,直接將查詢指令碼和檔案從 Git 存放區載入筆記本。
管理掛接和連線
使用下列控制選項管理工作區:
- 掛接工作區:啟動 Git 存放區的掛接程序。掛接是共用資源,因此如果同一個 Colab 執行階段的多個筆記本使用相同的 Git 存放區,就會使用相同的掛接。
- 卸載工作區:停止 Git 存放區的掛接程序。 卸載工作區後,該 Colab 執行階段中所有使用該工作區的筆記本都無法再存取。
- 連結工作區:開始連線至目前筆記本工作階段的有效掛接點。連線後,筆記本的工作目錄和系統路徑會更新,並納入 Git 存放區,方便您存取及匯入檔案。
- 中斷工作區連線:結束目前筆記本工作階段的掛接連線,並重設為預設狀態。中斷連線不會影響其他有效筆記本工作階段的掛接連線狀態。如要結束工作區連線,建議使用「中斷工作區連線」按鈕。
- 修復:如果掛接點或連線無法使用,系統會將其還原為正常狀態。
初始化掛接點後,請參閱「狀態」列,瞭解掛接點的即時健康狀態和有效路徑。可能的健康狀態包括「已連線」、「已掛接」、「已停止」和「健康狀態不良」。
後續步驟
- 瞭解如何建立筆記本。
- 瞭解如何建立已儲存的查詢。
- 瞭解如何建立及管理存放區。
- 瞭解如何使用資料夾整理程式碼資產。