머리말:
Apache Druid란 무엇인가요?
시계열 데이터베이스, 데이터 웨어하우스, 전문 검색 시스템의 특성을 통합한 분석 데이터 플랫폼입니다.
이 글은 druid의 특성, 사용 시나리오, 기술적 특징 및 아키텍처에 대한 간략한 이해를 제공하며, 이는 데이터 스토리지 솔루션을 선택하고 druid 스토리지 및 시계열 스토리지에 대한 심층적인 이해를 얻는 데 도움이 될 것입니다.
개요
최신 클라우드 기반, 스트리밍 기반 분석 데이터베이스
Druid는 빠른 쿼리와 빠른 데이터 수집 워크플로를 위해 설계되었습니다. Druid의 강점은 강력한 UI, 런타임 시 작동 가능한 쿼리, 고성능 동시 처리에 있습니다. Druid는 다양한 사용자 시나리오를 충족하는 데이터 웨어하우스를 위한 오픈 소스 대안으로 간주될 수 있습니다.
기존 데이터 파이프라인과의 손쉬운 통합
Druid는 메시지 버스(예: Kafka, Amazon Kinesis)에서 데이터를 스트리밍하거나 데이터 레이크(예: HDFS, Amazon S3 및 기타 유사한 데이터 소스)에서 파일을 일괄 로드할 수 있습니다.
기존 솔루션보다 100배 빠른 성능
Druid의 데이터 수집 및 데이터 쿼리에 대한 벤치마크 성능 테스트는 기존 솔루션을 훨씬 능가합니다.
Druid의 아키텍처는 데이터 웨어하우스, 시계열 데이터베이스 및 검색 시스템의 최고의 기능을 결합합니다.
새로운 워크플로 잠금 해제
Druid는 Clickstream, APM(애플리케이션 성능 관리 시스템), 공급망(공급망), 네트워크 원격 측정, 디지털 마케팅 및 기타 이벤트 중심 시나리오에 대한 새로운 쿼리 방법 및 워크플로를 잠금 해제합니다. Druid는 실시간 및 기록 데이터에 대한 빠른 임시 쿼리를 위해 제작되었습니다.
AWS/GCP/Azure, 하이브리드 클라우드, k8s 및 임대 서버에 배포
Druid는 모든 *NIX 환경에 배포할 수 있습니다. 온프레미스 환경이든 클라우드 환경이든 상관없습니다. Druid 배포는 매우 쉽습니다. 서비스를 추가하거나 제거하여 확장 및 축소할 수 있습니다.
사용 시나리오
Apache Druid는 실시간 데이터 추출, 고성능 쿼리 및 고가용성에 대한 요구 사항이 높은 시나리오에 적합합니다. 따라서 Druid는 풍부한 GUI를 갖춘 분석 시스템으로 사용되거나 빠른 집계가 필요한 높은 동시성 API의 백엔드로 사용되는 경우가 많습니다. Druid는 이벤트 지향 데이터에 더 적합합니다.
일반적인 사용 시나리오:
클릭 스트림 분석(웹 및 모바일 분석)
위험 제어 분석
네트워크 원격 측정 분석(네트워크 성능 모니터링)
서버 지표 저장
공급망 분석(제조 지표)
애플리케이션 성능 지표
비즈니스 인텔리전스/실시간 온라인 분석 시스템 OLAP
이러한 사용 시나리오는 아래에서 자세히 분석됩니다.
사용자 활동 및 행동
Druid는 클릭 스트림, 방문 스트림 및 활동 스트림 데이터에 자주 사용됩니다. 특정 시나리오에는 사용자 참여 측정, 제품 출시에 대한 A/B 테스트 데이터 추적, 사용자 사용 패턴 이해가 포함됩니다. Druid는 고유 계산 지표와 같은 사용자 지표를 정확하고 대략적으로 계산할 수 있습니다. 이는 일일 활성 사용자와 같은 지표를 1초 안에 대략적인 값(평균 정확도 98%)으로 계산하여 전반적인 추세를 확인하거나 정확하게 계산하여 이해관계자에게 제시할 수 있음을 의미합니다. Druid는 얼마나 많은 사용자가 특정 행동을 취하고 다른 행동을 취하지 않았는지 측정하기 위해 "퍼널 분석"을 수행하는 데 사용될 수 있습니다. 이는 사용자 등록을 추적하는 제품에 유용합니다.
Network flow
Druid는 네트워크 흐름 데이터를 수집하고 분석하는 데 자주 사용됩니다. Druid는 분할되고 임의의 속성과 결합된 스트리밍 데이터를 관리하는 데 사용됩니다. Druid는 대량의 네트워크 흐름 기록을 추출할 수 있으며 쿼리 시 수십 개의 속성을 빠르게 결합하고 정렬할 수 있어 네트워크 흐름 분석이 용이합니다. 이러한 속성에는 IP 및 포트 번호와 같은 핵심 속성뿐만 아니라 지리적 위치, 서비스, 애플리케이션, 장치 및 ASN과 같은 추가 고급 속성이 포함됩니다. Druid는 고정되지 않은 스키마를 처리할 수 있습니다. 즉, 원하는 속성을 추가할 수 있다는 의미입니다.
디지털 마케팅
Druid는 온라인 광고 데이터를 저장하고 쿼리하는 데 자주 사용됩니다. 이러한 데이터는 일반적으로 광고 서비스 제공업체로부터 제공되며, 광고 캠페인 성과, 클릭 침투율, 전환율(소비율) 및 기타 지표를 측정하고 이해하는 것이 중요합니다.
Druid는 원래 광고 데이터를 위한 강력한 사용자 중심 분석 애플리케이션으로 설계되었습니다. 광고 데이터 저장 측면에서 Druid는 이미 많은 제작 사례를 보유하고 있으며 전 세계 수많은 사용자가 PB 수준의 데이터를 수천 대의 서버에 저장했습니다.
애플리케이션 성능 관리
Druid는 애플리케이션에서 생성된 운영 데이터를 추적하는 데 자주 사용됩니다. 사용자 활동 사용 시나리오와 유사하게 이 데이터는 사용자가 애플리케이션과 상호 작용하는 방식에 관한 것일 수 있으며 애플리케이션 자체에서 보고하는 지표 데이터일 수 있습니다. Druid를 사용하면 드릴다운하여 애플리케이션의 다양한 구성 요소가 어떻게 작동하는지 발견하고, 병목 현상을 찾고, 문제를 식별할 수 있습니다.
많은 기존 솔루션과 달리 Druid는 더 작은 저장 용량, 더 작은 복잡성, 더 큰 데이터 처리량이라는 특징을 가지고 있습니다. 수천 개의 속성에 대한 애플리케이션 이벤트를 신속하게 분석하고 복잡한 로딩, 성능 및 활용도 지표를 계산할 수 있습니다. 예를 들어 95% 쿼리 대기 시간을 기반으로 하는 API 엔드포인트입니다. 데이터 센터 위치별 통계와 같이 사용자 인물별 통계와 같이 일별 데이터 분할과 같은 임시 속성별로 데이터를 구성하고 분할할 수 있습니다.
IoT 및 장치 측정항목
Driud는 처리 서버 및 장치의 지표 데이터를 저장하는 시계열 데이터베이스 솔루션으로 사용할 수 있습니다. 기계에서 생성된 실시간 데이터를 수집하고 빠른 임시 분석을 수행하여 성능을 측정하고, 하드웨어 리소스를 최적화하고, 문제를 찾습니다.
많은 기존 시계열 데이터베이스와 달리 Druid는 본질적으로 분석 엔진입니다. Druid는 시계열 데이터베이스, 컬럼 분석 데이터베이스 및 검색 시스템의 개념을 결합합니다. 단일 시스템에서 시간 기반 파티셔닝, 열 저장 및 검색 인덱싱을 지원합니다. 이는 시간 기반 쿼리, 숫자 집계 및 검색 필터 쿼리가 매우 빠르다는 것을 의미합니다.
측정항목에 수백만 개의 고유한 차원 값을 포함할 수 있으며 모든 차원별로 그룹과 필터를 자유롭게 결합할 수 있습니다(Druid의 차원은 시계열 데이터베이스의 태그와 유사합니다). 태그 그룹 및 순위를 기반으로 다수의 복잡한 지표를 계산할 수 있습니다. 그리고 태그 검색 및 필터링은 기존 시계열 데이터베이스보다 빠릅니다.
OLAP 및 비즈니스 인텔리전스
Druid는 비즈니스 인텔리전스 시나리오에 자주 사용됩니다. 회사는 쿼리 속도를 높이고 애플리케이션을 향상시키기 위해 Druid를 배포합니다. Hadoop 기반 SQL 엔진(예: Presto 또는 Hive)과 달리 Druid는 높은 동시성 및 1초 미만 쿼리를 위해 설계되었으며 UI를 통해 대화형 데이터 쿼리를 향상합니다. 이는 Druid를 실제 시각적 상호 작용 분석에 더 적합하게 만듭니다.
Technology
Apache Druid는 오픈 소스 분산 데이터 스토리지 엔진입니다. Druid의 핵심 디자인은 OLAP/분석 데이터베이스, 시계열 데이터베이스 및 검색 시스템의 개념을 통합하여 광범위한 사용 사례에 적합한 통합 시스템을 만듭니다. Druid는 이 세 가지 시스템의 주요 기능을 Druid의 수집 레이어(Data Ingestion Layer), 스토리지 포맷(Storage Formatting Layer), 쿼리 레이어(Querying Layer), 코어 아키텍처(Core Architecture)로 통합합니다.
Druid의 주요 기능은 다음과 같습니다:
열 저장
Druid는 각 데이터 열을 개별적으로 저장하고 압축합니다. 그리고 쿼리 시에는 쿼리가 필요한 특정 데이터만 쿼리하고, 빠른 스캐닝과 랭킹, groupBy를 지원합니다.
기본 검색 인덱스
Druid는 데이터의 빠른 검색 및 필터링을 달성하기 위해 문자열 값에 대한 반전 인덱스를 생성합니다.
스트리밍 및 일괄 데이터 수집
즉시 사용 가능한 Apache kafka, HDFS, AWS S3 커넥터, 스트리밍 프로세서.
유연한 데이터 스키마
Druid는 변화하는 데이터 스키마와 중첩 데이터 유형에 우아하게 적응합니다.
시간 기반 최적화 파티셔닝
Druid는 시간을 기준으로 데이터를 지능적으로 파티셔닝합니다. 따라서 Druid 시간 기반 쿼리는 기존 데이터베이스보다 훨씬 빠릅니다.
SQL 문 지원
Druid는 기본 JSON 기반 쿼리 외에도 HTTP 및 JDBC 기반 SQL도 지원합니다.
수평적 확장성
100만/초의 데이터 수집 속도, 대용량 데이터 저장 및 1초 미만의 쿼리.
운영 및 유지 관리가 쉽습니다.
서버를 추가하거나 제거하여 확장 및 축소할 수 있습니다. Druid는 자동 재조정 및 장애 조치를 지원합니다.
Data Ingest
Druid는 스트리밍 및 일괄 데이터 수집을 모두 지원합니다. Druid는 일반적으로 Kafka와 같은 메시지 버스(스트리밍 데이터 로드) 또는 HDFS(배치 데이터 로드)와 같은 분산 파일 시스템을 통해 원시 데이터 소스에 연결합니다.
Druid는 원본 데이터를 데이터 노드에 인덱싱 처리를 통해 세그먼트 형태로 저장합니다. 세그먼트는 쿼리에 최적화된 데이터 구조입니다.
데이터 스토리지
대부분의 분석 데이터베이스와 마찬가지로 Druid는 컬럼형 스토리지를 사용합니다. 다양한 열(문자열, 숫자 등)의 데이터 유형에 따라 Druid는 다양한 압축 및 인코딩 방법을 사용합니다. Druid는 또한 다양한 열 유형에 대해 다양한 유형의 인덱스를 구축합니다.
검색 시스템과 유사하게 Druid는 더 빠른 검색 및 필터링을 달성하기 위해 문자열 열에 대한 반전 인덱스를 생성합니다. 시계열 데이터베이스와 유사하게 Druid는 더 빠른 시간 기반 쿼리를 달성하기 위해 시간을 기반으로 데이터를 지능적으로 분할합니다.
대부분의 기존 시스템과 달리 Druid는 데이터를 수집하기 전에 데이터를 사전 집계할 수 있습니다. 이러한 사전 집계 작업을 롤업이라고 하며, 이는 스토리지 비용을 크게 절감할 수 있습니다.
Query
Druid는 JSON-over-HTTP 및 SQL 쿼리 방법을 모두 지원합니다. 표준 SQL 작업 외에도 Druid는 다수의 고유한 작업을 지원합니다. Druid에서 제공하는 알고리즘 제품군을 사용하면 계산, 순위 및 분위수 계산을 빠르게 수행할 수 있습니다.
Architecture
Druid는 마이크로서비스 아키텍처로, 여러 서비스로 분해된 데이터베이스로 이해할 수 있습니다. Druid의 각 핵심 서비스(수집, 쿼리 및 조정)는 상용 하드웨어에 개별적으로 또는 공동으로 배포할 수 있습니다.
Druid는 운영 및 유지 관리 담당자가 사용 및 부하 조건에 따라 해당 서비스의 매개변수를 조정할 수 있도록 각 서비스의 이름을 명확하게 지정합니다. 예를 들어, 부하가 필요할 경우 운영자는 데이터 수집 서비스에 더 많은 리소스를 제공하고 데이터 쿼리 서비스에 대한 리소스를 줄일 수 있습니다.
Druid는 다른 서비스의 운영에 영향을 주지 않고 독립적으로 실패할 수 있습니다.
운영 및 유지보수
Drui는 7*24시간 실행되어야 하는 강력한 시스템으로 설계되었습니다. Druid는 장기간 운영을 보장하고 데이터 손실을 방지하기 위해 다음과 같은 기능을 갖추고 있습니다.
데이터 복사본
Druid는 구성된 복사본 수에 따라 여러 데이터 복사본을 생성하므로 단일 시스템 오류가 Druid 쿼리에 영향을 미치지 않습니다.
독립적인 서비스
Druid는 각 주요 서비스를 명확하게 명명하고 있으며, 각 서비스는 사용량에 따라 적절히 조정될 수 있습니다. 서비스는 다른 서비스의 정상적인 작동에 영향을 주지 않고 독립적으로 실패할 수 있습니다. 예를 들어 데이터 수집 서비스가 실패하면 새 데이터가 시스템에 로드되지 않지만 기존 데이터는 계속 쿼리할 수 있습니다.
자동 데이터 백업
Druid는 인덱스된 모든 데이터를 HDFS와 같은 분산 파일 시스템일 수 있는 파일 시스템에 자동으로 백업합니다. 모든 Druid 클러스터 데이터를 잃어버리고 백업 데이터에서 빠르게 다시 로드할 수 있습니다.
롤링 업데이트
롤링 업데이트를 사용하면 다운타임 없이 Druid 클러스터를 업데이트할 수 있으므로 사용자에게 보이지 않습니다. 모든 Druid 버전은 이전 버전과 호환됩니다.
시계열 데이터베이스 및 비교에 대해 배우고 싶다면 다른 문서로 이동할 수 있습니다:
관련 권장 사항: apache 서버
위 내용은 한 기사에서 Apache Druid에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!