Skip to main content
튜토리얼 시리즈 | 실시간 데이터 파이프라인 구축

3. Data Catalog와 Data Query를 이용한 Kafka 메시지 분석

🗒️ Object Storage에 저장된 Kafka 데이터를 Data Catalog로 등록하고 Data Query 서비스 통해 조회하는 방법을 안내합니다.

기본 정보
  • 예상 소요 시간: 30분
  • 권장 운영 체제: MacOS, Ubuntu
  • IAM 권한: 프로젝트 관리자 역할 보유

시나리오 소개

이 튜토리얼은 전체 아키텍처에서 데이터 처리/분석(Processing/Analytics) 단계에 해당합니다. Kafka를 통해 Object Storage에 저장된 실시간 데이터를 Data Catalog에 등록하고, Data Query를 활용해 SQL 기반으로 조회·필터링·집계할 수 있는 환경을 구성합니다.

Data Catalog는 저장 데이터를 메타데이터로 관리하며, Data Query와 연계해 실시간 데이터 정합성 검증과 분석 작업을 지원합니다.

주요 내용은 다음과 같습니다.

  • Data Catalog 및 데이터베이스 생성
  • Data Query 서비스를 통해 테이블 생성
  • 쿼리 작성 및 실행
  • 결과 확인 및 CSV 다운로드

architect 아키텍처

시작하기 전에

이 튜토리얼에서는 Object Storage에 저장된 Kafka 메시지를 테이블로 등록하여, 분석 가능한 형태로 전환하는 과정을 다룹니다. 실습을 원활하게 진행하기 위해, 먼저 Kafka 데이터의 Object Storage 적재 튜토리얼을 완료합니다. 이때 저장된 저장된 버킷 이름과 메시지 경로를 확인합니다.

Step 1. Object Storage 경로 확인

Kafka Connector가 메시지를 저장한 경로를 확인합니다. 이 경로는 Data Catalog 크롤러가 테이블을 구성하는 기준이 되므로 정확한 확인이 필요합니다.

info

Object Storage 경로를 명확히 파악해두면 이후 단계에서 자동화된 테이블 등록이 원활하게 진행되며, 잘못된 경로로 인한 테이블 생성 실패를 예방할 수 있습니다.

  1. 카카오클라우드 콘솔 > Object Storage > tutorial-kafka-bucket 으로 이동합니다.
  2. Kafka Connector를 통해 저장된 객체가 어떤 경로(prefix)에 있는지 확인합니다.
    예: tutorial-kafka-bucket/tutorial-topic/topic/partition_0/year_2025/month_07/day_06/hour_22
  3. 테이블 생성에 필요한 최상위 경로(tutorial-kafka-bucket/tutorial-topic/topic/partition_0)까지 복사하여 메모장에 기록해둡니다.

Step 2. Data Catalog 설정

Data Catalog는 Object Storage에 저장된 데이터를 메타데이터로 관리하여, SQL 기반 분석이 가능하도록 지원합니다. 이 단계에서는 카탈로그와 데이터베이스를 생성해 저장 경로(Object Storage 버킷)를 Data Catalog에 연결합니다.

  1. 카카오클라우드 콘솔 > Analytics > Data Catalog 메뉴로 이동합니다.

  2. 카탈로그 메뉴에서 [카탈로그 생성] 버튼을 클릭합니다.

  3. 카탈로그 생성 팝업창에서 정보를 입력한 후, [생성] 버튼을 클릭합니다.

    항목설정값
    이름카탈로그 이름 / 예시 - kafka_catalog
    VPC카탈로그에 해당하는 네트워크 선택
    - VPC: tutorial-amk-vpc
    - 서브넷: main
  4. 생성한 카탈로그(kafka_catalog)를 클릭하여 데이터베이스 목록에서 [데이터베이스 생성] 버튼을 클릭합니다.

  5. 데이터베이스 생성 팝업창에서 아래 정보를 입력한 후, [생성] 버튼을 클릭합니다.

    항목설정값
    카탈로그생성한 카탈로그 이름 / 예시 - kafka_catalog
    이름데이터베이스 이름 / 예시 - tutorial_kafka
    경로S3 연결 체크
    - 버킷 이름: tutorial-kafka-bucket
    - 디렉터리: tutorial-topic/topic

