paint-brush
次世代データソリューションの開発: SingleStore、MinIO、最新のデータレイク スタック@minio
4,002 測定値
4,002 測定値

次世代データソリューションの開発: SingleStore、MinIO、最新のデータレイク スタック

MinIO6m2024/06/05
Read on Terminal Reader

長すぎる; 読むには

singlestore.io は、データ集約型のワークロード向けに設計されたクラウドネイティブ データベースです。SQL クエリをマシン コードにコンパイルし、オンプレミス インストール、パブリック/プライベート クラウド、Kubernetes オペレーター経由のコンテナーなど、さまざまな環境にデプロイできます。
featured image - 次世代データソリューションの開発: SingleStore、MinIO、最新のデータレイク スタック
MinIO HackerNoon profile picture
0-item
1-item


シングルストアは、データ集約型のワークロード向けに設計されたクラウドネイティブデータベースです。ANSI SQLをサポートする分散型リレーショナルSQLデータベース管理システムであり、 認識されたデータの取り込み、トランザクション処理、クエリ処理のスピードが優れています。SingleStore は、リレーショナル、JSON、グラフ、時系列データを保存でき、HTAP などの混合ワークロードや、OLTP と OLAP の両方のユースケースに対応します。SQL クエリをマシン コードにコンパイルし、オンプレミス インストール、パブリック/プライベート クラウド、Kubernetes オペレーター経由のコンテナーなど、さまざまな環境に展開できます。

最新のデータレイクアーキテクチャ

の中に最新のデータレイクアーキテクチャSingleStore は処理レイヤーにぴったりです。このレイヤーには、変換、他のツールへのデータの提供、データ探索、その他のユースケースのための処理エンジンが存在します。SingleStore のような処理レイヤー ツールは、他のツールとうまく連携します。多くの場合、複数の処理レイヤー ツールが同じデータレイクからデータを取り込みます。通常、この設計はツールの特化の場合に実装されます。たとえば、ハイブリッド ベクトル検索と全文検索を備えた SingleStore のような超高速のインメモリ データ処理プラットフォームは、AI ワークロード向けに最適化されています。特に生成 AI のユースケース向け。

前提条件

このチュートリアルを完了するには、いくつかのソフトウェアをセットアップする必要があります。必要なものの詳細は次のとおりです。


  • Docker エンジン:この強力なツールを使用すると、コンテナと呼ばれる標準化されたソフトウェア ユニットにアプリケーションをパッケージ化して実行できます。

  • Docker の作成:これはオーケストレーターとして機能し、マルチコンテナ アプリケーションの管理を簡素化します。複雑なアプリケーションを簡単に定義して実行するのに役立ちます。


インストール:最初から始める場合は、 Dockerデスクトップインストーラーは、特定のプラットフォーム (Windows、macOS、または Linux) に Docker と Docker Compose の両方をインストールするための便利なワンストップ ソリューションを提供します。これは、個別にダウンロードしてインストールするよりも簡単であることがわかっています。


Docker Desktop または Docker と Docker Compose の組み合わせをインストールしたら、ターミナルで次のコマンドを実行して、それらの存在を確認できます。


 docker-compose --version


また、SingleStoreライセンスも必要になります。ここ



ライセンス キーとルート パスワードの両方を書き留めておいてください。アカウントにはランダムなルート パスワードが割り当てられますが、SingleStore UI を使用してルート パスワードを変更できます。

はじめる

このチュートリアルはこのリポジトリリポジトリを任意の場所にクローンします。


このリポジトリで最も重要なファイルは、SingleStore データベース ( singlestore )、MinIO インスタンス ( minio )、および MinIO サービスに依存するmcコンテナを含む Docker 環境を記述するdocker-compose.yamlです。


mc コンテナには、最初に MinIO がアクセス可能になるまで待機し、MinIO をホストとして追加し、 classic-booksバケットを作成し、書籍データを含むbooks.txtファイルをアップロードし、バケット ポリシーentrypointパブリックに設定して終了するエントリポイント スクリプトが含まれています。


 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:


ドキュメント エディターを使用して、プレースホルダーをライセンス キーとルート パスワードに置き換えます。


ターミナル ウィンドウで、リポジトリをクローンした場所に移動し、次のコマンドを実行してすべてのコンテナを起動します。


 docker-compose up


ブラウザウィンドウを開いて、 http://localhost:8080/ユーザー名「root」とルートパスワードでログインします。


MinIOをチェック

案内するhttp://127.0.0.1:9001 MinIO WebUI を起動します。 minioadmin:minioadminのユーザー名とパスワードでログインします。 mc コンテナがclassic-booksというバケットを作成し、バケット内にオブジェクトが 1 つあることがわかります。


SQLで探索する

SingleStoreでSQLエディタに移動し、以下を実行します。コマンド:


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


この SQL スクリプトは、古典的な書籍に関連するデータを処理するための一連のアクションを開始します。最初に、 booksという名前の新しいデータベースを作成します。このデータベース内に、タイトル、著者、発行日などの詳細を保持するように設計されたclassic_booksというテーブルが作成されます。


これに続いて、 classic-booksというラベルの付いた S3 バケットからデータを抽出し、 classic_booksテーブルにロードするためのminioというパイプラインが設定されます。このパイプラインのリージョン、エンドポイント URL、認証資格情報などの構成パラメータが定義されます。


その後、「minio」パイプラインがアクティブ化され、データの取得と入力のプロセスが開始されます。データがテーブルに正常にロードされると、SELECT クエリによってclassic_booksに保存されているすべてのレコードが取得されて表示されます。


データの抽出と表示が完了したら、 minioパイプラインが停止して削除され、 classic_booksテーブルがbooksデータベースから削除され、 booksデータベース自体が削除されて、クリーンな状態が確保され、データ管理操作が完了します。このスクリプトを使用すると、SingleStore の MinIO でデータを操作し始めることができます。


このスタック上に構築する

このチュートリアルでは、オブジェクト ストレージでのデータの保存、処理、クエリの実験を可能にする堅牢なデータ スタックを迅速に設定できます。速度と汎用性で知られるクラウド ネイティブ データベースである SingleStore と MinIO の統合は、最新のデータレイク スタックの重要な基盤となります。


業界のトレンドがストレージとコンピューティングの分離に向かう中、このセットアップにより、開発者は革新的なデータ管理戦略を模索できるようになります。データ集約型アプリケーションの構築、高度な分析の実装、AI ワークロードの実験などに興味がある場合、このチュートリアルは出発点として役立ちます。


このデータスタックを構築し、さまざまなデータセットや構成を試して、データ駆動型アプリケーションの潜在能力を最大限に引き出してください。ご質問やご意見がございましたら、[email protected]までお気軽にお問い合わせいただくか、 Slackチャンネル