paint-brush
Desarrollo de soluciones de datos de próxima generación: SingleStore, MinIO y Modern Datalake Stackpor@minio
3,998 lecturas
3,998 lecturas

Desarrollo de soluciones de datos de próxima generación: SingleStore, MinIO y Modern Datalake Stack

por MinIO6m2024/06/05
Read on Terminal Reader

Demasiado Largo; Para Leer

singlestore.io es una base de datos nativa de la nube diseñada para cargas de trabajo con uso intensivo de datos. Compila consultas SQL en código de máquina y se puede implementar en varios entornos, incluidas instalaciones locales, nubes públicas/privadas y contenedores a través del operador Kubernetes.
featured image - Desarrollo de soluciones de datos de próxima generación: SingleStore, MinIO y Modern Datalake Stack
MinIO HackerNoon profile picture
0-item
1-item


Tienda única es una base de datos nativa de la nube diseñada para cargas de trabajo con uso intensivo de datos. Es un sistema de gestión de bases de datos SQL relacional y distribuido que admite ANSI SQL y es Reconocido por su velocidad en la ingesta de datos, procesamiento de transacciones y procesamiento de consultas. SingleStore puede almacenar datos relacionales, JSON, gráficos y series de tiempo, atendiendo a cargas de trabajo combinadas como HTAP y casos de uso tanto de OLTP como de OLAP. Compila consultas SQL en código de máquina y se puede implementar en varios entornos, incluidas instalaciones locales, nubes públicas/privadas y contenedores a través del operador Kubernetes.

Arquitectura moderna de Datalake

En el Arquitectura moderna de Datalake , SingleStore encaja perfectamente en la capa de procesamiento. Esta capa es donde viven los motores de procesamiento para transformaciones, el suministro de datos para otras herramientas, la exploración de datos y otros casos de uso. Las herramientas de capa de procesamiento, como SingleStore, funcionan bien con otras: a menudo, varias herramientas de capa de procesamiento beben del mismo lago de datos. Normalmente, este diseño se implementa en el caso de especialización de herramientas. Por ejemplo, las plataformas de procesamiento de datos en memoria súper rápidas como SingleStore con búsqueda vectorial híbrida y de texto completo están optimizadas para cargas de trabajo de IA. particularmente para casos de uso de IA generativa.

Requisitos previos

Para completar este tutorial, necesitarás configurar algún software. Aquí hay un desglose de lo que necesitará:


  • Motor acoplable : Esta poderosa herramienta le permite empaquetar y ejecutar aplicaciones en unidades de software estandarizadas llamadas contenedores.

  • Composición acoplable : Actúa como un orquestador, simplificando la gestión de aplicaciones de múltiples contenedores. Ayuda a definir y ejecutar aplicaciones complejas con facilidad.


Instalación: si estás empezando de nuevo, el Escritorio acoplable El instalador proporciona una cómoda solución integral para instalar Docker y Docker Compose en su plataforma específica (Windows, macOS o Linux). Esto suele resultar más fácil que descargarlos e instalarlos individualmente.


Una vez que haya instalado Docker Desktop o la combinación de Docker y Docker Compose, puede verificar su presencia ejecutando el siguiente comando en su terminal:


 docker-compose --version


También necesitará una licencia SingleStore, que puede obtener aquí .



Tome nota tanto de su clave de licencia como de su contraseña de root. Se asignará una contraseña de root aleatoria a su cuenta, pero podrá cambiarla mediante la interfaz de usuario de SingleStore.

Empezando

Este tutorial depende de este repositorio . Clona el repositorio en la ubicación que elijas.


El archivo más importante de este repositorio es docker-compose.yaml que describe un entorno Docker con una base de datos SingleStore ( singlestore ), una instancia MinIO ( minio ) y un contenedor mc que depende del servicio MinIO.


El contenedor mc contiene un script entrypoint que primero espera hasta que se pueda acceder a MinIO, agrega MinIO como host, crea el depósito classic-books , carga un archivo books.txt que contiene datos del libro, establece la política del depósito en pública y luego sale.


 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 un editor de documentos, reemplace los marcadores de posición con su clave de licencia y contraseña de root.


En una ventana de terminal, navegue hasta donde clonó el repositorio y ejecute el siguiente comando para iniciar todos los contenedores:


 docker-compose up


Abra una ventana del navegador y navegue hasta http://localhost:8080/ e inicie sesión con el nombre de usuario `root` y su contraseña de root.


Comprobar MinIO

Navegar a http://127.0.0.1:9001 para iniciar MinIO WebUI. Inicie sesión con el nombre de usuario y la contraseña de minioadmin:minioadmin . Verá que el contenedor mc ha creado un depósito llamado classic-books y que hay un objeto en el depósito.


Explorar con SQL

En SingleStore, navegue hasta el Editor SQL y ejecute lo siguiente 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 una secuencia de acciones para manejar datos relacionados con libros clásicos. Comienza estableciendo una nueva base de datos denominada books . Dentro de esta base de datos, se crea una tabla llamada classic_books , diseñada para contener detalles como título, autor y fecha de publicación.


Después de esto, se configura una canalización denominada minio para extraer datos de un depósito de S3 denominado classic-books y cargarlos en la tabla classic_books . Se definen los parámetros de configuración para esta canalización, incluida la región, la URL del punto final y las credenciales de autenticación.


Posteriormente, se activa el pipeline 'minio' para comenzar el proceso de recuperación y llenado de datos. Una vez que los datos se cargan correctamente en la tabla, una consulta SELECT recupera y muestra todos los registros almacenados en classic_books .


Una vez finalizada la extracción y visualización de datos, la canalización minio se detiene y elimina, la tabla classic_books se elimina de la base de datos books y la propia base de datos books se elimina, lo que garantiza un borrón y cuenta nueva y concluye las operaciones de gestión de datos. Este script debería ayudarle a empezar a jugar con los datos de MinIO en SingleStore.


Construya sobre esta pila

Este tutorial configura rápidamente una pila de datos sólida que permite experimentar con el almacenamiento, procesamiento y consulta de datos en el almacenamiento de objetos. La integración de SingleStore, una base de datos nativa de la nube conocida por su velocidad y versatilidad, con MinIO constituye un elemento importante en la pila de datalakes moderna.


A medida que la tendencia de la industria se inclina hacia la desagregación del almacenamiento y la computación, esta configuración permite a los desarrolladores explorar estrategias innovadoras de gestión de datos. Ya sea que esté interesado en crear aplicaciones con uso intensivo de datos, implementar análisis avanzados o experimentar con cargas de trabajo de IA, este tutorial le sirve como plataforma de lanzamiento.


Lo invitamos a aprovechar esta pila de datos, experimentar con diferentes conjuntos de datos y configuraciones y liberar todo el potencial de sus aplicaciones basadas en datos. Si tiene alguna pregunta o idea, no dude en comunicarse con nosotros en [email protected] o únase a nuestro Canal flojo .