Step 3. 쿼리 결과 저장소 준비

Data Query는 쿼리 실행 결과를 Object Storage에 파일 형태로 저장합니다. 따라서 쿼리 실행 전에 반드시 결과 저장소를 설정해야 합니다.

설정 방법은 쿼리 결과 저장소 준비 가이드를 참고합니다.

Step 4. Data Query 조회

Data Catalog에서 생성한 데이터베이스를 통해 테이블을 만들고, 파티션을 추가한 뒤 실시간 데이터를 조회합니다.

  1. 카카오클라우드 콘솔 > Analytics > Data Query > 쿼리 편집기 메뉴로 이동합니다.

  2. 데이터 원본과 데이터베이스를 선택합니다.

    구분설정값
    데이터 원본Data Catalog에서 생성한 카탈로그, kafka_catalog 선택
    데이터베이스Data Catalog에서 생성한 데이터베이스, tutorial_kafka 선택
  3. 우측의 쿼리 편집기에서 테이블을 생성합니다.

    테이블 생성
    CREATE TABLE ${TABLE_NAME} (
    data varchar,
    year varchar,
    month varchar,
    day varchar,
    hour varchar
    )
    WITH (
    format = 'TEXTFILE',
    external_location = 's3a://${BUCKET_NAME}/tutorial-topic/topic/partition_0',
    partitioned_by = ARRAY['year','month','day','hour']
    );
    환경변수설명
    TABLE_NAME🖌 테이블 이름 / 예시 - kafka_table
    BUCKET_NAME🖌 버킷 이름 / 예시 - tutorial-kafka-bucket
  4. 원하는 로그 날짜에 대한 파티션을 수동으로 추가합니다.

    파티션 추가
    CALL ${CATALOG_NAME}.system.register_partition(
    schema_name => '${DATABASE_NAME}',
    table_name => '${TABLE_NAME}',
    partition_columns => ARRAY['year', 'month', 'day', 'hour'],
    partition_values => ARRAY['${YYYY}', '${MM}', '${DD}', '${HH}'],
    location => 's3a://${BUCKET_NAME}/tutorial-topic/topic/partition_0/${PATH}'
    );
    환경변수설명
    CATALOG_NAME🖌 Data Catalog에서 생성한 카탈로그 이름 / 예시 - kafka_catalog
    DATABASE_NAME🖌 Data Catalog에서 생성한 데이터베이스 이름 / 예시 - tutorial_kafka
    TABLE_NAME🖌 테이블 이름 / 예시 - kafka_table
    YYYY🖌 조회연도 / 예시 - 2025
    MM🖌 조회 월 / 예시 - 07
    DD🖌 조회 일 / 예시 - 06
    HH🖌 조회 시간 / 예시 - 23
    BUCKET_NAME🖌 버킷 이름 / 예시 - tutorial-kafka-bucket
    PATH🖌 데이터가 저장된 날짜 폴더 형식 / 예시 - year_2025/month_07/day_06/hour_23
    안내

    현재 파티션 추가는 위와 같이 조회할 날짜 별로 Data Query 쿼리 편집기를 통해 수동 추가를 진행해야 합니다.
    추후 Data Catalog 서비스 내 파티션 자동 추가 기능이 지원될 예정입니다.

  5. 데이터 조회를 진행합니다.

    데이터 조회 예시
    SELECT *
    FROM ${TABLE_NAME}
    WHERE year = '2025' AND month = '07' AND day = '06' AND hour = '23';
    환경변수설명
    TABLE_NAME🖌 테이블 이름 / 예시 - .kafka_table
  6. 쿼리 결과 예시는 아래와 같습니다.

    raw_datayearmonthdayhour
    hello world!2025070623
    hello tester!2025070623

마무리

Kafka 메시지를 Object Storage에 적재하고, Data Catalog에 등록한 뒤 Data Query로 SQL 기반 조회까지 수행했습니다. 이제 수집 → 저장 → 분석까지 이어지는 실시간 데이터 파이프라인의 전체 흐름을 완성했습니다.

실제 운영 환경에서 이 튜토리얼을 확장하여 이벤트 감지, 주기적 리포팅, 대시보드 시각화 등 다양한 분석 시나리오로 활용할 수 있기를 기대합니다.