BizSpring.ai AI 모드

지식센터 / 레퍼런스

[AIR™] 분석 데이터와 매체 데이터의 연동은 어떻게 이루어질까?(3) - BizSpring BLOG

[AIR™] 분석 데이터와 매체 데이터의 연동은 어떻게 이루어질까?(3) - BizSpring BLOG 콘텐츠로 건너뛰기 내비게이션 메뉴 인사이트 테크 활용 방법/사례 활용 방법/사례 성공사례 성공 사례 일반 광고/마케팅 에이전시 이커머스 미디어/콘텐츠 금융/핀테크

핵심 요약

  • AIR(통합매체 리포트) 조회 시 Elasticsearch에 저장된 데이터를 빠르게 화면에 표시하는 프로세스를 다룬 글이다.
  • 기존 Logstash 방식 대신 Elasticsearch Bulk API를 이용해 데이터를 더 간단하게 저장하도록 방식을 변경했다.
  • Bulk API는 한 번의 호출로 여러 인덱스에 CRUD 처리가 가능해 기존 방식보다 빠른 속도를 제공한다.
  • Python Elasticsearch Bulk Helpers를 사용하면 대량 데이터를 메모리에 모두 로드하지 않고도 빠르고 안정적으로 인덱싱할 수 있다.
  • Elasticsearch 접속부터 파일을 100라인 단위로 읽고 가공하여 Bulk 업로드하는 흐름까지의 과정을 설명한다.

[AIR™] 분석 데이터와 매체 데이터의 연동은 어떻게 이루어질까?(3) - BizSpring BLOG

콘텐츠로 건너뛰기

내비게이션 메뉴

인사이트

테크

활용 방법/사례

활용 방법/사례

성공사례

성공 사례 일반

광고/마케팅 에이전시

이커머스

미디어/콘텐츠

금융/핀테크

의료/헬스케어

통신/인터넷

뉴스/트렌드

릴리즈 노트

인터넷트렌드 ↗

웹사이트 ↗

# [AIR™] 분석 데이터와 매체 데이터의 연동은 어떻게 이루어질까?(3)

2023년 10월 06일 2025년 03월 27일

테크

지난 포스팅 에서는 통합매체 리포트(AIR) 데이터를 생성하기 위해 데이터 베이스를 이용하여 실제로 값이 쌓이는 과정과 결과에 대해 살펴보았습니다.

이번 포스팅에는 데이터를 통합매체 리포트에서 사용하기 위해 이루어지는 프로세스에 대해 살펴보겠습니다.

Elasticsearch

Elasticsearch (출처: Wikipedia)

Elasticsearch 는 아파치 루씬(Apache Lucene)기반의 오픈 소스 분산 검색 엔진입니다. NoSQL 기반의 데이터베이스로 JSON 형식의 데이터를 저장하고 검색이 가능합니다. 또한 비정형 데이터를 색인하고 검색하는 것이 가능하고, 데이터를 기반으로 분석 작업을 진행할 수도 있습니다.

자세한 내용은 해당 링크 에서도 확인 가능합니다.

비즈스프링에서는 대량의 데이터를 빠르게 읽어오고 표현하기 위해 매체통합 리포트를 조회 시, Elasticsearch에 저장되어 있는 데이터를 전달받아 화면에 표시하고 있습니다. 기존에 Logstash를 이용하여 Elasticsearch 데이터 저장에 대한 포스팅 을 한 적이 있었습니다. 하지만 근래에 데이터 흐름의 변화로 인하여 Logstash가 아닌 Elasticsearch Bulk API를 이용하여 더욱 더 간단하게 Elasticsearch에 데이터를 저장할 수 있도록 변경하였습니다. 이에 대해 설명하도록 하려고 합니다.

Bulk API

Elasticsearch에서는 대량의 데이터를 한번의 API 호출로 여러 Index에 CRUD(Create, Read, Update, Delete) 처리를 할 수 있도록 Bulk API 를 제공하고 있습니다. 이를 이용하면 기존의 데이터 CRUD보다 훨씬 빠른 속도로 데이터 처리가 가능한 장점이 있습니다. (자세한 내용은 해당 이 링크(클릭) 에서도 확인 가능합니다)

