CDK_KAFKASQL_DATABASE_URL
: database connection URL in the format [jdbc:]postgresql://[user[:password]@]netloc[:port][/dbname][?param1=value1&...]
.
If you don’t have this set, SQL will not appear in the sidebar.CDK_KAFKASQL_DATABASE_HOST
: Postgresql server host nameCDK_KAFKASQL_DATABASE_PORT
: Postgresql server portCDK_KAFKASQL_DATABASE_NAME
: Database nameCDK_KAFKASQL_DATABASE_USERNAME
: Database login roleCDK_KAFKASQL_DATABASE_PASSWORD
: Database login passwordCDK_KAFKASQL_DATABASE_CONNECTIONTIMEOUT
: Connection timeout option in secondsCDK_KAFKASQL_CONSUMER-GROUP-ID
: Consumer group name for the indexing process (default is conduktor-sql
)CDK_KAFKASQL_CLEAN-EXPIRED-RECORD-EVERY-IN-HOUR
: The interval in which the clean-up process will run to purge data outside the desired retention periodCDK_KAFKA_SQL_REFRESH-TOPIC-CONFIGURATION-EVERY-IN-SEC
: Time interval before taking into account any sqlStorage
configuration changes on Topic resourcesCDK_KAFKASQL_REFRESH-USER-PERMISSIONS-EVERY-IN-SEC
: See RBACkafka.topics.config.sql
permission required to opt topics in for indexing. This permission is verified whenever a user attempts to update the sqlStorage
configuration for a topic.
When selecting a topic for indexing, you will be asked to configure the:
CDK_KAFKASQL_CLEAN-EXPIRED-RECORD-EVERY-IN-HOUR
customers
on the cluster kafka-cluster-dev
:
${cluster-technical-id}_${topic-name}
.
The table will contain special column types, each of those columns is indexed:
__timestamp
__partition
__offset
__checksum
: the checksum of the tuple (message(s) key, message(s) value)__headers
: the message(s) headers__schema_id
: the schema id__key
: the message(s) key__timestamp | __partition | __offset | __checksum | __headers | __schema_id | __key | a.b.c | userId |
---|---|---|---|---|---|---|---|---|
123456789 | 0 | 42 | 8d4fd66a16a84da2ddc709ddc5657c17 | conduktor | 1 | something | Hello World | 109210921092 |
__timestamp | __partition | __offset | __checksum | __headers | __schema_id | __key | a.b.c | userId | newField |
---|---|---|---|---|---|---|---|---|---|
123456789 | 0 | 42 | 8d4fd66a16a84da2ddc709ddc5657c17 | conduktor | 1 | something | Hello World | 109210921092 | NULL |
123456790 | 0 | 42 | 8d4fd66a16a84da2ddc709ddc5657c18 | conduktor | 1 | something | NULL | NULL | Kafka |
my.reaaaally.loooooooooooooooooooooooooooooong.path.to.a.field
will give
m.r.oong.path.to.a.field
_${inc}
(e.g. my.field
& my.field_2
).
Relation between a table/column and a topic/field is tracked in special metadata tables:
_table_mappings
_table_fields_mappings
kafka.topics.read
permission. The user’s ROLE is then created in PostgreSQL, and read access to the relevant topic tables is granted.
CDK_KAFKASQL_REFRESHUSERPERMISSIONSEVERYINSEC
.
SELECT
query (e.g., SELECT * FROM table
). Attempting to do so will result in an access denied errorJSON
, and both Avro
& JSON
with Confluent Schema Registry