Computer >> 컴퓨터 >  >> 프로그램 작성 >> 데이터 베이스

SQL 데이터에 Elasticsearch 기반 검색 및 시각화 추가

SQL 데이터에 Elasticsearch 기반 검색 및 시각화 추가

새로운 NoSQL 데이터 저장소에 초점을 맞춘 모든 소문에도 불구하고 관계형 및 SQL 기반 데이터베이스는 여전히 건재합니다. 실제로 우리와 함께 일하는 거의 모든 고객은 MongoDB, Redis 또는 Elasticsearch와 함께 환경에 MySQL, PostgreSQL 또는 MS SQL Server를 가지고 있습니다. 마이그레이션으로 관계형 데이터베이스에서 다른 데이터 저장소로 데이터를 복제하는 가장 쉬운 방법에 대한 요청을 받는 것은 드문 일이 아닙니다. 다행히 Elasticsearch를 사용하면 이 작업을 매우 쉽게 수행할 수 있습니다.

우리는 최근에 Connecting Relational Databases to Elasticsearch에 대한 자세한 백서를 작성하여 필요한 결정과 프로세스를 설명합니다. 빠른 소개와 개요를 보려면 아래를 읽어보세요.

올바른 도구 모음 선택

웹에서 사용할 수 있는 마이그레이션/복제 도구가 많이 있으며 이 시나리오에서 자신의 코드를 작성하는 것조차 큰 노력은 아니지만 지금까지는 Logstash와 jdbc 입력 플러그인이 최고의 솔루션이라는 것을 알았습니다.

Logstash는 스위스 군용 칼 스타일의 데이터 수집기, 변환기 및 배송업체입니다. 또한 Elastic Stack의 일부라는 점을 감안할 때 Elasticsearch로 쉽게 데이터를 전송하는 기능은 타의 추종을 불허합니다. Elasticsearch 부분으로의 배송을 처리하지만 관계형 데이터베이스에서 데이터를 가져오는 것은 어떻습니까?

Logstash가 제공하는 많은 입력 중 하나는 JDBC 입력입니다. JDBC는 Java 애플리케이션이 데이터베이스에 액세스할 수 있는 방법을 정의하는 표준입니다. 데이터베이스에 대해 jdbc 호환 드라이버를 사용할 수 있는 한 JDBC Logstash 입력은 이를 사용하여 표준 SQL 쿼리를 사용하여 데이터를 추출할 수 있습니다. 관계형 데이터베이스에서 무료 JDBC 드라이버에 대한 광범위한 지원과 일부 비관계형 데이터베이스에 대한 지원을 감안할 때 Elasticsearch로 다른 데이터베이스를 연결하는 쉬운 경로입니다.

SQL 데이터에 Elasticsearch 기반 검색 및 시각화 추가

연결하기

jdbc 호환 데이터베이스와 호환 드라이버가 있는 한 구성은 몇 가지 정보로 Logstash를 구성하는 것만큼 쉽습니다.

  • JDBC 구성 정보
  • 관계형 데이터베이스에 대한 자격 증명 및 연결 정보
  • 원하는 데이터를 추출하는 관계형 데이터베이스에 대한 SQL 쿼리 또는 명령문
  • Elasticsearch 데이터베이스의 자격 증명 및 연결 정보

이러한 정보를 감안할 때 데이터를 Elasticsearch로 섞는 것은 매우 쉽습니다.

중요한 질문하기

관계형 데이터를 Elasticsearch로 복제하거나 마이그레이션할 때 A 지점에서 B 지점으로 데이터를 가져오는 것은 전투의 절반에 불과합니다. 더 크고 더 많은 생각을 하게 만드는 질문은 Elasticsearch에서 해당 데이터를 한 번 모델링하는 방법입니다. Elasticsearch의 관계형 데이터 문제는 솔직히 관계입니다.

Elasticsearch는 무엇보다도 검색 엔진이지만, 데이터 모델은 본질적으로 문서 간의 관계에 대한 최소한의 지원만 제공하는 문서 저장소입니다. 그렇기 때문에 Elasticsearch에서 데이터를 모델링하는 방법에 대해 몇 가지 결정을 내려야 합니다.

일반적으로 제공되는 세 가지 표준 옵션은 다음과 같습니다.

  • 데이터 비정규화: 기본적으로 모든 관계를 제거하고 테이블의 모든 데이터 조합에 대해 고유한 문서를 만듭니다.
  • 문서 내의 배열: Elasticsearch는 각 문서 내에서 객체 배열을 생성하는 기능을 지원하며 일부 쿼리가 해당 배열의 각 구성원을 별도의 문서로 평가할 수 있도록 하는 특별한 "중첩" 데이터 유형도 제공합니다.
  • 상위 자녀 관계: 마지막 옵션이자 진정한 관계형 데이터베이스에 가장 가까운 것은 Elasticsearch의 상위-하위 관계로, 이를 통해 특정 문서가 다른 문서의 하위임을 지정할 수 있습니다.

Elasticsearch는 데이터 처리를 위한 몇 가지 옵션을 제공하지만 어떤 방법이 가장 효과적이고 요구 사항을 충족시키는지는 전적으로 귀하에게 달려 있습니다.

또 다른 주요 결정은 Elasticsearch에 복제할 데이터의 양과 빈도입니다. 마이그레이션하는 경우 모든 것을 일회성으로 덤프하기 때문에 답은 쉽습니다. 그러나 Elasticsearch를 보조 보고 데이터 저장소로 사용하려는 경우 복사할 데이터의 양과 주기에 대한 추가 옵션이 있습니다. 정기적인 일정에 따라 전체 스냅샷을 복사하거나 Logstash JDBC 입력 필터의 일부 기능을 사용하여 특정 열을 필터링하고 사용 가능한 경우에만 새 데이터를 보낼 수 있습니다. 다시 한번 말씀드리지만, 이는 모두 귀하의 데이터와 귀하의 데이터 사용 목적에 따라 달라집니다.

결정 및 세부사항

결론은 데이터 저장소를 연결하는 도구와 프로세스를 지금 사용할 수 있으며 실제로 데이터를 사용하여 실행하기가 매우 쉽다는 것입니다. Elasticsearch에서 데이터를 모델링하는 방법, 쿼리하는 방법, 시각화하는 방법과 관련하여 몇 가지 절충점이 있습니다. 예를 들어, 관계형 데이터를 비정규화하도록 선택하면 결과 데이터 세트의 크기, 특정 집계를 수행하는 방법 및 사용 가능한 시각화에 영향을 미칩니다.

프로세스와 이러한 결정을 내리는 방법을 설명하기 위해 샘플 데이터 세트에 대해 Elasticsearch에 대한 관계형 복제를 설정하는 표준 프로세스, 다른 모델링에 영향을 미치는 요소를 설명하는 Connecting Relational Databases to Elasticsearch 백서를 작성했습니다. 결과 데이터에 대한 결정과 가장 적합한 선택 방법에 대한 몇 가지 지침이 있습니다.

SQL 데이터에 Elasticsearch 기반 검색 및 시각화 추가

유용하게 사용하시기 바랍니다! 항상 그렇듯이 sales@objectrocket.com으로 연락하여 더 많은 정보를 얻을 수 있습니다.