Bulk API는 POST 형식으로 /_bulk 주소를 호출하게 되며, body에는 형식에 맞게 작성하여 파일 혹은 내용을 첨부합니다.

데이터 형식은 JSON 형식으로 작성합니다. 그리고 인덱스에 대한 정보와 원하는 행동에 맞는 데이터에(추가의 경우 추가할 내용, 삭제의 경우 삭제 할 데이터의 ID 등) 대한 내용을 작성합니다. Bulk API 처리 시, 한줄 씩 처리를 하게 때문에 한줄 씩 작성 해야 합니다. 이를 다르게 말하면, 각 줄마다 별도의 Index를 타겟으로 처리도 가능 합니다.

Python Elasticsearch Bulk Helpers

위의 Bulk API 형식을 보게되면 인덱스에 접근하려면 모든 줄에 인덱스의 정보 및 관련 데이터를 추가해야 합니다. 즉, 처음부터 Bulk API를 위한 데이터가 아니라면 기존의 Raw 데이터를 Bulk API 형식에 맞게 재가공을 해야하고, 이 과정에서 적지않은 메모리 및 디스크 Load가 일어나게 됩니다.

이러한 불편한 점을 해결하기 위해 Python에서 사용할 수 있는 Elasticsearch Python Client 패키지에서 제공하는 Bulk helpers 를 사용하고 있습니다.

해당 플러그인 공식 홈페이지에는 다음과 같이 소개하고 있습니다.

‘기존의 ES에서 제공하는 Bulk API는 고려해야 할 사항이 너무 많기 때문에 성가신 상황이 생기는데 이를 도와주는 기능입니다’ 라고 소개를 하고 있습니다. helpers를 이용하면 대량의 데이터 세트를 메모리에 로드하지 않고도 인덱싱(데이터 추가 작업) 할 수 있기 때문에 빠르고 안정적 으로 데이터 추가를 할 수 있습니다. 이러한 장점을 이용하기 위해 JSON 형식으로 생성된 데이터를 읽어와 인덱싱하는 과정을 살펴 보겠습니다.

pip를 통하여 elasticsearch 설치

ES에 접속 및 인덱싱을 위해서는 elasticsearch 패키지 를 설치해야 합니다. 다음과 같은 명령어로 설치를 할 수 있습니다.

패키지 설치가 끝나면 다음과 같은 py파일(Python 파일)을 작성합니다.

다음 프로그램의 흐름을 설명하면 다음과 같습니다.

Elasticsearch 서버에 접속합니다.

데이터가 저장되어 있는 파일 약 100라인 단위로 읽습니다.

Bulk 업로드를 위해 데이터를 가공하고 Bulk 업로드를 진행합니다.

위와 같이 Python과 Python Elasticsearch Bulk Helpers를 이용하면 간단하게 데이터 대량 업로드가 가능합니다.

이상으로, AIR™ (Ad Integrated Report)에서 데이터를 사용하기 위해 이루어지는 프로세스에 대해 정리해보았습니다.

데이터 적재 프로세스에 대해 궁금한 점이 있다면 언제든지 문의 해주시길 바랍니다. 감사합니다.

구글애즈가 정확검색·구문검색 키워드까지 AI 모드에 노출하기 시작했다 — 자동화 상품 없이 AI 답변 화면에 들어가는 첫 실험

AI가 React 앱을 직접 디버깅 – Agent 기반 디버깅

ChatGPT 광고가 픽셀·전환 API·맞춤 오디언스를 갖췄다 — 답변 화면이 측정 가능한 광고 매체가 되는 순간

AI 시대, 데이터도 설명이 필요합니다

MCP 클라이언트는 Authorization Server를 어떻게 찾는가: 공식 MCP TypeScript SDK와 VS Code 구현 비교

RAG 시대의 GEO: AI가 콘텐츠를 읽는 방식과 스키마의 진짜 역할

