paint-brush
Développer des solutions de données de nouvelle génération : SingleStore, MinIO et la pile Datalake modernepar@minio
3,941 lectures
3,941 lectures

Développer des solutions de données de nouvelle génération : SingleStore, MinIO et la pile Datalake moderne

par MinIO6m2024/06/05
Read on Terminal Reader

Trop long; Pour lire

singlestore.io est une base de données cloud native conçue pour les charges de travail gourmandes en données. Il compile les requêtes SQL en code machine et peut être déployé dans divers environnements, notamment des installations sur site, des cloud publics/privés et des conteneurs via l'opérateur Kubernetes.
featured image - Développer des solutions de données de nouvelle génération : SingleStore, MinIO et la pile Datalake moderne
MinIO HackerNoon profile picture
0-item
1-item


Magasin unique est une base de données cloud native conçue pour les charges de travail gourmandes en données. Il s'agit d'un système de gestion de base de données SQL relationnel distribué qui prend en charge ANSI SQL et est reconnu pour sa rapidité d'absorption des données, de traitement des transactions et de traitement des requêtes. SingleStore peut stocker des données relationnelles, JSON, graphiques et chronologiques, répondant aux charges de travail mixtes telles que HTAP et aux cas d'utilisation OLTP et OLAP. Il compile les requêtes SQL en code machine et peut être déployé dans divers environnements, notamment des installations sur site, des cloud publics/privés et des conteneurs via l'opérateur Kubernetes.

Architecture de lac de données moderne

Dans le Architecture Datalake moderne , SingleStore s’intègre parfaitement dans la couche de traitement. Cette couche est l'endroit où vivent les moteurs de traitement pour les transformations, fournissant des données à d'autres outils, à l'exploration de données et à d'autres cas d'utilisation. Les outils de couche de traitement, comme SingleStore, fonctionnent bien avec d'autres : souvent, plusieurs outils de couche de traitement sirotent le même lac de données. Habituellement, cette conception est mise en œuvre dans le cas d’une spécialisation des outils. Par exemple, les plates-formes de traitement de données en mémoire ultra-rapides comme SingleStore avec recherche hybride vectorielle et en texte intégral sont optimisées pour les charges de travail d'IA, particulièrement pour les cas d’utilisation de l’IA générative.

Conditions préalables

Pour terminer ce didacticiel, vous devrez configurer certains logiciels. Voici une liste de ce dont vous aurez besoin :


  • Moteur Docker : Cet outil puissant vous permet de regrouper et d'exécuter des applications dans des unités logicielles standardisées appelées conteneurs.

  • Docker Composer : Celui-ci agit comme un orchestrateur, simplifiant la gestion des applications multi-conteneurs. Il permet de définir et d’exécuter facilement des applications complexes.


Installation : Si vous repartez à zéro, le Bureau Docker Le programme d'installation fournit une solution unique et pratique pour installer Docker et Docker Compose sur votre plate-forme spécifique (Windows, macOS ou Linux). Cela s’avère souvent plus simple que de les télécharger et de les installer individuellement.


Une fois que vous avez installé Docker Desktop ou la combinaison de Docker et Docker Compose, vous pouvez vérifier leur présence en exécutant la commande suivante dans votre terminal :


 docker-compose --version


Vous aurez également besoin d'une licence SingleStore, que vous pouvez obtenir ici .



Gardez note de votre clé de licence et de votre mot de passe root. Un mot de passe root aléatoire sera attribué à votre compte, mais vous pourrez modifier votre mot de passe root à l'aide de l'interface utilisateur SingleStore.

Commencer

Ce tutoriel dépend de ce référentiel . Clonez le dépôt dans un emplacement de votre choix.


Le fichier le plus important de ce dépôt est le docker-compose.yaml qui décrit un environnement Docker avec une base de données SingleStore ( singlestore ), une instance MinIO ( minio ) et un conteneur mc qui dépend du service MinIO.


Le conteneur mc contient un script entrypoint qui attend d'abord que MinIO soit accessible, ajoute MinIO en tant qu'hôte, crée le compartiment classic-books , télécharge un fichier books.txt contenant les données du livre, définit la stratégie du compartiment sur publique, puis se ferme.


 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:


À l’aide d’un éditeur de documents, remplacez les espaces réservés par votre clé de licence et votre mot de passe root.


Dans une fenêtre de terminal, accédez à l'endroit où vous avez cloné le dépôt et exécutez la commande suivante pour démarrer tous les conteneurs :


 docker-compose up


Ouvrez une fenêtre de navigateur, accédez à http://localhost:8080/ , et connectez-vous avec le nom d'utilisateur « root » et votre mot de passe root.


Vérifier MinIO

Aller vers http://127.0.0.1:9001 pour lancer l'interface Web MinIO. Connectez-vous avec le nom d'utilisateur et le mot de passe minioadmin:minioadmin . Vous verrez que le conteneur mc a créé un bucket appelé classic-books et qu'il y a un objet dans le bucket.


Explorer avec SQL

Dans SingleStore, accédez à l'éditeur SQL et exécutez ce qui suit commandes :


 -- 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;


Ce script SQL initie une séquence d'actions pour gérer les données liées aux livres classiques. Cela commence par établir une nouvelle base de données nommée books . Dans cette base de données, une table appelée classic_books est créée, conçue pour contenir des détails tels que le titre, l'auteur et la date de publication.


Suite à cela, un pipeline nommé minio est configuré pour extraire les données d'un compartiment S3 étiqueté classic-books et les charger dans la table classic_books . Les paramètres de configuration de ce pipeline, notamment la région, l'URL du point de terminaison et les informations d'authentification, sont définis.


Par la suite, le pipeline « minio » est activé pour commencer le processus de récupération et de remplissage des données. Une fois les données chargées avec succès dans la table, une requête SELECT récupère et affiche tous les enregistrements stockés dans classic_books .


Une fois l'extraction et la visualisation des données terminées, le pipeline minio est arrêté et supprimé, la table classic_books est supprimée de la base de données books et la base de données books elle-même est supprimée, garantissant ainsi une table rase et concluant les opérations de gestion des données. Ce script devrait vous permettre de commencer à jouer avec les données dans MinIO dans SingleStore.


Construisez sur cette pile

Ce didacticiel met rapidement en place une pile de données robuste qui permet d'expérimenter le stockage, le traitement et l'interrogation de données dans le stockage d'objets. L'intégration de SingleStore, une base de données cloud native connue pour sa rapidité et sa polyvalence, avec MinIO constitue une brique importante dans la pile datalake moderne.


Alors que la tendance du secteur s'oriente vers la désagrégation du stockage et du calcul, cette configuration permet aux développeurs d'explorer des stratégies innovantes de gestion des données. Que vous souhaitiez créer des applications gourmandes en données, mettre en œuvre des analyses avancées ou expérimenter des charges de travail d'IA, ce didacticiel sert de rampe de lancement.


Nous vous invitons à vous appuyer sur cette pile de données, à expérimenter différents ensembles de données et configurations et à libérer tout le potentiel de vos applications basées sur les données. Pour toute question ou idée, n'hésitez pas à nous contacter à [email protected] ou à rejoindre notre Chaîne Slack .