Couchbase¶
Couchbase is a distributed NoSQL cloud database that delivers unmatched performance, scalability, and flexibility for building modern applications.
omniload supports Couchbase as a source.
URI format¶
Standard format (without SSL)¶
couchbase://username:password@host
With SSL/TLS enabled¶
couchbase://username:password@host?ssl=true
Including bucket in URI¶
couchbase://username:password@host/bucket
couchbase://username:password@host/bucket?ssl=true
URI parameters:
username: the username to connect to the Couchbase clusterpassword: the password for the userhost: the host address of the Couchbase serverbucket: optional bucket name in the URI pathssl: SSL/TLS connection parameterssl=true: Required for Couchbase Capella (cloud) deploymentsssl=falseor omitted: Use for Couchbase Server (self-hosted/on-premises) deployments
[!NOTE] SSL Parameter Usage:
Use
ssl=truewhen connecting to Couchbase Capella (cloud)Use
ssl=falseor omit the parameter when connecting to Couchbase Server (self-hosted/on-premises)
The URI structure can be used for connecting to both local/self-hosted Couchbase instances and Couchbase Capella (cloud).
Source table format¶
The --source-table option for Couchbase supports two formats depending on whether the bucket is specified in the URI:
When bucket is NOT in URI¶
bucket.scope.collection
When bucket IS in URI path¶
scope.collection
For default scope and collection, you can use:
bucket._default._default
Using Couchbase as a source¶
Local/self-hosted Couchbase¶
Basic connection without SSL¶
omniload ingest \
--source-uri "couchbase://admin:password123@localhost" \
--source-table "mybucket.myscope.mycollection" \
--dest-uri "duckdb:///output.db" \
--dest-table "main.couchbase_data"
For Couchbase Capella (Cloud)¶
omniload ingest \
--source-uri "couchbase://admin:password123@localhost?ssl=true" \
--source-table "mybucket._default._default" \
--dest-uri "duckdb:///output.db" \
--dest-table "main.couchbase_data"
With bucket in URI¶
omniload ingest \
--source-uri "couchbase://admin:password123@localhost/mybucket" \
--source-table "myscope.mycollection" \
--dest-uri "duckdb:///output.db" \
--dest-table "main.couchbase_data"
Couchbase Capella (Cloud)¶
[!IMPORTANT] Couchbase Capella (cloud) requires SSL connections. You must use
?ssl=truein your connection URI and prefix the host withcb.
[!TIP] You can obtain the connection string for Capella from the SDK connection details in your Couchbase Capella dashboard.
Use the couchbase:// scheme with ssl=true parameter. Note the cb. prefix in the hostname:
omniload ingest \
--source-uri "couchbase://username:password@cb.xxx.cloud.couchbase.com?ssl=true" \
--source-table "travel-sample.inventory.airport" \
--dest-uri "duckdb:///airports.db" \
--dest-table "main.airports"
With bucket in URI for Couchbase Capella
omniload ingest \
--source-uri "couchbase://username:password@cb.xxx.cloud.couchbase.com/travel-sample?ssl=true" \
--source-table "inventory.airport" \
--dest-uri "duckdb:///airports.db" \
--dest-table "main.airports"
With URL-encoded password¶
[!IMPORTANT] When using omniload CLI, passwords containing special characters (
@,:,/,#,?, etc.) must be URL-encoded in the connection URI.
If your password contains special characters, you need to URL-encode them:
omniload ingest \
--source-uri "couchbase://admin:MyPass%40123%21@localhost" \
--source-table "mybucket.myscope.mycollection" \
--dest-uri "duckdb:///output.db" \
--dest-table "main.couchbase_data"
This example encodes the password MyPass@123! as MyPass%40123%21.