Catalogs
Trino does not have a built-in catalog and instead provides connectors to external data sources. This allows Trino to connect to, read from and join a wide variety of data sources.
Using catalogs
Catalogs are defined in their own resources and referenced from cluster objects. See the Concepts page for more details.
Create a catalog
You can create a catalog using the TrinoCatalog
object as follows.
apiVersion: trino.stackable.tech/v1alpha1
kind: TrinoCatalog
metadata:
name: hive-catalog
labels:
trino: simple-trino
spec:
connector:
hive:
metastore:
configMap: simple-hive-derby
s3:
inline:
host: test-minio
port: 9000
accessStyle: Path
credentials:
secretClass: minio-credentials
# We can use configOverrides to add arbitrary properties to the Trino catalog configuration
configOverrides:
hive.metastore.username: trino
---
apiVersion: trino.stackable.tech/v1alpha1
kind: TrinoCatalog
metadata:
name: iceberg
labels:
trino: simple-trino
spec:
connector:
iceberg:
metastore:
configMap: simple-hive-derby
s3:
inline:
host: test-minio
port: 9000
accessStyle: Path
credentials:
secretClass: minio-credentials
The metadata.name
will be the name of the catalog that shows up in your Trino instance.
The metadata.labels
will be used by TrinoCluster
to determine the link between Trino clusters and TrinoCatalogs
.
The spec.connector.<connector>
determines which connector is used.
Each connector supports a different set of attributes.
Add a catalog to a Trino cluster
It is necessary to specify within the TrinoCluster
which catalogs it should use. Here is an example of this:
apiVersion: trino.stackable.tech/v1alpha1
kind: TrinoCluster
metadata:
name: simple-trino
spec:
image:
productVersion: "428"
clusterConfig:
catalogLabelSelector:
matchLabels:
trino: simple-trino
# ...
The spec.catalogLabelSelector
is used to fetch the list of TrinoCatalogs
used for this Trino cluster.
In this case the hive
and iceberg
catalogs will be used as they both match the catalogLabelSelector
value simple-trino
.
A TrinoCluster
can, once created, detect and use new catalogs that have been subsequently created with a matching label. This also means that it is possible to reuse a TrinoCatalog
within multiple TrinoClusters
.
Generic fallback connector
Trino supports lots of different connectors and we can not cover all the available connectors. In case the Trino operator does not support a specific connector, there is a fallback mechanism: The Generic.