An Iceberg catalog is an external catalog. You can use an Iceberg catalog to query data in Iceberg. This topic describes how to create an Iceberg catalog in an E-MapReduce (EMR) StarRocks cluster and use the Iceberg catalog to query data in Iceberg.
Prerequisites
A cluster that contains the Iceberg service, such as a DataLake cluster or a custom cluster, is created. For more information, see Create a cluster.
A cluster that contains the StarRocks service, such as an online analytical processing (OLAP) cluster or a custom cluster, is created, and you have logged on to the cluster. For more information, see Create a cluster and Getting started.
Limits
The preceding clusters must be deployed in the same virtual private cloud (VPC) and zone.
You can use a StarRocks cluster to query only data in analytic data tables (Version 1). Data in row-level deletes tables (Version 2) cannot be queried. For more information, see Iceberg Table Spec.
Create an Iceberg catalog
Syntax
CREATE EXTERNAL CATALOG <catalog_name>
PROPERTIES
(
"key"="value",
...
);
Parameter description
catalog_name
: the name of the Iceberg catalog. This parameter is required. The name must meet the following requirements:The name can contain letters, digits, and underscores (_). It must start with a letter.
The name must be 1 to 64 characters in length.
PROPERTIES
: the properties of the Iceberg catalog. This parameter is required. The configurations of this parameter vary based on the metadata service that is used by the Iceberg data source. An Iceberg catalog stores the mappings between Iceberg tables and their storage paths. The following information describes the properties that you can configure for different metadata services.Property
Required
Description
type
Yes
The type of the data source. Set the value to
iceberg
.iceberg.catalog.type
Yes
The type of the catalog for the Iceberg data source. If you use the Hive Metastore service, set the value to
HIVE
.hive.metastore.uris
No
The URI of the Hive Metastore service. Specify the value in the following format:
thrift://<IP address of the Hive metastore>:<Port number>
. The default port number is 9083. This parameter can be left empty if you use Data Lake Formation (DLF) to store metadata.
Example
Execute the following statement to create an Iceberg catalog named iceberg_catalog
:
CREATE EXTERNAL CATALOG iceberg_catalog
PROPERTIES
(
"type" = "iceberg",
"iceberg.catalog.type" = "HIVE",
"hive.metastore.uris" = "thrift://xx.xx.xx.xx:9083"
);
Query data in an Iceberg table
You can execute the following statement to query data in a specific table of a database:
SELECT * FROM <catalog_name>.<database_name>.<table_name>;
References
For more information about Iceberg, see Overview.