paint-brush
Desenvolvendo soluções de dados de última geração: SingleStore, MinIO e Modern Datalake Stackpor@minio
4,002 leituras
4,002 leituras

Desenvolvendo soluções de dados de última geração: SingleStore, MinIO e Modern Datalake Stack

por MinIO6m2024/06/05
Read on Terminal Reader

Muito longo; Para ler

singlestore.io é um banco de dados nativo da nuvem projetado para cargas de trabalho com uso intensivo de dados. Ele compila consultas SQL em código de máquina e pode ser implantado em vários ambientes, incluindo instalações locais, nuvens públicas/privadas e contêineres por meio do operador Kubernetes.
featured image - Desenvolvendo soluções de dados de última geração: SingleStore, MinIO e Modern Datalake Stack
MinIO HackerNoon profile picture
0-item
1-item


Loja única é um banco de dados nativo da nuvem projetado para cargas de trabalho com uso intensivo de dados. É um sistema de gerenciamento de banco de dados SQL relacional e distribuído que suporta ANSI SQL e é reconhecido por sua velocidade na ingestão de dados, processamento de transações e processamento de consultas. O SingleStore pode armazenar dados relacionais, JSON, gráficos e de série temporal, atendendo a cargas de trabalho combinadas como HTAP e casos de uso de OLTP e OLAP. Ele compila consultas SQL em código de máquina e pode ser implantado em vários ambientes, incluindo instalações locais, nuvens públicas/privadas e contêineres por meio do operador Kubernetes.

Arquitetura moderna do Datalake

No Arquitetura moderna do Datalake , o SingleStore se encaixa perfeitamente na camada de processamento. Essa camada é onde residem os mecanismos de processamento para transformações, fornecimento de dados para outras ferramentas, exploração de dados e outros casos de uso. Ferramentas de camada de processamento, como SingleStore, funcionam bem com outras: muitas vezes, várias ferramentas de camada de processamento extraem do mesmo datalake. Normalmente, este projeto é implementado no caso de especialização de ferramentas. Por exemplo, plataformas de processamento de dados na memória super-rápidas, como SingleStore, com vetor híbrido e pesquisa de texto completo, são otimizadas para cargas de trabalho de IA, particularmente para casos de uso de IA generativa.

Pré-requisitos

Para concluir este tutorial, você precisará configurar algum software. Aqui está uma análise do que você precisa:


  • Motor Docker : esta ferramenta poderosa permite empacotar e executar aplicativos em unidades de software padronizadas chamadas contêineres.

  • Composição do Docker : atua como um orquestrador, simplificando o gerenciamento de aplicativos com vários contêineres. Ajuda a definir e executar aplicativos complexos com facilidade.


Instalação: Se você estiver começando do zero, o Área de Trabalho Docker O instalador fornece uma solução conveniente e completa para instalar o Docker e o Docker Compose em sua plataforma específica (Windows, macOS ou Linux). Muitas vezes, isso é mais fácil do que baixá-los e instalá-los individualmente.


Depois de instalar o Docker Desktop ou a combinação do Docker e do Docker Compose, você pode verificar sua presença executando o seguinte comando em seu terminal:


 docker-compose --version


Você também precisará de uma licença SingleStore, que pode ser obtida aqui .



Anote sua chave de licença e sua senha root. Uma senha root aleatória será atribuída à sua conta, mas você poderá alterar sua senha root usando a UI do SingleStore.

Começando

Este tutorial depende este repositório . Clone o repositório em um local de sua escolha.


O arquivo mais importante neste repositório é o docker-compose.yaml que descreve um ambiente Docker com um banco de dados SingleStore ( singlestore ), uma instância MinIO ( minio ) e um contêiner mc que depende do serviço MinIO.


O contêiner mc contém um script entrypoint que primeiro espera até que o MinIO esteja acessível, adiciona o MinIO como host, cria o bucket classic-books , carrega um arquivo books.txt contendo dados do livro, define a política do bucket como pública e, em seguida, sai.


 version: '3.7' services: singlestore: image: 'singlestore/cluster-in-a-box' ports: - "3306:3306" - "8080:8080" environment: LICENSE_KEY: "" ROOT_PASSWORD: "" START_AFTER_INIT: 'Y' minio: image: minio/minio:latest ports: - "9000:9000" - "9001:9001" volumes: - data1-1:/data1 - data1-2:/data2 environment: MINIO_ROOT_USER: minioadmin MINIO_ROOT_PASSWORD: minioadmin command: ["server", "/data1", "/data2", "--console-address", ":9001"] mc: image: minio/mc:latest depends_on: - minio entrypoint: > /bin/sh -c " until (/usr/bin/mc config host add --quiet --api s3v4 local http://minio:9000 minioadmin minioadmin) do echo '...waiting...' && sleep 1; done; echo 'Title,Author,Year' > books.txt; echo 'The Catcher in the Rye,JD Salinger,1945' >> books.txt; echo 'Pride and Prejudice,Jane Austen,1813' >> books.txt; echo 'Of Mice and Men,John Steinbeck,1937' >> books.txt; echo 'Frankenstein,Mary Shelley,1818' >> books.txt; /usr/bin/mc cp books.txt local/classic-books/books.txt; /usr/bin/mc policy set public local/classic-books; exit 0; " volumes: data1-1: data1-2:


