Deploy Streambased I.S.K.
Step 1: Prepare a base configuration
Streambased I.S.K. (Iceberg Service for Kafka) requires only a single short config file to start. An example can be seen below:
{
"port": 11000,
"catalog": {
"port": 11001,
},
"external.hostname": "streambased-isk",
"kafka.bootstrap.servers": "localhost:9092",
"schema-registry.url": "http://localhost:8081"
}
For more information on the configuration parameters see configuration
Save this example configuration as streambased-isk-config.json
in your environment, make any changes necessary and mount as below.
Step 2: Start Streambased I.S.K.
An indexer can be started with the following command:
docker run -v ${PWD}/streambased-isk-config.json:/etc/streambased/etc/streambased-isk-config.json -p 11000:11000 -p 11001:11001 streambased/directstream:latest
Step 3: Connect to Streambased I.S.K.
Streambased exposes two ports:
A S3 compatible filesystem
An Apache Iceberg catalog
Any Iceberg supporting client can use these endpoints to access I.S.K. An example Spark configuration can be seen below:
spark.sql.extensions org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions
spark.sql.catalog.isk org.apache.iceberg.spark.SparkCatalog
spark.sql.catalog.isk.type rest
spark.sql.catalog.isk.rest.sigv4-enabled true
spark.sql.catalog.isk.rest.access-key dummyapi
spark.sql.catalog.isk.rest.secret-key dummysecret
spark.sql.catalog.isk.rest.signing-region us-east-1
spark.sql.catalog.isk.uri http://streambased-isk:11001
spark.sql.catalog.isk.io-impl org.apache.iceberg.aws.s3.S3FileIO
spark.sql.catalog.isk.s3.path-style-access true
spark.sql.catalog.isk.warehouse s3://
spark.sql.catalog.isk.s3.endpoint http://streambased-isk:11000
spark.sql.defaultCatalog isk
A full example client implementation can be seen in the streambased-demos repository here.
Step 4: Scale
Streambased I.S.K. can scale alongside your Kafka infrastructure to practically unlimited capability. Please reach out to our team to schedule your free architecture assessment.
Last updated