> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-mintlify-fbfa8bee.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Fornece uma interface semelhante a uma tabela, somente leitura, para as tabelas Delta Lake no Amazon S3.

# deltaLake

Fornece uma interface semelhante a uma tabela para tabelas [Delta Lake](https://github.com/delta-io/delta) no Amazon S3, Azure Blob Storage ou em um sistema de arquivos montado localmente, com suporte a leituras e gravações (a partir da v25.10)

<div id="syntax">
  ## Sintaxe
</div>

`deltaLake` é um alias de `deltaLakeS3`, mantido por compatibilidade.

```sql theme={null}
deltaLake(url [,aws_access_key_id, aws_secret_access_key] [,format] [,structure] [,compression] [,extra_credentials])

deltaLakeS3(url [,aws_access_key_id, aws_secret_access_key] [,format] [,structure] [,compression] [,extra_credentials])

deltaLakeAzure(connection_string|storage_account_url, container_name, blobpath, [,account_name], [,account_key] [,format] [,compression_method])

deltaLakeLocal(path, [,format])
```

<div id="arguments">
  ## Argumentos
</div>

Os argumentos para esta função de tabela são os mesmos das funções de tabela `s3`, `azureBlobStorage`, `HDFS` e `file`, respectivamente.
O argumento `format` refere-se ao formato dos arquivos de dados na tabela Delta Lake.

Um parâmetro opcional `extra_credentials` pode ser usado para passar um `role_arn` para controle de acesso baseado em papéis no ClickHouse Cloud. Consulte [Secure S3](/pt-BR/products/cloud/guides/data-sources/accessing-s3-data-securely) para ver as etapas de configuração.

<div id="returned_value">
  ## Valor retornado
</div>

Retorna uma tabela com a estrutura especificada para leitura de dados da tabela Delta Lake especificada ou gravação de dados nela.

<div id="examples">
  ## Exemplos
</div>

<div id="reading-data">
  ### Leitura de dados
</div>

Considere uma tabela no armazenamento S3 em `https://clickhouse-public-datasets.s3.amazonaws.com/delta_lake/hits/`.
Para ler os dados da tabela no ClickHouse, execute:

```sql title="Query" theme={null}
SELECT
    URL,
    UserAgent
FROM deltaLake('https://clickhouse-public-datasets.s3.amazonaws.com/delta_lake/hits/')
WHERE URL IS NOT NULL
LIMIT 2
```

```response title="Response" theme={null}
┌─URL───────────────────────────────────────────────────────────────────┬─UserAgent─┐
│ http://auto.ria.ua/search/index.kz/jobinmoscow/detail/55089/hasimages │         1 │
│ http://auto.ria.ua/search/index.kz/jobinmoscow.ru/gosushi             │         1 │
└───────────────────────────────────────────────────────────────────────┴───────────┘
```

<div id="inserting-data">
  ### Inserção de dados
</div>

Considere uma tabela no armazenamento S3 em `s3://ch-docs-s3-bucket/people_10k/`.
Para inserir dados na tabela, primeiro habilite o recurso experimental:

```sql title="Query" theme={null}
SET allow_experimental_delta_lake_writes=1
```

Em seguida, escreva:

```sql title="Query" theme={null}
INSERT INTO TABLE FUNCTION deltaLake('s3://ch-docs-s3-bucket/people_10k/', '<access_key>', '<secret>') VALUES (10001, 'John', 'Smith', 'Male', 30)
```

```response title="Response" theme={null}
Query id: 09069b47-89fa-4660-9e42-3d8b1dde9b17

Ok.

1 row in set. Elapsed: 3.426 sec.
```

Você pode confirmar que o insert funcionou lendo a tabela novamente:

```sql title="Query" theme={null}
SELECT *
FROM deltaLake('s3://ch-docs-s3-bucket/people_10k/', '<access_key>', '<secret>')
WHERE (firstname = 'John') AND (lastname = 'Smith')
```

```response title="Response" theme={null}
Query id: 65032944-bed6-4d45-86b3-a71205a2b659

   ┌────id─┬─firstname─┬─lastname─┬─gender─┬─age─┐
1. │ 10001 │ John      │ Smith    │ Male   │  30 │
   └───────┴───────────┴──────────┴────────┴─────┘
```

<div id="virtual-columns">
  ## Colunas virtuais
</div>

* `_path` — Caminho do arquivo. Tipo: `LowCardinality(String)`.
* `_file` — Nome do arquivo. Tipo: `LowCardinality(String)`.
* `_size` — Tamanho do arquivo em bytes. Tipo: `Nullable(UInt64)`. Se o tamanho do arquivo for desconhecido, o valor é `NULL`.
* `_time` — Data e hora da última modificação do arquivo. Tipo: `Nullable(DateTime)`. Se a data e hora forem desconhecidas, o valor é `NULL`.
* `_etag` — O etag do arquivo. Tipo: `LowCardinality(String)`. Se o etag for desconhecido, o valor é `NULL`.

<div id="related">
  ## Relacionados
</div>

* [motor DeltaLake](/pt-BR/reference/engines/table-engines/integrations/deltalake)
* [função de tabela cluster do DeltaLake](/pt-BR/reference/functions/table-functions/deltalakeCluster)
