> ## Documentation Index
> Fetch the complete documentation index at: https://docs.risingwave.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Sink data from RisingWave to Azure Blob

> This guide describes how to sink data from RisingWave to Azure Blob storage using the Azblob connector in RisingWave.

[Azure Blob Storage](https://learn.microsoft.com/en-us/azure/storage/blobs/) is Microsoft's object storage solution that allows you to store and manage massive amounts of unstructured data.

## Syntax

```sql theme={null}
CREATE SINK [ IF NOT EXISTS ] sink_name
[FROM sink_from | AS select_query]
WITH (
   connector='azblob',
   connector_parameter = 'value', ...
);
```

## Parameters

| Parameter names                  | Description                                                                        |
| :------------------------------- | :--------------------------------------------------------------------------------- |
| azblob.container\_name           | **Required**. The name of the Azure Blob Storage container.                        |
| azblob.path                      | **Required**. The directory where the sink file is located.                        |
| azblob.credentials.account\_name | **Optional**. The Azure Storage account name for authentication.                   |
| azblob.credentials.account\_key  | **Optional**. The access key for the Azure Storage account.                        |
| azblob.endpoint\_url             | **Required**. The URL endpoint for the Azure Blob Storage service.                 |
| type                             | **Required**. Defines the type of the sink. Options include append-only or upsert. |

## Example

```sql theme={null}
CREATE SINK azblob_sink AS SELECT v1
FROM t
WITH (
    connector='azblob',
    azblob.path = 'test_sink/',
    azblob.container_name = '<container_name>',
    azblob.credentials.account_name = '<account_name>',
    azblob.credentials.account_key = '<account_key>',
    azblob.endpoint_url = '<endpoint_url>',
    type = 'append-only',
)FORMAT PLAIN ENCODE PARQUET(force_append_only=true);
```

## Advanced topics

For more information about encode `Parquet` or `JSON`, see [Sink data in parquet or json format](/delivery/overview#sink-data-in-parquet-or-json-format).

For more information about batching strategy, see [Batching strategy for file sink](/delivery/overview#batching-strategy-for-file-sink).
