Lakehouse API

The Lakehouse API (formerly BigLake API) provides access to a serverless, fully managed, and highly available metastore that provides a single source of truth for your data lakehouse. It lets multiple engines—including Apache Spark, Google Managed Spark, Apache Flink, Trino and BigQuery—share tables and metadata for key open formats (Apache Iceberg, Apache Hive), and query the same copy of data. Plus, through the Lakehouse runtime catalog federation seamlessly unite your lakehouse ecosystem, letting Iceberg compatible engines on Google Cloud (BigQuery, Google Managed Spark) discover and analyze enterprise data across Snowflake, Databricks, and AWS Glue.

Service: biglake.googleapis.com

To call this service, we recommend that you use the Google-provided client libraries. If your application needs to use your own libraries to call this service, use the following information when you make the API requests.

Discovery document

A Discovery Document is a machine-readable specification for describing and consuming REST APIs. It is used to build client libraries, IDE plugins, and other tools that interact with Google APIs. One service may provide multiple discovery documents. This service provides the following discovery document:

Service endpoint

A service endpoint is a base URL that specifies the network address of an API service. One service might have multiple service endpoints. This service has the following service endpoint and all URIs below are relative to this service endpoint:

  • https://biglake.googleapis.com

Regional service endpoint

A regional service endpoint is a base URL that specifies the network address of an API service in a single region. A service that is available in multiple regions might have multiple regional endpoints. Select a location to see its regional service endpoint for this service.


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

    Methods
    publishDataProduct POST /dataproductsharing/v1/{connectionCatalog=projects/*/catalogs/*}:publishDataProduct
    Publishes a Knowledge Catalog Data Product or an Iceberg catalog to SAP BDC.
    unpublishDataProduct POST /dataproductsharing/v1/{connectionCatalog=projects/*/catalogs/*}:unpublishDataProduct
    Unpublishes a Knowledge Catalog Data Product or Iceberg catalog share from SAP BDC.

    REST Resource: deltasharing.v1.projects.catalogs

    Methods
    create POST /deltasharing/v1/{parent=projects/*}/catalogs
    Creates a new DeltaSharing catalog.
    delete DELETE /deltasharing/v1/{name=projects/*/catalogs/*}
    Deletes an existing DeltaSharing catalog specified by the resource name.
    get GET /deltasharing/v1/{name=projects/*/catalogs/*}
    Gets the catalog specified by the resource name.
    list GET /deltasharing/v1/{parent=projects/*}/catalogs
    List all DeltaSharing catalogs in a specified project.
    patch PATCH /deltasharing/v1/{deltaSharingCatalog.name=projects/*/catalogs/*}
    Updates an existing DeltaSharing catalog.

    REST Resource: deltasharing.v1.projects.catalogs.shares

    Methods
    list GET /deltasharing/v1/{parent=projects/*/catalogs/*}/shares
    Gets a list of Delta Sharing shares available in the upstream Delta Sharing source (e.g., SAP BDC).

    REST Resource: deltasharing.v1.projects.catalogs.shares.schemas

    Methods
    list GET /deltasharing/v1/{parent=projects/*/catalogs/*/shares/*}/schemas
    Gets a list of Delta Sharing schemas available in the upstream SAP BDC source.

    REST Resource: deltasharing.v1.projects.catalogs.shares.schemas.tables

    Methods
    list GET /deltasharing/v1/{parent=projects/*/catalogs/*/shares/*/schemas/*}/tables
    Gets a list of Delta Sharing tables available in the upstream SAP BDC source.

    REST Resource: hive.v1.projects.catalogs

    Methods
    create POST /hive/v1/{parent=projects/*}/catalogs
    Creates a new hive catalog.
    delete DELETE /hive/v1/{name=projects/*/catalogs/*}
    Deletes an existing catalog specified by the catalog ID.
    failover POST /hive/v1/{name=projects/*/catalogs/*}:failover
    Failover the catalog to a new primary replica region.
    get GET /hive/v1/{name=projects/*/catalogs/*}
    Gets the catalog specified by the resource name.
    list GET /hive/v1/{parent=projects/*}/catalogs
    List all catalogs in a specified project.
    patch PATCH /hive/v1/{hiveCatalog.name=projects/*/catalogs/*}
    Updates an existing catalog.

    REST Resource: hive.v1.projects.catalogs.databases

    Methods
    create POST /hive/v1/{parent=projects/*/catalogs/*}/databases
    Creates a new database.
    delete DELETE /hive/v1/{name=projects/*/catalogs/*/databases/*}
    Deletes an existing database specified by the database name.
    get GET /hive/v1/{name=projects/*/catalogs/*/databases/*}
    Gets the database specified by the resource name.
    list GET /hive/v1/{parent=projects/*/catalogs/*}/databases
    List all databases in a specified catalog.
    patch PATCH /hive/v1/{hiveDatabase.name=projects/*/catalogs/*/databases/*}
    Updates an existing database specified by the database name.

    REST Resource: hive.v1.projects.catalogs.databases.tables

    Methods
    create POST /hive/v1/{parent=projects/*/catalogs/*/databases/*}/tables
    Creates a new hive table.
    delete DELETE /hive/v1/{name=projects/*/catalogs/*/databases/*/tables/*}
    Deletes an existing table specified by the table name.
    get GET /hive/v1/{name=projects/*/catalogs/*/databases/*/tables/*}
    Gets the table specified by the resource name.
    list GET /hive/v1/{parent=projects/*/catalogs/*/databases/*}/tables
    List all hive tables in a specified project under the hive catalog and database.
    patch PATCH /hive/v1/{hiveTable.name=projects/*/catalogs/*/databases/*/tables/*}
    Updates an existing table specified by the table name.

    REST Resource: hive.v1.projects.catalogs.databases.tables.partitions

    Methods
    batchCreate POST /hive/v1/{parent=projects/*/catalogs/*/databases/*/tables/*}/partitions:batchCreate
    Adds partitions to a table.
    batchDelete POST /hive/v1/{parent=projects/*/catalogs/*/databases/*/tables/*}/partitions:batchDelete
    Deletes partitions from a table.
    batchUpdate POST /hive/v1/{parent=projects/*/catalogs/*/databases/*/tables/*}/partitions:batchUpdate
    Updates partitions in a table.
    list GET /hive/v1/{parent=projects/*/catalogs/*/databases/*/tables/*}/partitions:list
    Streams list of partitions from a table.

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

    Methods
    create POST /iceberg/v1/restcatalog/extensions/{parent=projects/*}/catalogs
    Creates the Iceberg REST Catalog.
    delete DELETE /iceberg/v1/restcatalog/extensions/{name=projects/*/catalogs/*}
    Deletes the Iceberg REST Catalog.
    failover POST /iceberg/v1/restcatalog/extensions/{name=projects/*/catalogs/*}:failover
    Failover the catalog to a new primary replica region.
    get GET /iceberg/v1/restcatalog/extensions/{name=projects/*/catalogs/*}
    Returns the Iceberg REST Catalog configuration options.
    list GET /iceberg/v1/restcatalog/extensions/{parent=projects/*}/catalogs
    Lists the Iceberg REST Catalogs.
    patch PATCH /iceberg/v1/restcatalog/extensions/{icebergCatalog.name=projects/*/catalogs/*}
    Update the Iceberg REST Catalog configuration options.

    REST Resource: iceberg.v1.restcatalog.v1

    Methods
    getConfig GET /iceberg/v1/restcatalog/v1/config
    GetIcebergCatalogConfig lists all catalog configuration settings.

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

    Methods
    create POST /iceberg/v1/restcatalog/v1/{parent=projects/*/catalogs/*}/namespaces
    Creates a namespace in the catalog.
    delete DELETE /iceberg/v1/restcatalog/v1/{name=projects/*/catalogs/*/namespaces/*}
    Returns 204, not 200 on success.
    get GET /iceberg/v1/restcatalog/v1/{name=projects/*/catalogs/*/namespaces/*}
    Gets an Iceberg namespace in the catalog (or checks if it exists, if the method is HEAD).
    head NONE /iceberg/v1/restcatalog/v1/{name=projects/*/catalogs/*/namespaces/*}
    Returns 204 if the namespace exists, 404 otherwise.
    list GET /iceberg/v1/restcatalog/v1/{apiParent=projects/*/catalogs/*}/namespaces
    Lists Iceberg namespaces in the catalog.
    properties POST /iceberg/v1/restcatalog/v1/{name=projects/*/catalogs/*/namespaces/*}/properties
    Updates namespace properties.
    register POST /iceberg/v1/restcatalog/v1/{parent=projects/*/catalogs/*/namespaces/*}/register
    Register a table using given metadata file location.
    updateProperties PATCH /iceberg/v1/restcatalog/v1/{name=projects/*/catalogs/*/namespaces/*}/properties
    Updates namespace properties.

    REST Resource: iceberg.v1.restcatalog.v1.projects.catalogs.namespaces.tables

    Methods
    create POST /iceberg/v1/restcatalog/v1/{parent=projects/*/catalogs/*/namespaces/*}/tables
    Creates a table in the namespace.
    credentials GET /iceberg/v1/restcatalog/v1/{name=projects/*/catalogs/*/namespaces/*/tables/*}/credentials
    Loads credentials for a table in the namespace.
    delete DELETE /iceberg/v1/restcatalog/v1/{name=projects/*/catalogs/*/namespaces/*/tables/*}
    Deletes a table in the namespace.
    get GET /iceberg/v1/restcatalog/v1/{name=projects/*/catalogs/*/namespaces/*/tables/*}
    Gets a table in the namespace.
    head NONE /iceberg/v1/restcatalog/v1/{name=projects/*/catalogs/*/namespaces/*/tables/*}
    Returns 204 if the table exists, 404 otherwise.
    list GET /iceberg/v1/restcatalog/v1/{parent=projects/*/catalogs/*/namespaces/*}/tables
    Lists table identifiers (not tables) in the namespace.
    metrics POST /iceberg/v1/restcatalog/v1/{name=projects/*/catalogs/*/namespaces/*/tables/*}/metrics
    Reports a metrics report for a table.
    updateIcebergTable POST /iceberg/v1/restcatalog/v1/{name=projects/*/catalogs/*/namespaces/*/tables/*}
    This is CommitTable Iceberg API, which maps to UpdateIcebergTable in the Google API nomenclature.

    REST Resource: v1.projects.catalogs

    Methods
    getIamPolicy GET /v1/{resource=projects/*/catalogs/*}:getIamPolicy
    Gets the IAM policy for the specified Catalog.
    setIamPolicy POST /v1/{resource=projects/*/catalogs/*}:setIamPolicy
    Sets the IAM policy for the specified catalog.
    testIamPermissions POST /v1/{resource=projects/*/catalogs/*}:testIamPermissions
    Tests the IAM permissions for the specified catalog.

    REST Resource: v1.projects.catalogs.namespaces

    Methods
    getIamPolicy GET /v1/{resource=projects/*/catalogs/*/namespaces/*}:getIamPolicy
    Gets the IAM policy for the specified Catalog.
    setIamPolicy POST /v1/{resource=projects/*/catalogs/*/namespaces/*}:setIamPolicy
    Sets the IAM policy for the specified catalog.
    testIamPermissions POST /v1/{resource=projects/*/catalogs/*/namespaces/*}:testIamPermissions
    Tests the IAM permissions for the specified namespace.

    REST Resource: v1.projects.catalogs.namespaces.tables

    Methods
    getIamPolicy GET /v1/{resource=projects/*/catalogs/*/namespaces/*/tables/*}:getIamPolicy
    Gets the IAM policy for the specified Catalog.
    setIamPolicy POST /v1/{resource=projects/*/catalogs/*/namespaces/*/tables/*}:setIamPolicy
    Sets the IAM policy for the specified catalog.
    testIamPermissions POST /v1/{resource=projects/*/catalogs/*/namespaces/*/tables/*}:testIamPermissions
    Tests the IAM permissions for the specified table.

    REST Resource: v1.projects.catalogs.namespaces.views

    Methods
    getIamPolicy GET /v1/{resource=projects/*/catalogs/*/namespaces/*/views/*}:getIamPolicy
    Gets the IAM policy for the specified View.
    setIamPolicy POST /v1/{resource=projects/*/catalogs/*/namespaces/*/views/*}:setIamPolicy
    Sets the IAM policy for the specified view.
    testIamPermissions POST /v1/{resource=projects/*/catalogs/*/namespaces/*/views/*}:testIamPermissions
    Tests the IAM permissions for the specified view.

    REST Resource: v1.projects.locations.catalogs

    Methods
    create POST /v1/{parent=projects/*/locations/*}/catalogs
    Creates a new catalog.
    delete DELETE /v1/{name=projects/*/locations/*/catalogs/*}
    Deletes an existing catalog specified by the catalog ID.
    get GET /v1/{name=projects/*/locations/*/catalogs/*}
    Gets the catalog specified by the resource name.
    list GET /v1/{parent=projects/*/locations/*}/catalogs
    List all catalogs in a specified project.

    REST Resource: v1.projects.locations.catalogs.databases

    Methods
    create POST /v1/{parent=projects/*/locations/*/catalogs/*}/databases
    Creates a new database.
    delete DELETE /v1/{name=projects/*/locations/*/catalogs/*/databases/*}
    Deletes an existing database specified by the database ID.
    get GET /v1/{name=projects/*/locations/*/catalogs/*/databases/*}
    Gets the database specified by the resource name.
    list GET /v1/{parent=projects/*/locations/*/catalogs/*}/databases
    List all databases in a specified catalog.
    patch PATCH /v1/{database.name=projects/*/locations/*/catalogs/*/databases/*}
    Updates an existing database specified by the database ID.

    REST Resource: v1.projects.locations.catalogs.databases.tables

    Methods
    create POST /v1/{parent=projects/*/locations/*/catalogs/*/databases/*}/tables
    Creates a new table.
    delete DELETE /v1/{name=projects/*/locations/*/catalogs/*/databases/*/tables/*}
    Deletes an existing table specified by the table ID.
    get GET /v1/{name=projects/*/locations/*/catalogs/*/databases/*/tables/*}
    Gets the table specified by the resource name.
    list GET /v1/{parent=projects/*/locations/*/catalogs/*/databases/*}/tables
    List all tables in a specified database.
    patch PATCH /v1/{table.name=projects/*/locations/*/catalogs/*/databases/*/tables/*}
    Updates an existing table specified by the table ID.
    rename POST /v1/{name=projects/*/locations/*/catalogs/*/databases/*/tables/*}:rename
    Renames an existing table specified by the table ID.