paint-brush
차세대 데이터 솔루션 개발: SingleStore, MinIO 및 최신 Datalake 스택~에 의해@minio
4,002 판독값
4,002 판독값

차세대 데이터 솔루션 개발: SingleStore, MinIO 및 최신 Datalake 스택

~에 의해 MinIO6m2024/06/05
Read on Terminal Reader

너무 오래; 읽다

Singlestore.io는 데이터 집약적인 워크로드를 위해 설계된 클라우드 기반 데이터베이스입니다. SQL 쿼리를 기계어 코드로 컴파일하고 온프레미스 설치, 퍼블릭/프라이빗 클라우드, Kubernetes 운영자를 통한 컨테이너 등 다양한 환경에 배포할 수 있습니다.
featured image - 차세대 데이터 솔루션 개발: SingleStore, MinIO 및 최신 Datalake 스택
MinIO HackerNoon profile picture
0-item
1-item


단일스토어 데이터 집약적인 워크로드를 위해 설계된 클라우드 기반 데이터베이스입니다. ANSI SQL을 지원하는 분산 관계형 SQL 데이터베이스 관리 시스템입니다. 인식됨 데이터 수집, 트랜잭션 처리 및 쿼리 처리 속도가 빠릅니다. SingleStore는 관계형, JSON, 그래프 및 시계열 데이터를 저장하여 HTAP와 같은 혼합 워크로드와 OLTP 및 OLAP 사용 사례를 모두 충족할 수 있습니다. SQL 쿼리를 기계어 코드로 컴파일하고 온프레미스 설치, 퍼블릭/프라이빗 클라우드, Kubernetes 운영자를 통한 컨테이너 등 다양한 환경에 배포할 수 있습니다.

최신 데이터레이크 아키텍처

에서 최신 데이터레이크 아키텍처 , SingleStore는 처리 계층에 딱 맞습니다. 이 계층은 변환을 위한 처리 엔진, 다른 도구를 위한 데이터 제공, 데이터 탐색 및 기타 사용 사례가 있는 곳입니다. SingleStore와 같은 처리 계층 도구는 다른 도구와 잘 작동합니다. 종종 여러 처리 계층 도구가 동일한 데이터레이크에서 가져옵니다. 일반적으로 이러한 설계는 도구 전문화의 경우 구현됩니다. 예를 들어, 하이브리드 벡터 및 전체 텍스트 검색 기능을 갖춘 SingleStore와 같은 초고속 인 메모리 데이터 처리 플랫폼은 AI 워크로드에 최적화되어 있습니다. 특히 생성적 AI 사용 사례를 위한 것입니다.

전제조건

이 튜토리얼을 완료하려면 일부 소프트웨어를 설정해야 합니다. 필요한 사항은 다음과 같습니다.


  • 도커 엔진 : 이 강력한 도구를 사용하면 컨테이너라고 하는 표준화된 소프트웨어 단위로 애플리케이션을 패키징하고 실행할 수 있습니다.

  • 도커 작성 : 이는 오케스트레이터 역할을 하여 다중 컨테이너 애플리케이션의 관리를 단순화합니다. 복잡한 애플리케이션을 쉽게 정의하고 실행하는 데 도움이 됩니다.


설치: 새로 시작하는 경우 도커 데스크탑 설치 프로그램은 특정 플랫폼(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에 액세스할 수 있을 때까지 entrypoint , MinIO를 호스트로 추가하고, classic-books 버킷을 생성하고, 도서 데이터가 포함된 books.txt 파일을 업로드하고, 버킷 정책을 공개로 설정한 다음 종료하는 진입점 스크립트가 포함되어 있습니다.


 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 라는 버킷을 만들었고 버킷에 개체가 하나 있는 것을 볼 수 있습니다.


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]로 연락하시거나 저희에 참여해주세요. 슬랙 채널 .