Azure Blobs

You can use Azure’s Blob Storage as XTDB’s 'document store'.

Documents are serialized via Nippy.

Project Dependency

In order to use Blob Storage within XTDB, you must first add this module as a project dependency:

  • deps.edn

  • pom.xml

com.xtdb/xtdb-azure-blobs {:mvn/version "1.21.0"}
<dependency>
    <groupId>com.xtdb</groupId>
    <artifactId>xtdb-azure-blobs</artifactId>
    <version>1.21.0</version>
</dependency>

Using Azure Blobs

Replace the implementation of the document store with xtdb.azure.blobs/->document-store

  • JSON

  • Clojure

  • EDN

{
  "xtdb/document-store": {
    "xtdb/module": "xtdb.azure.blobs/->document-store",
    "sas-token": "your-sas-token",
    "storage-account": "your-storage-account",
    "container": "your-container-name"
  },
}
{:xtdb/document-store {:xtdb/module 'xtdb.azure.blobs/->document-store
                       :sas-token "your-sas-token"
                       :storage-account "your-storage-account"
                       :container "your-container-name"}}
{:xtdb/document-store {:xtdb/module xtdb.azure.blobs/->document-store
                       :sas-token "your-sas-token"
                       :storage-account "your-storage-account"
                       :container "your-container-name"}}

You’ll need to create a Storage Account, then a Container for storing the documents.

Then you need to create a SAS token for the Storage Account via the Azure portal.

  • Under Storage Account, go to Settings.

  • Then click Shared access signature.

  • Create a new SAS token with Allowed services: Blob, Allowed resources types: Container and Object. You can select all allowed permissions.

  • Select needed Start and expiry date/time, Allowed IP addresses if applicable and HTTPS only. Leave the rest of the options as-is.

Parameters

  • sas-token (string, required): 'shared access signature' for your chosen container.

  • storage-account (string, required)

  • container (string, required)

  • cache-size (int): size of in-memory document cache (number of entries, not bytes)