에서
이 튜토리얼을 완료하려면 일부 소프트웨어를 설정해야 합니다. 필요한 사항은 다음과 같습니다.
설치: 새로 시작하는 경우
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
브라우저 창을 열고 다음으로 이동하세요.
로 이동minioadmin:minioadmin
의 사용자 이름과 비밀번호로 로그인하세요. mc 컨테이너가 classic-books
라는 버킷을 만들었고 버킷에 개체가 하나 있는 것을 볼 수 있습니다.
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]로 연락하시거나 저희에 참여해주세요.