Usando um editor de documentos, substitua os espaços reservados pela sua chave de licença e senha root.


Em uma janela de terminal, navegue até onde você clonou o repositório e execute o seguinte comando para iniciar todos os contêineres:


 docker-compose up


Abra uma janela do navegador e navegue até http://localhost:8080/ e faça login com o nome de usuário `root` e sua senha root.


Verifique MinIO

Navegar para http://127.0.0.1:9001 para iniciar o MinIO WebUI. Faça login com o nome de usuário e senha para minioadmin:minioadmin . Você verá que o contêiner mc criou um balde chamado classic-books e que há um objeto no balde.


Explorar com SQL

No SingleStore, navegue até o Editor SQL e execute o seguinte comandos :


 -- Create a new database named 'books' CREATE DATABASE books; -- Switch to the 'books' database USE books; -- Create a table named 'classic_books' to store information about classic books CREATE TABLE classic_books ( title VARCHAR(255), author VARCHAR(255), date VARCHAR(255) ); -- Define a pipeline named 'minio' to load data from an S3 bucket called 'classic-books' -- The pipeline loads data into the 'classic_books' table CREATE PIPELINE IF NOT EXISTS minio AS LOAD DATA S3 'classic-books' CONFIG '{"region": "us-east-1", "endpoint_url":"http://minio:9000/"}' CREDENTIALS '{"aws_access_key_id": "minioadmin", "aws_secret_access_key": "minioadmin"}' INTO TABLE classic_books FIELDS TERMINATED BY ','; -- Start the 'minio' pipeline to initiate data loading START PIPELINE minio; -- Retrieve and display all records from the 'classic_books' table SELECT * FROM classic_books; -- Drop the 'minio' pipeline to stop data loading DROP PIPELINE minio; -- Drop the 'classic_books' table to remove it from the database DROP TABLE classic_books; -- Drop the 'books' database to remove it entirely DROP DATABASE books;


Este script SQL inicia uma sequência de ações para tratar dados relacionados a livros clássicos. Começa estabelecendo um novo banco de dados chamado books . Dentro desse banco de dados, é criada uma tabela chamada classic_books , projetada para conter detalhes como título, autor e data de publicação.


Em seguida, um pipeline chamado minio é configurado para extrair dados de um bucket S3 denominado classic-books e carregá-los na tabela classic_books . Os parâmetros de configuração para este pipeline, incluindo região, URL do endpoint e credenciais de autenticação, são definidos.


Posteriormente, o pipeline 'minio' é ativado para iniciar o processo de recuperação e população de dados. Depois que os dados são carregados com sucesso na tabela, uma consulta SELECT recupera e exibe todos os registros armazenados em classic_books .


Após a conclusão da extração e visualização dos dados, o pipeline minio é interrompido e removido, a tabela classic_books é eliminada do banco de dados books e o próprio banco de dados books é removido, garantindo uma lousa limpa e concluindo as operações de gerenciamento de dados. Este script deve ajudá-lo a começar a brincar com dados no MinIO no SingleStore.


Construa nesta pilha

Este tutorial configura rapidamente uma pilha de dados robusta que permite a experimentação com armazenamento, processamento e consulta de dados no armazenamento de objetos. A integração do SingleStore, um banco de dados nativo da nuvem conhecido por sua velocidade e versatilidade, com o MinIO constitui um elemento importante na pilha moderna de datalake.


À medida que a tendência da indústria se inclina para a desagregação do armazenamento e da computação, esta configuração permite aos programadores explorar estratégias inovadoras de gestão de dados. Esteja você interessado em criar aplicativos com uso intensivo de dados, implementar análises avançadas ou experimentar cargas de trabalho de IA, este tutorial serve como plataforma de lançamento.


Convidamos você a desenvolver essa pilha de dados, experimentar diferentes conjuntos de dados e configurações e liberar todo o potencial de seus aplicativos orientados a dados. Para qualquer dúvida ou ideia, sinta-se à vontade para entrar em contato conosco pelo e-mail [email protected] ou junte-se ao nosso Canal Slack .