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" ...