Using Elasticsearch with DataHub: Integration and Functionality with PostgreSQL and Neo4j

Original Slack Thread

<@U06TM7M40RK> datahub 아키텍처를 사용할 때, elasticsearch는 필수인가? 즉, postgres쓰고, neo4j만 써도 되는지?

Elasticsearch는 DataHub에서 검색 및 탐색 기능을 제공하는 데 사용되며, 기본적으로 필수 구성 요소로 간주됩니다. 그러나 Neo4j를 사용하여 그래프 데이터베이스로 설정할 수 있습니다. PostgreSQL과 Neo4j만을 사용하고 Elasticsearch를 사용하지 않는 설정은 공식적으로 지원되지 않습니다.

주요 고려 사항:

  1. 검색 기능: Elasticsearch는 DataHub의 검색 엔진으로 사용되며, 빠른 검색과 자동 완성 기능을 제공합니다. PostgreSQL과 Neo4j만으로는 이러한 검색 기능을 대체할 수 없습니다.
  2. 그래프 데이터베이스: Neo4j는 그래프 데이터베이스로서 복잡한 관계형 데이터를 저장하고 쿼리하는 데 최적화되어 있습니다. Elasticsearch는 단일 홉(single-hop) 쿼리에 최적화되어 있으며, 기본적으로 그래프 데이터베이스로도 사용됩니다.

설정 예시:

  • Elasticsearch 사용: 기본 설정에서는 Elasticsearch를 사용하여 검색 및 그래프 데이터베이스 기능을 제공합니다.
  • Neo4j 사용: Neo4j를 그래프 데이터베이스로 사용하려면 values.yaml 파일에서 설정을 변경해야 합니다.
# values.yaml 예시
graphServiceImpl: neo4j
neo4j:
  enabled: true
  nameOverride: neo4j
  neo4j:
    name: neo4j
    edition: "community"
    acceptLicenseAgreement: "yes"
    defaultDatabase: "graph.db"
    password: "datahub123"

참고 자료:

결론:
Elasticsearch는 DataHub에서 검색 및 탐색 기능을 제공하는 데 필수적입니다. PostgreSQL과 Neo4j만을 사용하고 Elasticsearch를 사용하지 않는 설정은 공식적으로 지원되지 않습니다. Elasticsearch를 사용하지 않으면 검색 기능이 제한될 수 있습니다.

더 자세한 정보가 필요하신가요?

Sources:

Sources: