Generic

Trino supports lots of different connectors and we cannot cover all the available connectors. In case the Stackable operator for Trino does not support a specific connector you can use this connector to pull in any connector Trino supports.

This is how you can e.g. use the PostgreSQL connector:

Example generic catalog properties

apiVersion: trino.stackable.tech/v1alpha1 kind: TrinoCatalog metadata: # The name of the catalog as it will appear in Trino name: postgres # TrinoCluster can use these labels to select which catalogs to include labels: trino: simple-trino spec: connector: generic: connectorName: postgresql properties: # optional connection-url: value: jdbc:postgresql://example.net:5432/database connection-user: valueFromSecret: name: my-postgresql-credentials-secret key: user connection-password: valueFromSecret: name: my-postgresql-credentials-secret key: password # extra-property-from-configmap: # valueFromConfigMap: # name: my-configmap # key: my-key --- apiVersion: v1 kind: Secret metadata: name: my-postgresql-credentials-secret stringData: user: root password: rootroot

Add contents from Secrets or ConfigMaps

In some cases you don’t want to add sensitive data (such as PostgreSQL credentials) to a TrinoCatalog. You can then use valueFromSecret or valueFromSecret to pull in properties securely. An entry must be an valid SecretKeySelector or ConfigMapKeySelector.

Add additional contents

In case you need more contents, such as the need to mount Secrets - containing e.g. certificates or keytabs - please consult the documentation on podOverrides.

Troubleshoot

Capitalized or upper case table names with PostgreSQL / MySQL

If table names are capitalized or upper case in PostgreSQL / MySQL, Trino can list the tables contained in a schema (lower case) but cannot access any data due to the error:

Table '<catalog>.<schema>.<table>' does not exist io.trino.spi.TrinoException: line 2:6: Table '<catalog>.<schema>.<table>' does not exist

This is fixed by setting the case-insensitive-name-matching connector property which works for both PostgreSQL connector and MySQL Connector.

This can be added to the generic connector as follows:

spec: connector: generic: ... properties: case-insensitive-name-matching: value: "true" ...