Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/marcoaureliomenezes/ice-lakehouse
Code and doker definitions for an Lakehouse using Minio, Apacha Iceber, Nessie and Dremio.
https://github.com/marcoaureliomenezes/ice-lakehouse
Last synced: about 2 months ago
JSON representation
Code and doker definitions for an Lakehouse using Minio, Apacha Iceber, Nessie and Dremio.
- Host: GitHub
- URL: https://github.com/marcoaureliomenezes/ice-lakehouse
- Owner: marcoaureliomenezes
- Created: 2024-09-08T19:43:54.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2024-10-17T02:35:52.000Z (3 months ago)
- Last Synced: 2024-10-19T04:56:18.197Z (3 months ago)
- Language: Jupyter Notebook
- Size: 69.3 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Iceberg Lakehouse
Esse repositório contém um Lakehouse construído utilizando as seguintes tecnologias:
- **Apache Spark**: Motor de processamento de dados distribuído.
- **Minio**: Object Storage para armazenamento de dados em formato de objetos similar ao S3.
- **Apache Iceberg**: Formato de tabela para armazenamento de dados em camadas.
- **Projeto Nessie**: Catalogo com controle de versão para tabelas Iceberg.
- **Dremio**: Motor de consulta SQL para acesso aos dados armazenados no Lakehouse.
- **Jupyter**: Ambiente de desenvolvimento para execução de código Python e Scala.## 1. Introdução
## 2. Configurações Configuração de Source em Dremio
### Source Nessie
- Name: `nessie`
- Nessie Endpoint URL: `http://nessie:19120/api/v2`
- Nessie Authentication Type: `None`
- AWS Access Key: `access_key`
- AWS Access Secret: `access_secret`
- Connection Properties:
- `fs.s3a.path.style.access true`
- `dremio.s3.compat true`
- `fs.s3a.endpoint minio:9000`### Source Minio
- Name: `minio`
- AWS Access Key: `access_key`
- AWS Access Secret: `access_secret`- Check `Enable compatibility mode`
- Connection Properties:
- `fs.s3a.path.style.access true`
- `dremio.s3.compat true`
- `fs.s3a.endpoint minio:9000`Esse repositório contém um Lakehouse construído utilizando as seguintes tecnologias:
- **Apache Spark**: Motor de processamento de dados distribuído.
- **Minio**: Object Storage para armazenamento de dados em formato de objetos similar ao S3.
- **Apache Iceberg**: Formato de tabela para armazenamento de dados em camadas.
- **Projeto Nessie**: Catalogo com controle de versão para tabelas Iceberg.
- **Dremio**: Motor de consulta SQL para acesso aos dados armazenados no Lakehouse.### Copy-on-write
Whenever there is a write operation, the data is written to a new file and the old file is not modified. This is called copy-on-write. This is a very important concept in Iceberg.
## Tabelas Iceberg
### Merge-on-read
When a read operation is performed, the data is read from multiple files and merged on the fly. This is called merge-on-read. This is a very important concept in Iceberg.
### Iceberg TBLPROPERTIES
- `write.delete.mode`=`copy-on-write`
- `write.update.mode`=`merge-on-read`
- `write.merge.mode`=`merge-on-read`### Parquet Vetorization
- `read.parquet.vectorization.enabled`=`true`
- `write.parquet.compression-codec`=`snappy`
- `write.format.default`=`parquet`
- `write.delete.format.default`=`avro`### Cleaning up Metadata Files
- `write.metadata.delete-after.enabled`=`true`
- `write.metadata.previous-versions.max`=`50`### Column Metrics Tracking
- CALL prod.system.expire_snapshots(
table => 'default.iceberg_table',
older_than => now(),
retain_last => 10
)