paint-brush
Entwicklung von Datenlösungen der nächsten Generation: SingleStore, MinIO und der moderne Datalake-Stackvon@minio
4,002 Lesungen
4,002 Lesungen

Entwicklung von Datenlösungen der nächsten Generation: SingleStore, MinIO und der moderne Datalake-Stack

von MinIO6m2024/06/05
Read on Terminal Reader

Zu lang; Lesen

singlestore.io ist eine Cloud-native Datenbank, die für datenintensive Workloads entwickelt wurde. Sie kompiliert SQL-Abfragen in Maschinencode und kann in verschiedenen Umgebungen eingesetzt werden, darunter lokale Installationen, öffentliche/private Clouds und Container über den Kubernetes-Operator.
featured image - Entwicklung von Datenlösungen der nächsten Generation: SingleStore, MinIO und der moderne Datalake-Stack
MinIO HackerNoon profile picture
0-item
1-item


EinzelStore ist eine Cloud-native Datenbank, die für datenintensive Workloads entwickelt wurde. Es handelt sich um ein verteiltes, relationales SQL-Datenbankverwaltungssystem, das ANSI SQL unterstützt und anerkannt für seine Geschwindigkeit bei der Datenaufnahme, Transaktionsverarbeitung und Abfrageverarbeitung. SingleStore kann relationale, JSON-, Diagramm- und Zeitreihendaten speichern und ist für gemischte Workloads wie HTAP sowie OLTP- und OLAP-Anwendungsfälle geeignet. Es kompiliert SQL-Abfragen in Maschinencode und kann in verschiedenen Umgebungen eingesetzt werden, darunter lokale Installationen, öffentliche/private Clouds und Container über den Kubernetes-Operator.

Moderne Datalake-Architektur

Im Moderne Datalake-Architektur , SingleStore passt genau in die Verarbeitungsschicht. In dieser Schicht befinden sich Verarbeitungsmaschinen für Transformationen, die Daten für andere Tools bereitstellen, Datenexploration und andere Anwendungsfälle. Tools der Verarbeitungsschicht wie SingleStore arbeiten gut mit anderen zusammen: Oft greifen mehrere Tools der Verarbeitungsschicht auf denselben Datensee zurück. Normalerweise wird dieses Design im Fall einer Tool-Spezialisierung implementiert. Beispielsweise sind superschnelle In-Memory-Datenverarbeitungsplattformen wie SingleStore mit hybrider Vektor- und Volltextsuche für KI-Workloads optimiert. insbesondere für Anwendungsfälle generativer KI.

Voraussetzungen

Um dieses Tutorial abzuschließen, müssen Sie einige Softwareprogramme installieren. Hier ist eine Übersicht über die benötigten Tools:


  • Docker-Engine : Mit diesem leistungsstarken Tool können Sie Anwendungen in standardisierten Softwareeinheiten, sogenannten Containern, verpacken und ausführen.

  • Docker Compose : Dies fungiert als Orchestrator und vereinfacht die Verwaltung von Anwendungen mit mehreren Containern. Es hilft dabei, komplexe Anwendungen problemlos zu definieren und auszuführen.


Installation: Wenn Sie neu beginnen, Docker-Desktop Das Installationsprogramm bietet eine praktische Komplettlösung für die Installation von Docker und Docker Compose auf Ihrer spezifischen Plattform (Windows, macOS oder Linux). Dies erweist sich oft als einfacher, als sie einzeln herunterzuladen und zu installieren.


Nachdem Sie Docker Desktop oder die Kombination aus Docker und Docker Compose installiert haben, können Sie deren Vorhandensein überprüfen, indem Sie den folgenden Befehl in Ihrem Terminal ausführen:


 docker-compose --version


Sie benötigen außerdem eine SingleStore-Lizenz, die Sie erhalten können Hier .



Notieren Sie sich Ihren Lizenzschlüssel und Ihr Root-Passwort. Ihrem Konto wird ein zufälliges Root-Passwort zugewiesen, Sie können Ihr Root-Passwort jedoch über die SingleStore-Benutzeroberfläche ändern.

Erste Schritte

Dieses Tutorial hängt ab von dieses Repository . Klonen Sie das Repo an einen Ort Ihrer Wahl.


