Lakehouse API

Lakehouse API(以前称为 BigLake API)可让您访问无服务器、全代管式且高度可用的 metastore,而 metastore 可为数据湖仓一体提供单一事实来源。它让多个引擎(包括 Apache Spark、Google Managed Spark、Apache Flink、Trino 和 BigQuery)能够共享关键开放格式(Apache Iceberg、Apache Hive)的表和元数据,并查询同一份数据。此外,通过 Lakehouse 运行时目录联合,您可以无缝整合湖仓一体生态系统,让 Google Cloud 上的 Iceberg 兼容引擎(BigQuery、Google Managed Spark)能够发现和分析 Snowflake、Databricks 和 AWS Glue 中的企业数据。

服务:biglake.googleapis.com

如要调用此服务,我们建议您使用 Google 提供的客户端库。如果您的应用需要使用您自己的库来调用此服务,则在发出 API 请求时应使用以下信息。

发现文档

发现文档是用于说明和使用 REST API 的机器可读规范。它用于构建客户端库、IDE 插件以及与 Google API 交互的其他工具。一项服务可能会提供多个发现文档。此服务提供了以下发现文档:

服务端点

服务端点是一个基础网址,指定了 API 服务的网络地址。一项服务可能有多个服务端点。此服务具有以下服务端点,下面的所有 URI 都与此服务端点相关:

  • https://biglake.googleapis.com

区域服务端点