AI 에이전트로 웹 데이터 수집 가능 여부 자동 검증하기

GA4 Intraday 실시간 테이블, 대시보드 원천 데이터로 바로 사용할 수 있을까?

워크플로우 오케스트레이션 플랫폼 Temporal 알아보기

iOS 14.5부터 GA4까지, 환경 변화가 가져온 업무 폭증을 해결하는 실무 전략은…?

다음에 대해 검색하기...

최신 글 둘러보기

기존 SEO와 무엇이 같고 무엇이 다른가

콘텐츠가 답인 걸 모르는 사람은 없습니다 — 문제는 지속입니다

광고비를 늘리지 않고 매출을 늘린 회사들은 무엇을 했나

코호트로 비교하면 광고 예산 판단이 달라집니다

GEO를 위한 글쓰기를 위한 작은 노하우

(해외동향) 광고주가 광고플랫폼 리포트에서 자체 측정으로 옮겨가고 있다.

구글애즈가 정확검색·구문검색 키워드까지 AI 모드에 노출하기 시작했다 — 자동화 상품 없이 AI 답변 화면에 들어가는 첫 실험

AI가 React 앱을 직접 디버깅 – Agent 기반 디버깅

ChatGPT 광고가 픽셀·전환 API·맞춤 오디언스를 갖췄다 — 답변 화면이 측정 가능한 광고 매체가 되는 순간

마케팅 자동화, 무엇부터 자동화해야 할까?

출처: https://blog.bizspring.co.kr/%ed%85%8c%ed%81%ac/air-%eb%b6%84%ec%84%9d-%eb%8d%b0%ec%9d%b4%ed%84%b0-%ea%b4%91%ea%b3%a0%eb%a7%a4%ec%b2%b4-%eb%8d%b0%ec%9d%b4%ed%84%b0-%ec%97%b0%eb%8f%99-3/

자주 묻는 질문

Elasticsearch는 무엇이고 왜 사용하나요?

Elasticsearch는 아파치 루씬 기반의 오픈소스 분산 검색 엔진으로, NoSQL 기반 데이터베이스처럼 JSON 형식 데이터를 저장하고 검색할 수 있습니다. 비정형 데이터의 색인과 검색, 분석 작업이 가능해 비즈스프링에서는 매체통합 리포트 조회 시 대량 데이터를 빠르게 읽어와 화면에 표시하는 데 활용하고 있습니다.

Logstash 대신 Bulk API를 쓰는 이유는 무엇인가요?

근래 데이터 흐름이 변화하면서 Logstash 없이도 Elasticsearch Bulk API를 이용해 더 간단하게 데이터를 저장할 수 있게 되었기 때문입니다. Bulk API는 한 번의 API 호출로 여러 인덱스에 CRUD 처리를 할 수 있어 기존 방식보다 빠른 처리 속도를 제공합니다.

Bulk API 사용 시 데이터는 어떤 형식으로 작성하나요?

Bulk API는 POST 형식으로 /_bulk 주소를 호출하며, body에는 JSON 형식으로 인덱스 정보와 원하는 동작(추가, 삭제 등)에 맞는 데이터를 한 줄씩 작성합니다. 한 줄씩 처리되기 때문에 각 줄마다 별도의 인덱스를 타겟으로 지정하는 것도 가능합니다.

Python Elasticsearch Bulk Helpers는 어떤 장점이 있나요?

기존 Raw 데이터를 Bulk API 형식에 맞게 재가공하면 메모리와 디스크에 부담이 생기는데, Bulk Helpers를 사용하면 대량 데이터 세트를 메모리에 모두 로드하지 않고도 인덱싱할 수 있어 빠르고 안정적으로 데이터를 추가할 수 있습니다.

데이터 적재 프로세스에 대해 더 궁금한 점이 있으면 어떻게 하나요?

본문에서는 데이터 적재 프로세스에 대해 궁금한 점이 있으면 언제든지 문의해달라고 안내하고 있습니다.

다른 표현: Markdown · JSON · 최종 갱신 2026-09-06