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

# Iceberg Target

The Iceberg Target Connector writes your pipeline data to Apache Iceberg tables stored in Azure Blob Storage. Apache Iceberg is an open table format designed for huge analytic datasets, providing ACID transactions, time travel queries, partition evolution, and schema evolution without affecting concurrent reads. This connector streams change events from Popsink directly into your data lake in Iceberg format, making it ideal for lakehouse architectures, large-scale analytics, and machine learning pipelines.

## Key Features

* **Iceberg open table format:** full ACID compliance, time travel, and schema evolution on your data lake.
* **Streaming ingestion:** change events are written continuously — no batch jobs to schedule.
* **Flexible Azure authentication:** connection string or Service Principal (SPN), with optional proxy support for restricted networks.

## Prerequisites

* An Azure Blob Storage account with an **existing container** for the Iceberg data.
* Storage credentials: either the storage account **connection string**, or a **Service Principal** with the **Storage Blob Data Contributor** role on the storage account.

## Storage Authentication

Two authentication methods are supported. Pick the one that matches how you administer the storage account.

### Option A — Connection String

Authenticate with an Azure Blob Storage connection string, found in the Azure Portal under **Storage Account → Access keys**.

| Field                 | Description                                                                                                |
| --------------------- | ---------------------------------------------------------------------------------------------------------- |
| **Connection String** | e.g. `DefaultEndpointsProtocol=https;AccountName=myaccount;AccountKey=...;EndpointSuffix=core.windows.net` |
| **Container Name**    | Existing container where Iceberg table data will be written                                                |

### Option B — Service Principal (SPN)

Authenticate with an Azure Active Directory Service Principal. The Service Principal must have the **Storage Blob Data Contributor** role on the storage account.

| Field                    | Description                                                       |
| ------------------------ | ----------------------------------------------------------------- |
| **Storage Account Name** | Name of the Azure Storage account (e.g. `mystorageaccount`)       |
| **Tenant ID**            | Azure AD tenant ID (Azure Portal → Microsoft Entra ID → Overview) |
| **Client ID**            | Application (client) ID of the registered app                     |
| **Client Secret**        | A client secret generated for the registered app                  |
| **Container Name**       | Existing container where Iceberg table data will be written       |

## Advanced Configuration

| Field          | Required | Description                                                                                                                                                                                                                   |
| -------------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **HTTP Proxy** | No       | Optional HTTP(S) proxy URL for the Entra ID token endpoint (`login.microsoftonline.com`). Storage and local traffic stay direct. Only used with SPN authentication — connection-string authentication makes no Entra ID call. |