区域服务端点是一个基础网址,指定了单个区域中 API 服务的网络地址。可在多个区域中使用的服务可能具有多个区域端点。选择一个位置,查看相应位置的此服务区域性服务端点。


  • https://biglake.googleapis.com
  • REST 资源:dataproductsharing.v1.projects.catalogs

    方法
    publishDataProduct POST /dataproductsharing/v1/{connectionCatalog=projects/*/catalogs/*}:publishDataProduct
    将 Knowledge Catalog 数据产品或 Iceberg 目录发布到 SAP BDC。
    unpublishDataProduct POST /dataproductsharing/v1/{connectionCatalog=projects/*/catalogs/*}:unpublishDataProduct
    从 SAP BDC 取消发布 Knowledge Catalog 数据产品或 Iceberg 目录共享。

    REST 资源:deltasharing.v1.projects.catalogs

    方法
    create POST /deltasharing/v1/{parent=projects/*}/catalogs
    创建新的 DeltaSharing 目录。
    delete DELETE /deltasharing/v1/{name=projects/*/catalogs/*}
    删除资源名称指定的现有 DeltaSharing 目录。
    get GET /deltasharing/v1/{name=projects/*/catalogs/*}
    获取由资源名称指定的目录。
    list GET /deltasharing/v1/{parent=projects/*}/catalogs
    列出指定项目中的所有 DeltaSharing 目录。
    patch PATCH /deltasharing/v1/{deltaSharingCatalog.name=projects/*/catalogs/*}
    更新现有 DeltaSharing 目录。

    REST 资源:deltasharing.v1.projects.catalogs.shares

    方法
    list GET /deltasharing/v1/{parent=projects/*/catalogs/*}/shares
    获取上游 Delta Sharing 源(例如 SAP BDC)中可用的 Delta Sharing 共享列表。

    REST 资源:deltasharing.v1.projects.catalogs.shares.schemas

    方法
    list GET /deltasharing/v1/{parent=projects/*/catalogs/*/shares/*}/schemas
    获取上游 SAP BDC 来源中可用的 Delta Sharing 架构列表。

    REST 资源:deltasharing.v1.projects.catalogs.shares.schemas.tables

    方法
    list GET /deltasharing/v1/{parent=projects/*/catalogs/*/shares/*/schemas/*}/tables
    获取上游 SAP BDC 来源中可用的 Delta Sharing 表的列表。

    REST 资源:hive.v1.projects.catalogs

    方法
    create POST /hive/v1/{parent=projects/*}/catalogs
    创建新的 Hive 目录。
    delete DELETE /hive/v1/{name=projects/*/catalogs/*}
    删除由目录 ID 指定的现有目录。
    failover POST /hive/v1/{name=projects/*/catalogs/*}:failover
    将目录故障切换到新的主副本区域。
    get GET /hive/v1/{name=projects/*/catalogs/*}
    获取由资源名称指定的目录。
    list GET /hive/v1/{parent=projects/*}/catalogs
    列出指定项目中的所有目录。
    patch PATCH /hive/v1/{hiveCatalog.name=projects/*/catalogs/*}
    更新现有目录。

    REST 资源:hive.v1.projects.catalogs.databases

    方法
    create POST /hive/v1/{parent=projects/*/catalogs/*}/databases
    创建新数据库。
    delete DELETE /hive/v1/{name=projects/*/catalogs/*/databases/*}
    删除由数据库名称指定的现有数据库。
    get GET /hive/v1/{name=projects/*/catalogs/*/databases/*}
    获取由资源名称指定的数据库。
    list GET /hive/v1/{parent=projects/*/catalogs/*}/databases
    列出指定目录中的所有数据库。
    patch PATCH /hive/v1/{hiveDatabase.name=projects/*/catalogs/*/databases/*}
    更新由数据库名称指定的现有数据库。

    REST 资源:hive.v1.projects.catalogs.databases.tables

    方法
    create POST /hive/v1/{parent=projects/*/catalogs/*/databases/*}/tables
    创建新的 Hive 表。
    delete DELETE /hive/v1/{name=projects/*/catalogs/*/databases/*/tables/*}
    删除由表名称指定的现有表。
    get GET /hive/v1/{name=projects/*/catalogs/*/databases/*/tables/*}
    获取由资源名称指定的表。
    list GET /hive/v1/{parent=projects/*/catalogs/*/databases/*}/tables
    列出 Hive 目录和数据库下指定项目中的所有 Hive 表。
    patch PATCH /hive/v1/{hiveTable.name=projects/*/catalogs/*/databases/*/tables/*}
    更新由表名称指定的现有表。

    REST 资源:hive.v1.projects.catalogs.databases.tables.partitions

    方法
    batchCreate POST /hive/v1/{parent=projects/*/catalogs/*/databases/*/tables/*}/partitions:batchCreate
    向表添加分区。
    batchDelete POST /hive/v1/{parent=projects/*/catalogs/*/databases/*/tables/*}/partitions:batchDelete
    从表中删除分区。
    batchUpdate POST /hive/v1/{parent=projects/*/catalogs/*/databases/*/tables/*}/partitions:batchUpdate
    更新表中的分区。
    list GET /hive/v1/{parent=projects/*/catalogs/*/databases/*/tables/*}/partitions:list
    从表中流式传输分区列表。

    REST 资源:iceberg.v1.restcatalog.extensions.projects.catalogs

    方法
    create POST /iceberg/v1/restcatalog/extensions/{parent=projects/*}/catalogs
    创建 Iceberg REST Catalog。
    delete DELETE /iceberg/v1/restcatalog/extensions/{name=projects/*/catalogs/*}
    删除 Iceberg REST Catalog。
    failover POST /iceberg/v1/restcatalog/extensions/{name=projects/*/catalogs/*}:failover
    将目录故障切换到新的主副本区域。
    get GET /iceberg/v1/restcatalog/extensions/{name=projects/*/catalogs/*}
    返回 Iceberg REST Catalog 配置选项。
    list GET /iceberg/v1/restcatalog/extensions/{parent=projects/*}/catalogs
    列出 Iceberg REST Catalog。
    patch PATCH /iceberg/v1/restcatalog/extensions/{icebergCatalog.name=projects/*/catalogs/*}
    更新 Iceberg REST Catalog 配置选项。

    REST 资源:iceberg.v1.restcatalog.v1

    方法
    getConfig GET /iceberg/v1/restcatalog/v1/config
    GetIcebergCatalogConfig 列出了所有目录配置设置。

    REST 资源:iceberg.v1.restcatalog.v1.projects.catalogs.namespaces

    方法
    create POST /iceberg/v1/restcatalog/v1/{parent=projects/*/catalogs/*}/namespaces
    在目录中创建命名空间。
    delete DELETE /iceberg/v1/restcatalog/v1/{name=projects/*/catalogs/*/namespaces/*}
    成功时返回 204,而不是 200。
    get GET /iceberg/v1/restcatalog/v1/{name=projects/*/catalogs/*/namespaces/*}
    获取目录中的 Iceberg 命名空间(如果方法为 HEAD,则检查该命名空间是否存在)。
    head NONE /iceberg/v1/restcatalog/v1/{name=projects/*/catalogs/*/namespaces/*}
    如果命名空间存在,则返回 204;否则返回 404。
    list GET /iceberg/v1/restcatalog/v1/{apiParent=projects/*/catalogs/*}/namespaces
    列出目录中的 Iceberg 命名空间。
    properties POST /iceberg/v1/restcatalog/v1/{name=projects/*/catalogs/*/namespaces/*}/properties
    更新命名空间属性。
    register POST /iceberg/v1/restcatalog/v1/{parent=projects/*/catalogs/*/namespaces/*}/register
    使用给定的元数据文件位置注册表。
    updateProperties PATCH /iceberg/v1/restcatalog/v1/{name=projects/*/catalogs/*/namespaces/*}/properties
    更新命名空间属性。

    REST 资源:iceberg.v1.restcatalog.v1.projects.catalogs.namespaces.tables

    方法
    create POST /iceberg/v1/restcatalog/v1/{parent=projects/*/catalogs/*/namespaces/*}/tables
    在命名空间中创建表。
    credentials GET /iceberg/v1/restcatalog/v1/{name=projects/*/catalogs/*/namespaces/*/tables/*}/credentials
    加载命名空间中表的凭据。
    delete DELETE /iceberg/v1/restcatalog/v1/{name=projects/*/catalogs/*/namespaces/*/tables/*}
    删除命名空间中的表。
    get GET /iceberg/v1/restcatalog/v1/{name=projects/*/catalogs/*/namespaces/*/tables/*}
    获取命名空间中的表。
    head NONE /iceberg/v1/restcatalog/v1/{name=projects/*/catalogs/*/namespaces/*/tables/*}
    如果表存在,则返回 204;否则返回 404。
    list GET /iceberg/v1/restcatalog/v1/{parent=projects/*/catalogs/*/namespaces/*}/tables
    列出命名空间中的表标识符(而非表)。
    metrics POST /iceberg/v1/restcatalog/v1/{name=projects/*/catalogs/*/namespaces/*/tables/*}/metrics
    报告表格的指标报告。
    updateIcebergTable POST /iceberg/v1/restcatalog/v1/{name=projects/*/catalogs/*/namespaces/*/tables/*}
    这是 CommitTable Iceberg API,在 Google API 命名规范中映射到 UpdateIcebergTable。

    REST 资源:v1.projects.catalogs

    方法
    getIamPolicy GET /v1/{resource=projects/*/catalogs/*}:getIamPolicy
    获取指定 Catalog 的 IAM 政策。
    setIamPolicy POST /v1/{resource=projects/*/catalogs/*}:setIamPolicy
    为指定目录设置 IAM 政策。
    testIamPermissions POST /v1/{resource=projects/*/catalogs/*}:testIamPermissions
    测试指定目录的 IAM 权限。

    REST 资源:v1.projects.catalogs.namespaces

    方法
    getIamPolicy GET /v1/{resource=projects/*/catalogs/*/namespaces/*}:getIamPolicy
    获取指定 Catalog 的 IAM 政策。
    setIamPolicy POST /v1/{resource=projects/*/catalogs/*/namespaces/*}:setIamPolicy
    为指定目录设置 IAM 政策。
    testIamPermissions POST /v1/{resource=projects/*/catalogs/*/namespaces/*}:testIamPermissions
    测试指定命名空间的 IAM 权限。

    REST 资源:v1.projects.catalogs.namespaces.tables

    方法
    getIamPolicy GET /v1/{resource=projects/*/catalogs/*/namespaces/*/tables/*}:getIamPolicy
    获取指定 Catalog 的 IAM 政策。
    setIamPolicy POST /v1/{resource=projects/*/catalogs/*/namespaces/*/tables/*}:setIamPolicy
    为指定目录设置 IAM 政策。
    testIamPermissions POST /v1/{resource=projects/*/catalogs/*/namespaces/*/tables/*}:testIamPermissions
    测试指定表的 IAM 权限。

    REST 资源:v1.projects.catalogs.namespaces.views

    方法
    getIamPolicy GET /v1/{resource=projects/*/catalogs/*/namespaces/*/views/*}:getIamPolicy
    获取指定视图的 IAM 政策。
    setIamPolicy POST /v1/{resource=projects/*/catalogs/*/namespaces/*/views/*}:setIamPolicy
    为指定视图设置 IAM 政策。
    testIamPermissions POST /v1/{resource=projects/*/catalogs/*/namespaces/*/views/*}:testIamPermissions
    测试指定视图的 IAM 权限。

    REST 资源:v1.projects.locations.catalogs

    方法
    create POST /v1/{parent=projects/*/locations/*}/catalogs
    创建新目录。
    delete DELETE /v1/{name=projects/*/locations/*/catalogs/*}
    删除由目录 ID 指定的现有目录。
    get GET /v1/{name=projects/*/locations/*/catalogs/*}
    获取由资源名称指定的目录。
    list GET /v1/{parent=projects/*/locations/*}/catalogs
    列出指定项目中的所有目录。

    REST 资源:v1.projects.locations.catalogs.databases

    方法
    create POST /v1/{parent=projects/*/locations/*/catalogs/*}/databases
    创建新数据库。
    delete DELETE /v1/{name=projects/*/locations/*/catalogs/*/databases/*}
    删除由数据库 ID 指定的现有数据库。
    get GET /v1/{name=projects/*/locations/*/catalogs/*/databases/*}
    获取由资源名称指定的数据库。
    list GET /v1/{parent=projects/*/locations/*/catalogs/*}/databases
    列出指定目录中的所有数据库。
    patch PATCH /v1/{database.name=projects/*/locations/*/catalogs/*/databases/*}
    更新由数据库 ID 指定的现有数据库。

    REST 资源:v1.projects.locations.catalogs.databases.tables

    方法
    create POST /v1/{parent=projects/*/locations/*/catalogs/*/databases/*}/tables
    创建新表。
    delete DELETE /v1/{name=projects/*/locations/*/catalogs/*/databases/*/tables/*}
    删除由表 ID 指定的现有表。
    get GET /v1/{name=projects/*/locations/*/catalogs/*/databases/*/tables/*}
    获取由资源名称指定的表。
    list GET /v1/{parent=projects/*/locations/*/catalogs/*/databases/*}/tables
    列出指定数据库中的所有表。
    patch PATCH /v1/{table.name=projects/*/locations/*/catalogs/*/databases/*/tables/*}
    更新由表 ID 指定的现有表。
    rename POST /v1/{name=projects/*/locations/*/catalogs/*/databases/*/tables/*}:rename
    重命名由表 ID 指定的现有表。