REST Resource: iceberg.v1.restcatalog.extensions.projects.catalogs

資源:IcebergCatalog

Iceberg REST 目錄資訊。

JSON 表示法
{
  "name": string,
  "credential-mode": enum (CredentialMode),
  "biglake-service-account": string,
  "biglake-service-account-id": string,
  "catalog-type": enum (CatalogType),
  "default-location": string,
  "storage-regions": [
    string
  ],
  "create-time": string,
  "update-time": string,
  "replicas": [
    {
      object (Replica)
    }
  ],
  "description": string,
  "restricted-locations-config": {
    object (RestrictedLocationsConfig)
  },
  "federated-catalog-options": {
    object (FederatedCatalogOptions)
  }
}
欄位
name

string

ID。目錄名稱,projects/my-project/catalogs/my-catalog。這個欄位無法變更。如果是目錄建立作業,系統會忽略這個欄位。

credential-mode

enum (CredentialMode)

選用。目錄的憑證模式。

biglake-service-account

string

僅供輸出。用於憑證販售的服務帳戶,僅供輸出。如果目錄從未啟用憑證販售功能,這個欄位可能為空白。對於聯合目錄,系統一律會佈建服務帳戶,並使用 Secret Manager 密鑰或身分聯合存取權,存取遠端 Iceberg REST 目錄。

biglake-service-account-id

string

僅供輸出。服務帳戶的專屬 ID。這適用於同盟情境。

catalog-type

enum (CatalogType)

這是必要旗標,目錄類型。目錄建立作業需要這項資訊。目錄類型不可變動,但可從 CATALOG_TYPE_GCS_BUCKET 轉換為 CATALOG_TYPE_BIGLAKE。

default-location

string

選用。目錄的預設儲存位置,例如 gs://my-bucket。如果是 Google Cloud Storage 值區目錄,則僅為輸出內容。

如果是 BigLake 目錄,則必須提供這個欄位,並指向 Google Cloud Storage bucket 或該 bucket 內的路徑。如果未在命名空間或資料表層級指定位置,這個路徑會做為建構資料表資料和中繼資料目錄完整路徑的基礎目錄。完整路徑是將命名空間和資料表 ID 附加至預設位置而形成。

storage-regions[]

string

僅供輸出。預設位置 bucket 的 Google Cloud 區域,例如 us-central1nam4us。除了設定為使用自訂雙區域值區的目錄外,這項屬性會包含所有位置的值。如果是自訂雙區域值區,則會包含值區的兩個區域。這個欄位的區域應位於目錄主要位置的管轄範圍內或附近。

create-time

string (Timestamp format)

僅供輸出。目錄的建立時間。

使用 RFC 3339,產生的輸出內容一律會經過 Z 正規化,並使用 0、3、6 或 9 個小數位數,也接受「Z」以外的偏移量。範例:"2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z""2014-10-02T15:01:23+05:30"

update-time

string (Timestamp format)

僅供輸出。上次更新目錄的時間。

使用 RFC 3339,產生的輸出內容一律會經過 Z 正規化,並使用 0、3、6 或 9 個小數位數,也接受「Z」以外的偏移量。範例:"2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z""2014-10-02T15:01:23+05:30"

replicas[]

object (Replica)

僅供輸出。目錄中繼資料的副本。

description

string

選用。使用者提供的目錄說明。說明必須是 UTF-8 字串,長度上限為 1024 個字元。

restricted-locations-config

object (RestrictedLocationsConfig)

選用。設定受限制的位置。這個欄位目前僅用於 BigLake 目錄。

如果未設定這個欄位,或 restrictedLocationsConfig.restricted_locations 為空白,系統會允許所有可存取的位置。如果 restrictedLocationsConfig.restricted_locations 不為空白,則只能使用 defaultLocationrestrictedLocationsConfig.restricted_locations 中的位置。

federated-catalog-options

object (FederatedCatalogOptions)

選用。聯合目錄的設定選項。

CredentialMode

目錄使用的憑證模式。

列舉
CREDENTIAL_MODE_UNSPECIFIED 預設值。這個值不會使用。
CREDENTIAL_MODE_END_USER 使用者憑證 (預設)。驗證使用者必須有權存取目錄資源和對應的 Google Cloud Storage 檔案。
CREDENTIAL_MODE_VENDED_CREDENTIALS

使用憑證臨時配發。驗證使用者必須有權存取目錄資源,系統會提供範圍縮減的憑證給呼叫端,用於存取 Google Cloud Storage 檔案。在此模式下,所有表格作業都需要包含 vended-credentials 值的 X-Iceberg-Access-Delegation 標頭。系統會產生服務帳戶,目錄管理員必須授予該服務帳戶適當的權限。

詳情請參閱:https://github.com/apache/iceberg/blob/931865ecaf40a827f9081dddb675bf1c95c05461/open-api/rest-catalog-open-api.yaml#L1854