Die wichtigste Datei in diesem Repo ist docker-compose.yaml , die eine Docker-Umgebung mit einer SingleStore-Datenbank ( singlestore ), einer MinIO-Instanz ( minio ) und einem mc Container beschreibt, der vom MinIO-Dienst abhängt.


Der mc-Container enthält ein entrypoint , das zunächst wartet, bis auf MinIO zugegriffen werden kann, MinIO als Host hinzufügt, den Bucket classic-books erstellt, eine Datei books.txt mit Buchdaten hochlädt, die Bucket-Richtlinie auf „öffentlich“ setzt und dann beendet wird.


 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:


Ersetzen Sie die Platzhalter mithilfe eines Dokumenteditors durch Ihren Lizenzschlüssel und Ihr Root-Passwort.


Navigieren Sie in einem Terminalfenster zu dem Ort, an dem Sie das Repository geklont haben, und führen Sie den folgenden Befehl aus, um alle Container zu starten:


 docker-compose up


Öffnen Sie ein Browserfenster und navigieren Sie zu http://localhost:8080/ , und melden Sie sich mit dem Benutzernamen „root“ und Ihrem Root-Passwort an.


Überprüfen Sie MinIO

Navigieren Sie zu http://127.0.0.1:9001 um die MinIO-WebUI zu starten. Melden Sie sich mit dem Benutzernamen und dem Passwort für minioadmin:minioadmin an. Sie werden sehen, dass der mc-Container einen Bucket mit dem Namen classic-books erstellt hat und dass sich ein Objekt im Bucket befindet.


Erkunden mit SQL

Navigieren Sie in SingleStore zum SQL Editor und führen Sie den folgenden Befehle :


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


Dieses SQL-Skript leitet eine Abfolge von Aktionen zur Verarbeitung von Daten zu klassischen Büchern ein. Es beginnt mit der Erstellung einer neuen Datenbank mit dem Namen „ books . Innerhalb dieser Datenbank wird eine Tabelle mit dem Namen classic_books erstellt, die Details wie Titel, Autor und Veröffentlichungsdatum enthält.


Anschließend wird eine Pipeline namens minio eingerichtet, um Daten aus einem S3-Bucket mit der Bezeichnung classic-books zu extrahieren und in die Tabelle classic_books zu laden. Konfigurationsparameter für diese Pipeline, einschließlich Region, Endpunkt-URL und Authentifizierungsdaten, werden definiert.


Anschließend wird die „minio“-Pipeline aktiviert, um den Prozess des Datenabrufs und der Datenauffüllung zu starten. Sobald die Daten erfolgreich in die Tabelle geladen wurden, ruft eine SELECT-Abfrage alle in classic_books gespeicherten Datensätze ab und zeigt sie an.


Nach Abschluss der Datenextraktion und -anzeige wird die minio Pipeline angehalten und entfernt, die Tabelle classic_books wird aus der books gelöscht und die books selbst wird entfernt, um eine saubere Grundlage zu gewährleisten und die Datenverwaltungsvorgänge abzuschließen. Mit diesem Skript können Sie mit Daten in MinIO in SingleStore herumspielen.


Bauen Sie auf diesem Stapel auf

Dieses Tutorial richtet schnell einen robusten Datenstapel ein, der das Experimentieren mit dem Speichern, Verarbeiten und Abfragen von Daten im Objektspeicher ermöglicht. Die Integration von SingleStore, einer Cloud-nativen Datenbank, die für ihre Geschwindigkeit und Vielseitigkeit bekannt ist, mit MinIO bildet einen wichtigen Baustein im modernen Datalake-Stapel.


Da der Branchentrend zur Trennung von Speicher und Rechenleistung tendiert, ermöglicht dieses Setup Entwicklern, innovative Datenverwaltungsstrategien zu erkunden. Egal, ob Sie datenintensive Anwendungen erstellen, erweiterte Analysen implementieren oder mit KI-Workloads experimentieren möchten, dieses Tutorial dient als Startrampe.


Wir laden Sie ein, auf diesem Datenstapel aufzubauen, mit verschiedenen Datensätzen und Konfigurationen zu experimentieren und das volle Potenzial Ihrer datengesteuerten Anwendungen auszuschöpfen. Bei Fragen oder Ideen können Sie sich gerne an uns unter [email protected] wenden oder unserem Slack-Kanal .