O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

MongoDB Atlas Data Lake 집중 분석 [MongoDB]

23 visualizações

Publicada em

MongoDB Atlas Data Lake는 MongoDB Atlas가 제공하는 새로운 서비스입니다.
많은 고객들이 S3, GCP, Azure Blobs와 같은 저렴한 오브젝트 스토리지에 장기 보관용 데이터를 저장합니다.
하지만 그 중 다수는 의사 결정을 위한 분석이 필요 시 , 효과적으로 해당 데이터를 활용할 수 있는 강력한 시스템이나 도구가 없습니다. MongoDB Atlas Data Lake는 장기간 저장된 고객의 데이터 분석을 가능하게 하며, 해당 비즈니스에 의미있고, 가치있는 정보를 제공할 수 있습니다.

해당 세션에서는 MongoDB Atlas Data Lake에서 사용할 수 있는 기능과 그 구현 방법에 대해 자세히 설명합니다.

Publicada em: Tecnologia
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

MongoDB Atlas Data Lake 집중 분석 [MongoDB]

  1. 1. Atlas Data Lake 기술 심층 분석 Stephen Steneker 기술 서비스 담당 디렉터
  2. 2. Atlas Data Lake 기술 심층 분석 1. 설계 목표 2. Atlas Data Lake 생성 방법 3. Atlas Data Lake 아키텍처 4. 추가 개선
  3. 3. 설계 목표
  4. 4. Atlas Data Lake를 구축하려는 이유 • 기업들은 엄청난 양의 데이터를 보유하고 있습니다. • 클라우드 스토리지는 장기 데이터를 보관하는 데 비용 효과적이지만 • 운영이 까다롭습니다. IDC는 2025년이면 전 세계 데이터가 175제타바이트에 육박하게 될 것이고, 이 가운데 49%는 퍼블릭 클라우드에 상주할 것으로 전망하고 있습니다.
  5. 5. Atlas Data Lake의 이점 액세스– 다양한 형식으로 오랜 기간을 저장하는 데이터 쿼리 실행 - MQL을 이용한 쿼리 분석 - 온디맨드 방식을 기반으로 데이터 분석
  6. 6. Atlas Data Lake의 특징 다양한 데이터 형식 확장성 MongoDB 쿼리 언어 서버리스 온디맨드 Atlas에 통합
  7. 7. 구현 요구 사항 • MongoDB와 동일한 인터페이스 및 작동 방식 • 장기 실행 쿼리를 처리 • 고객 데이터에 안전하게 액세스 • 고객이 완벽한 제어권을 보유 • 대량의 데이터에 대한 쿼리 실행 지원 • 효율적인 리소스 사용 • 다양한 데이터 형식 지원
  8. 8. MongoDB 와이어 프로토콜 지원 요구 사항 MongoDB와 유사한 외관 및 작동 방식 솔루션 GO기반의 TCP 서버를 실행 MongoDB Go Driver의 와이어 프로토콜 패키지 사용 MongoDB Go Driver의 BSON 패키지 사용
  9. 9. MongoDB 쿼리 언어(MQL) 지원 요구 사항 MongoDB와 유사한 인터페이스 및 작동 방식 장기 실행 쿼리 처리 솔루션 읽기 전용 mongod 서버에서 명령어 실행 커서와 getMore 명령 지원 포함 서버의 집계(aggregation) 엔진 사용
  10. 10. MongoDB 보안 모델 요구 사항 MongoDB와 유사한 인터페이스 및 작동 방식 고객 데이터에 안전하게 액세스 솔루션 MongoDB Atlas에서 사용자 구성 TLS와 SNI의 동시 사용 필요성
  11. 11. 고객 데이터 보안 요구 사항 고객이 완벽한 제어권을 보유 솔루션 사용자에게 IAM 역할 제공 버킷 구성 Atlas에서 사용자 구성
  12. 12. 확장 가능한 처리 요구 사항 대량의 데이터에 대한 쿼리 실행 지원 효율적인 리소스 사용 솔루션 분산된 MQL 처리 지능적인 파일 타겟팅
  13. 13. 데이터 형식 요구 사항 다양한 데이터 형식 지원 솔루션 Apache Avro Apache Parquet BSON JSON CSV/TSV (더 많은 형식 추가 중)
  14. 14. Atlas Data Lake 생성 방법
  15. 15. 데이터 레이아웃 제어 저장소 데이터베이스 컬렉션 데이터 소스 컬렉션컬렉션 저장소 저장소 데이터베 이스 데이터 소스 데이터 소스 데이터 소스
  16. 16. 사전 조건 • MongoDB Atlas M10+ 클러스터 • 동일한 AWS 계정에 하나 이상의 S3 버킷 • AWS 계정에 액세스하거나 IAM 역할 생성 권한이 있는 관리 콘솔에 액세스할 수 있도록 AWS CLI를 구성
  17. 17. Data Lake 시나리오 • 고객 데이터(JSON) • 2018 ~ 2019년 동안의 인보이스 데이터(Parquet 형식) • 인보이스 데이터(JSON gzip 압축)
  18. 18. Data Lake 구성 1. Atlas에서 새 Data Lake 구성 2. Data Lake 연결 3. 데이터베이스 및 컬렉션 구성 4. Data Lake 쿼리 실행
  19. 19. Files in S3 bucket: ent-archive /archive/customers - a-m.json - n-z.json /archive/invoices - 2019 - 1.parquet - 2.parquet - 2018 - 1.parquet - 2017.json.gz - 2016.json.gz
  20. 20. Atlas에서 새 Data Lake 구성
  21. 21. Data Lake 구성 1. Atlas에서 새 Data Lake 구성 2. Data Lake 연결 3. 데이터베이스 및 컬렉션 구성 4. Data Lake 쿼리 실행
  22. 22. Data Lake 연결: 화이트리스트 추가
  23. 23. Data Lake 연결: 사용자 생성
  24. 24. Data Lake 구성 1. Atlas에서 새 Data Lake 구성 2. Data Lake 연결 3. 데이터베이스 및 컬렉션 구성 4. Data Lake 쿼리 실행
  25. 25. 구성: S3 저장소 let DataLakeS3 = { "s3": { name: "ent-archive", // S3 store name for Data Lake config bucket: "ent-archive", // Name of the S3 bucket region: "ap-northeast-2", // Bucket region code prefix: "/archive/" // Base path in the S3 bucket } }
  26. 26. 구성: 데이터베이스 및 컬렉션 let DataLakeDatabases = { history: { customers: [{ store: "ent-archive", definition: "/customers/*" }], invoices: [{ store: "ent-archive", definition: "/invoices/{year int}/*" }, { store: "ent-archive", definition: "/invoices/{year int}.json.gz" }] }}
  27. 27. 구성: 데이터베이스 및 컬렉션 let DataLakeDatabases = { history: { customers: [{ store: "ent-archive", definition: "/customers/*" }], invoices: [{ store: "ent-archive", definition: "/invoices/{year int}/*" }, { store: "ent-archive", definition: "/invoices/{year int}.json.gz" }] }} 고객 컬렉션에서 히스토리 데이터베이스를 정의합니다. 이 정의는 일치하는 파일이 어떤 것인지 판단합니다.
  28. 28. 구성: 데이터베이스 및 컬렉션 let DataLakeDatabases = { history: { customers: [{ store: "ent-archive", definition: "/customers/*" }], invoices: [{ store: "ent-archive", definition: "/invoices/{year int}/*" }, { store: "ent-archive", definition: "/invoices/{year int}.json.gz" }] }} 정의에 * 와일드카드 문자를 추가하면 Data Lake에게 경로의 해당 지점에서 모든 파일과 폴더를 포함시키도록 명령할 수 있습니다.
  29. 29. 구성: 데이터베이스 및 컬렉션 let DataLakeDatabases = { history: { customers: [{ store: "ent-archive", definition: "/customers/*" }], invoices: [{ store: "ent-archive", definition: "/invoices/{year int}/*" }, { store: "ent-archive", definition: "/invoices/{year int}.json.gz" }] }} 파일 이름에 대해 여러 개의 구문 분석 함수를 지정할 수 있습니다.
  30. 30. 구성: 데이터베이스 및 컬렉션 let DataLakeDatabases = { history: { customers: [{ store: "ent-archive", definition: "/customers/*" }], invoices: [{ store: "ent-archive", definition: "/invoices/{year int}/*" }, { store: "ent-archive", definition: "/invoices/{year int}.json.gz" }] }} 파일 이름에서 정적 문자열과 더불어 구문 분석 함수를 지정할 수 있습니다.
  31. 31. Data Lake 구성 저장 db.adminCommand({"storageSetConfig": { "stores": [ DataLakeS3 ], databases": DataLakeDatabases })
  32. 32. Data Lake 구성 1. Atlas에서 새 Data Lake 구성 2. Data Lake 연결 3. 데이터베이스 및 컬렉션 구성 4. Data Lake 쿼리 실행
  33. 33. MongoDB Atlas를 통한 쿼리 실행 • Atlas 사용자에게는 readWriteAnyDatabase 또는 readAnyDatabase 역할이 필요 • Mongo 셸 및 MongoDB Compass가 포함된 MongoDB 드라이버/클라이언트 사용 • MQL(MongoDB Query Language)로 쿼리 작성
  34. 34. MQL을 사용한 쿼리 실행 > use history > show collections customers > db.customers.find({…}) > db.customers.aggregate({…})
  35. 35. Atlas Data Lake 아키텍처
  36. 36. MQL à 분산 MQL 쿼리 구문 분석 병렬 방식 처리 워크로드 분산
  37. 37. Atlas Data Lake 아키텍처 Atlas 제어 제어 플레인 컴퓨팅 플레인 데이터 플레인 DataLake 프론트엔 드 DataLake 에이전트 로드 밸런서 로드 밸런서 DataLake 프론트엔드 DataLake 에이전트 로드 밸런서 로드 밸런서 DataLake 프론트엔 드 DataLake 에이전트 로드 밸런서 로드 밸런서
  38. 38. 지능적 파일 타겟팅 invoices: [{ store: "ent-archive", definition: "/invoices/{year int}/*" }, { store: "ent-archive", definition: "/invoices/{year int}.json.gz" }] Data Lake가 연도 필드에서 쿼리를 수신할 때 쿼리와 일치하는 데이터가 포함된 파일을 식별할 수 있습니다.
  39. 39. 추가 개선
  40. 40. 향후: MongoDB 연산자 추가 $out $merge $graphLookup 공간 연산자 전체 텍스트 검색
  41. 41. 향후: 성능 최적화 • 어그리게이션 파이프라인 단계에 대해 coalesce 또는 reorder 함수 실행 • 인덱스 생성/사용 • 데이터에 대한 통계 구축
  42. 42. 향후: 추가 파일 형식 • Apache ORC(Optimised Row Columnar) • Excel • PDF
  43. 43. 향후: 통합 • MongoDB Atlas • Microsoft Azure • Google Cloud
  44. 44. 요약
  45. 45. Atlas Data Lake의 이점: 액세스- 여러 형식으로 장기 데이터에 액세스 쿼리 실행 - MQL을 사용하여 장기 데이터 대상 분석 - 온디맨드 방식으로 장기 데이터 분석
  46. 46. 감사합니다! @stennie
  47. 47. MongoDB Atlas Data Lake 집중 분석 [Stephen Steneker] https://www.research.net/r/DataLakeSeoul

×