CatalogType

判斷目錄類型。

列舉
CATALOG_TYPE_UNSPECIFIED 預設值。這個值不會使用。
CATALOG_TYPE_GCS_BUCKET Google Cloud Storage bucket 目錄類型。
CATALOG_TYPE_BIGLAKE BigLake 目錄類型。
CATALOG_TYPE_FEDERATED 聯合目錄類型。

備用資源

目錄副本。

JSON 表示法
{
  "region": string,
  "state": enum (State)
}
欄位
region

string

僅供輸出。副本的區域。例如「us-east1」

state

enum (State)

僅供輸出。副本的目前狀態。

狀態

如果目錄複製到多個區域,這個列舉會說明副本的目前狀態。

列舉
STATE_UNKNOWN 副本狀態不明。
STATE_PRIMARY 備用資源是可寫入的主要資源。
STATE_PRIMARY_IN_PROGRESS 備用資源最近已指派為主要資源,但並非所有命名空間都可寫入。
STATE_SECONDARY 副本是唯讀的次要副本。

RestrictedLocationsConfig

地點限制設定。

JSON 表示法
{
  "restricted-locations": [
    string
  ]
}
欄位
restricted-locations[]

string

選用。目錄中資源可使用的其他 Google Cloud Storage bucket 和位置 (例如 gs://my-other-bucket/...)。這個欄位目前僅用於 BigLake 目錄。

如果 restrictedLocations 為空白,且已啟用無限制的目錄建立功能,系統會允許所有可存取的位置。否則,只能使用 defaultLocation 和這份清單中的位置。

FederatedCatalogOptions

聯合目錄的設定選項。

JSON 表示法
{
  "refresh-options": {
    object (RefreshOptions)
  },
  "refresh-status": {
    object (RefreshStatus)
  },

  // Union field remote_catalog_info can be only one of the following:
  "unity-catalog-info": {
    object (UnityCatalogInfo)
  },
  "glue-catalog-info": {
    object (GlueCatalogInfo)
  },
  "snowflake-catalog-info": {
    object (SnowflakeCatalogInfo)
  }
  // End of list of possible types for union field remote_catalog_info.
  "secret-name": string,
  "service-directory-name": string
}
欄位
refresh-options

object (RefreshOptions)

選用。重新整理設定。

refresh-status

object (RefreshStatus)

僅供輸出。背景重新整理作業的狀態。

聯集欄位 remote_catalog_info。遠端 Iceberg REST 目錄專屬資訊。remote_catalog_info 只能是下列其中一個設定:
unity-catalog-info

object (UnityCatalogInfo)

選用。Databricks Unity Catalog 的專屬資訊。

glue-catalog-info

object (GlueCatalogInfo)

選用。AWS Glue Catalog 專屬資訊。

snowflake-catalog-info

object (SnowflakeCatalogInfo)

選用。Snowflake 目錄專屬資訊。

secret-name

string

選用。Secret Manager 中的密鑰資源名稱,格式為 projects/{projectId}/locations/{location}/secrets/{secret_id}projects/{projectId}/locations/{location}/secrets/{secret_id}/versions/{version_id}

專案 ID 必須與目錄的專案相符,位置也必須與目錄的位置相符。如未指定版本,則會使用最新版本。

如果已設定 google.cloud.biglake.v1main.IcebergCatalog.FederatedCatalogOptions.UnityCatalogInfo.service_principal_application_idgoogle.cloud.biglake.v1main.IcebergCatalog.FederatedCatalogOptions.SnowflakeCatalogInfo.snowflake_role,系統不會使用這個欄位。

service-directory-name

string

選用。Service Directory 資源名稱,用於透過 Cross-Cloud Interconnect 的私人網路連線轉送流量,格式為 projects/{projectId}/locations/{locationId}/namespaces/{namespace_id}/services/{serviceId}

UnityCatalogInfo

Unity Catalog 資訊。

JSON 表示法
{
  "instance-name": string,
  "catalog-name": string,
  "service-principal-application-id": string
}
欄位
instance-name

string

這是必要旗標,登入 Databricks 部署作業時,網址的第一部分就是執行個體名稱。舉例來說,如果 Google Cloud 中的 Databricks 工作區網址為 https://1.1.Google Cloud.databricks.com,執行個體名稱就是 1.1.Google Cloud.databricks.com。

catalog-name

string

這是必要旗標,Unity Catalog 中的目錄名稱。

service-principal-application-id

string

選用。在 OIDC 驗證流程中,用於存取 Unity Catalog 的 Databricks 服務主體應用程式 ID。

GlueCatalogInfo

AWS Glue Catalog 資訊。我們支援區域 AWS Glue 預設帳戶目錄和 S3 表格 Bucket。

JSON 表示法
{
  "warehouse": string,
  "aws-region": string,
  "aws-role-arn": string
}
欄位
warehouse

string

這是必要旗標,不可變動。要連線至區域 AWS Glue Iceberg REST 目錄的倉儲。如要取得最高層級的存取權,請使用 AWS 帳戶 ID (例如 111222333444)。如果是 S3 資料表 bucket,倉庫的格式為:111222333444:s3tablescatalog/。存取目錄的網址為 https://glue.{awsRegion}.amazonaws.com/iceberg/v1?warehouse={warehouse}。不得為空值,且不可變動。

aws-region

string

這是必要旗標,不可變動。要連線的 Glue 目錄 AWS 區域。該區域應與聯邦目錄位於相同地理區域和管轄範圍。不得為空值,且不可變動。

aws-role-arn

string

這是必要旗標,聯合目錄將承擔的 Glue 目錄 AWS 角色 ARN,用來存取目錄。不得為空白。可以更新。

SnowflakeCatalogInfo

Snowflake 目錄資訊。

JSON 表示法
{
  "account-identifier": string,
  "warehouse": string,
  "snowflake-role": string
}
欄位
account-identifier

string

這是必要旗標,Snowflake 中的帳戶 ID (請參閱:https://docs.snowflake.com/en/user-guide/admin-account-identifier)。這是登入 Snowflake 部署網址的前置字串。例如:https://.snowflakecomputing.com

warehouse

string

這是必要旗標,要連線至 Snowflake REST 目錄的倉儲。https://.snowflakecomputing.com/polaris/api/catalog/v1/config?warehouse=.

這是包含要聯合的 Iceberg 中繼資料的 Snowflake 資料庫名稱。

不得為空白。

snowflake-role

string

選用。要在 Iceberg REST 目錄工作階段的 OAuth 權杖範圍內要求的特定 Snowflake 角色名稱 (透過 session:role:$ROLE)。這個角色會授予 Google Cloud BigLake 服務帳戶必要權限,以便與 Iceberg 目錄、命名空間和資料表互動。

注意:這裡提供的角色須為 DEFAULT_ROLE,或是已授予對應至 BigLake 服務帳戶的 Snowflake 服務使用者。

RefreshOptions

重新整理設定。

JSON 表示法
{
  "refresh-schedule": {
    object (RefreshSchedule)
  },
  "refresh-scope": {
    object (RefreshScope)
  }
}
欄位
refresh-schedule

object (RefreshSchedule)

選用。排程會定義是否應排定中繼資料重新整理作業,以及排定的時間。

refresh-scope

object (RefreshScope)

選用。重新整理範圍設定。

RefreshSchedule

排程會定義是否應排定中繼資料重新整理作業,以及排定的時間。

JSON 表示法
{
  "refresh-interval": string
}
欄位
refresh-interval

string (Duration format)

選用。從遠端目錄重新整理中繼資料的時間間隔。如果未設定或值 <= 0,系統會停用背景重新整理功能。如果更新現有聯盟目錄的此欄位,必須先完成先前的背景重新整理,新的重新整理間隔才會生效。

時間長度以秒為單位,最多可有 9 個小數位數,並應以「s」結尾,例如:"3.5s"

RefreshScope

範圍會定義要重新整理的命名空間子集。

JSON 表示法
{
  "namespace-filters": [
    string
  ]
}
欄位
namespace-filters[]

string

選用。篩選器,用於決定要將哪些命名空間納入重新整理程序。- 空白清單表示包含所有命名空間。-「[namespaces]」表示納入指定的命名空間。['ns1', 'ns2']:只探索「ns1」和「ns2」命名空間。命名空間篩選器數量上限為 32 個。

RefreshStatus

遠端目錄背景重新整理狀態。

JSON 表示法
{
  "start-time": string,
  "end-time": string,
  "status": {
    object (Status)
  }
}
欄位
start-time

string (Timestamp format)

僅供輸出。目錄重新整理作業的開始時間,包括正在進行的重新整理作業。

使用 RFC 3339,產生的輸出內容一律會經過 Z 正規化,並使用 0、3、6 或 9 個小數位數,也接受「Z」以外的偏移量。範例:"2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z""2014-10-02T15:01:23+05:30"

end-time

string (Timestamp format)

僅供輸出。目錄重新整理作業結束後,請取消設定進行中的重新整理作業。

使用 RFC 3339,產生的輸出內容一律會經過 Z 正規化,並使用 0、3、6 或 9 個小數位數,也接受「Z」以外的偏移量。範例:"2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z""2014-10-02T15:01:23+05:30"

status

object (Status)

僅供輸出。上次背景重新整理作業的狀態,如果重新整理作業正在進行中,則不會設定這個屬性。

方法

create

建立 Iceberg REST 目錄。

delete

刪除 Iceberg REST 目錄。

failover

將目錄容錯移轉至新的主要副本區域。

get

傳回 Iceberg REST 目錄設定選項。

list

列出 Iceberg REST 目錄。

patch

更新 Iceberg REST 目錄設定選項。