{
  "id": "c9a309bd-307c-4bac-a842-78878d7a40d3",
  "slug": "ref/web/blog-bizspring-co-kr/air-분석-데이터와-매체-데이터의-연동은-어떻게-이루어질까-3-bizspring-blog",
  "doc_type": "ref",
  "title": "[AIR™] 분석 데이터와 매체 데이터의 연동은 어떻게 이루어질까?(3) - BizSpring BLOG",
  "title_en": null,
  "one_liner": "[AIR™] 분석 데이터와 매체 데이터의 연동은 어떻게 이루어질까?(3) - BizSpring BLOG 콘텐츠로 건너뛰기 내비게이션 메뉴 인사이트 테크 활용 방법/사례 활용 방법/사례 성공사례 성공 사례 일반 광고/마케팅 에이전시 이커머스 미디어/콘텐츠 금융/핀테크",
  "summary_bullets": [
    "AIR(통합매체 리포트) 조회 시 Elasticsearch에 저장된 데이터를 빠르게 화면에 표시하는 프로세스를 다룬 글이다.",
    "기존 Logstash 방식 대신 Elasticsearch Bulk API를 이용해 데이터를 더 간단하게 저장하도록 방식을 변경했다.",
    "Bulk API는 한 번의 호출로 여러 인덱스에 CRUD 처리가 가능해 기존 방식보다 빠른 속도를 제공한다.",
    "Python Elasticsearch Bulk Helpers를 사용하면 대량 데이터를 메모리에 모두 로드하지 않고도 빠르고 안정적으로 인덱싱할 수 있다.",
    "Elasticsearch 접속부터 파일을 100라인 단위로 읽고 가공하여 Bulk 업로드하는 흐름까지의 과정을 설명한다."
  ],
  "body_md": "[AIR™] 분석 데이터와 매체 데이터의 연동은 어떻게 이루어질까?(3) - BizSpring BLOG\n\n콘텐츠로 건너뛰기\n\n내비게이션 메뉴\n\n인사이트\n\n테크\n\n활용 방법/사례\n\n활용 방법/사례\n\n성공사례\n\n성공 사례 일반\n\n광고/마케팅 에이전시\n\n이커머스\n\n미디어/콘텐츠\n\n금융/핀테크\n\n의료/헬스케어\n\n통신/인터넷\n\n뉴스/트렌드\n\n릴리즈 노트\n\n인터넷트렌드 ↗\n\n웹사이트 ↗\n\n# [AIR™] 분석 데이터와 매체 데이터의 연동은 어떻게 이루어질까?(3)\n\n2023년 10월 06일 2025년 03월 27일\n테크\n\n지난 포스팅 에서는 통합매체 리포트(AIR) 데이터를 생성하기 위해 데이터 베이스를 이용하여 실제로 값이 쌓이는 과정과 결과에 대해 살펴보았습니다.\n이번 포스팅에는 데이터를 통합매체 리포트에서 사용하기 위해 이루어지는 프로세스에 대해 살펴보겠습니다.\n\n## Elasticsearch\n\nElasticsearch (출처: Wikipedia)\n\nElasticsearch 는 아파치 루씬(Apache Lucene)기반의 오픈 소스 분산 검색 엔진입니다. NoSQL 기반의 데이터베이스로 JSON 형식의 데이터를 저장하고 검색이 가능합니다. 또한 비정형 데이터를 색인하고 검색하는 것이 가능하고, 데이터를 기반으로 분석 작업을 진행할 수도 있습니다.\n자세한 내용은 해당 링크 에서도 확인 가능합니다.\n비즈스프링에서는 대량의 데이터를 빠르게 읽어오고 표현하기 위해 매체통합 리포트를 조회 시, Elasticsearch에 저장되어 있는 데이터를 전달받아 화면에 표시하고 있습니다. 기존에 Logstash를 이용하여 Elasticsearch 데이터 저장에 대한 포스팅 을 한 적이 있었습니다. 하지만 근래에 데이터 흐름의 변화로 인하여 Logstash가 아닌 Elasticsearch Bulk API를 이용하여 더욱 더 간단하게 Elasticsearch에 데이터를 저장할 수 있도록 변경하였습니다. 이에 대해 설명하도록 하려고 합니다.\n\n### Bulk API\n\nElasticsearch에서는 대량의 데이터를 한번의 API 호출로 여러 Index에 CRUD(Create, Read, Update, Delete) 처리를 할 수 있도록 Bulk API 를 제공하고 있습니다. 이를 이용하면 기존의 데이터 CRUD보다 훨씬 빠른 속도로 데이터 처리가 가능한 장점이 있습니다. (자세한 내용은 해당 이 링크(클릭) 에서도 확인 가능합니다)\nBulk API는 POST 형식으로 /_bulk 주소를 호출하게 되며, body에는 형식에 맞게 작성하여 파일 혹은 내용을 첨부합니다.\n\n데이터 형식은 JSON 형식으로 작성합니다. 그리고 인덱스에 대한 정보와 원하는 행동에 맞는 데이터에(추가의 경우 추가할 내용, 삭제의 경우 삭제 할 데이터의 ID 등) 대한 내용을 작성합니다. Bulk API 처리 시, 한줄 씩 처리를 하게 때문에 한줄 씩 작성 해야 합니다. 이를 다르게 말하면, 각 줄마다 별도의 Index를 타겟으로 처리도 가능 합니다.\n\n### Python Elasticsearch Bulk Helpers\n\n위의 Bulk API 형식을 보게되면 인덱스에 접근하려면 모든 줄에 인덱스의 정보 및 관련 데이터를 추가해야 합니다. 즉, 처음부터 Bulk API를 위한 데이터가 아니라면 기존의 Raw 데이터를 Bulk API 형식에 맞게 재가공을 해야하고, 이 과정에서 적지않은 메모리 및 디스크 Load가 일어나게 됩니다.\n이러한 불편한 점을 해결하기 위해 Python에서 사용할 수 있는 Elasticsearch Python Client 패키지에서 제공하는 Bulk helpers 를 사용하고 있습니다.\n\n해당 플러그인 공식 홈페이지에는 다음과 같이 소개하고 있습니다.\n\n‘기존의 ES에서 제공하는 Bulk API는 고려해야 할 사항이 너무 많기 때문에 성가신 상황이 생기는데 이를 도와주는 기능입니다’ 라고 소개를 하고 있습니다. helpers를 이용하면 대량의 데이터 세트를 메모리에 로드하지 않고도 인덱싱(데이터 추가 작업) 할 수 있기 때문에 빠르고 안정적 으로 데이터 추가를 할 수 있습니다. 이러한 장점을 이용하기 위해 JSON 형식으로 생성된 데이터를 읽어와 인덱싱하는 과정을 살펴 보겠습니다.\n\npip를 통하여 elasticsearch 설치\n\nES에 접속 및 인덱싱을 위해서는 elasticsearch 패키지 를 설치해야 합니다. 다음과 같은 명령어로 설치를 할 수 있습니다.\n\n패키지 설치가 끝나면 다음과 같은 py파일(Python 파일)을 작성합니다.\n\n다음 프로그램의 흐름을 설명하면 다음과 같습니다.\nElasticsearch 서버에 접속합니다.\n데이터가 저장되어 있는 파일 약 100라인 단위로 읽습니다.\nBulk 업로드를 위해 데이터를 가공하고 Bulk 업로드를 진행합니다.\n위와 같이 Python과 Python Elasticsearch Bulk Helpers를 이용하면 간단하게 데이터 대량 업로드가 가능합니다.\n\n이상으로, AIR™ (Ad Integrated Report)에서 데이터를 사용하기 위해 이루어지는 프로세스에 대해 정리해보았습니다.\n데이터 적재 프로세스에 대해 궁금한 점이 있다면 언제든지 문의 해주시길 바랍니다. 감사합니다.\n\n## Related Posts via Categories\n\n구글애즈가 정확검색·구문검색 키워드까지 AI 모드에 노출하기 시작했다 — 자동화 상품 없이 AI 답변 화면에 들어가는 첫 실험\nAI가 React 앱을 직접 디버깅 – Agent 기반 디버깅\nChatGPT 광고가 픽셀·전환 API·맞춤 오디언스를 갖췄다 — 답변 화면이 측정 가능한 광고 매체가 되는 순간\nAI 시대, 데이터도 설명이 필요합니다\nMCP 클라이언트는 Authorization Server를 어떻게 찾는가: 공식 MCP TypeScript SDK와 VS Code 구현 비교\nRAG 시대의 GEO: AI가 콘텐츠를 읽는 방식과 스키마의 진짜 역할\nAI 에이전트로 웹 데이터 수집 가능 여부 자동 검증하기\nGA4 Intraday 실시간 테이블, 대시보드 원천 데이터로 바로 사용할 수 있을까?\n워크플로우 오케스트레이션 플랫폼 Temporal 알아보기\niOS 14.5부터 GA4까지, 환경 변화가 가져온 업무 폭증을 해결하는 실무 전략은…?\n\n다음에 대해 검색하기...\n\n최신 글 둘러보기\n\n기존 SEO와 무엇이 같고 무엇이 다른가\n\n콘텐츠가 답인 걸 모르는 사람은 없습니다 — 문제는 지속입니다\n\n광고비를 늘리지 않고 매출을 늘린 회사들은 무엇을 했나\n\n코호트로 비교하면 광고 예산 판단이 달라집니다\n\nGEO를 위한 글쓰기를 위한 작은 노하우\n\n(해외동향) 광고주가 광고플랫폼 리포트에서 자체 측정으로 옮겨가고 있다.\n\n구글애즈가 정확검색·구문검색 키워드까지 AI 모드에 노출하기 시작했다 — 자동화 상품 없이 AI 답변 화면에 들어가는 첫 실험\n\nAI가 React 앱을 직접 디버깅 – Agent 기반 디버깅\n\nChatGPT 광고가 픽셀·전환 API·맞춤 오디언스를 갖췄다 — 답변 화면이 측정 가능한 광고 매체가 되는 순간\n\n마케팅 자동화, 무엇부터 자동화해야 할까?\n\n출처: 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/",
  "related_slugs": [],
  "faq": [
    {
      "a": "Elasticsearch는 아파치 루씬 기반의 오픈소스 분산 검색 엔진으로, NoSQL 기반 데이터베이스처럼 JSON 형식 데이터를 저장하고 검색할 수 있습니다. 비정형 데이터의 색인과 검색, 분석 작업이 가능해 비즈스프링에서는 매체통합 리포트 조회 시 대량 데이터를 빠르게 읽어와 화면에 표시하는 데 활용하고 있습니다.",
      "q": "Elasticsearch는 무엇이고 왜 사용하나요?"
    },
    {
      "a": "근래 데이터 흐름이 변화하면서 Logstash 없이도 Elasticsearch Bulk API를 이용해 더 간단하게 데이터를 저장할 수 있게 되었기 때문입니다. Bulk API는 한 번의 API 호출로 여러 인덱스에 CRUD 처리를 할 수 있어 기존 방식보다 빠른 처리 속도를 제공합니다.",
      "q": "Logstash 대신 Bulk API를 쓰는 이유는 무엇인가요?"
    },
    {
      "a": "Bulk API는 POST 형식으로 /_bulk 주소를 호출하며, body에는 JSON 형식으로 인덱스 정보와 원하는 동작(추가, 삭제 등)에 맞는 데이터를 한 줄씩 작성합니다. 한 줄씩 처리되기 때문에 각 줄마다 별도의 인덱스를 타겟으로 지정하는 것도 가능합니다.",
      "q": "Bulk API 사용 시 데이터는 어떤 형식으로 작성하나요?"
    },
    {
      "a": "기존 Raw 데이터를 Bulk API 형식에 맞게 재가공하면 메모리와 디스크에 부담이 생기는데, Bulk Helpers를 사용하면 대량 데이터 세트를 메모리에 모두 로드하지 않고도 인덱싱할 수 있어 빠르고 안정적으로 데이터를 추가할 수 있습니다.",
      "q": "Python Elasticsearch Bulk Helpers는 어떤 장점이 있나요?"
    },
    {
      "a": "본문에서는 데이터 적재 프로세스에 대해 궁금한 점이 있으면 언제든지 문의해달라고 안내하고 있습니다.",
      "q": "데이터 적재 프로세스에 대해 더 궁금한 점이 있으면 어떻게 하나요?"
    }
  ],
  "jsonld": null,
  "keywords": [],
  "source_id": "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/",
  "video_url": null,
  "duration_sec": null,
  "thumbnail_url": null,
  "image_url": null,
  "caption": null,
  "solution_slug": null,
  "captured_at": null,
  "width": null,
  "height": null,
  "created_at": "2026-09-06T11:59:55.550113+00:00",
  "updated_at": "2026-09-06T11:59:55.550113+00:00",
  "visibility": "public",
  "source_stage": "1",
  "anonymized": true,
  "source_key": "web-blog",
  "origin": "ingest",
  "locked": false,
  "locked_by": null,
  "locked_at": null,
  "gate_state": {
    "g1": {
      "hits": [],
      "pass": true
    },
    "g2": {
      "pass": true,
      "total": 43,
      "issues": [
        "다른 문서와 겹치는 말이 대부분입니다"
      ],
      "applies": true
    },
    "g3": {
      "pass": true,
      "required": false
    },
    "stage": "1",
    "decided_at": "2026-09-12T15:57:48.364Z"
  },
  "raw_id": "08349041-77c7-4655-9c5b-98f85dd007e2",
  "search_text": "[AIR™] 분석 데이터와 매체 데이터의 연동은 어떻게 이루어질까?(3) - BizSpring BLOG  [AIR™] 분석 데이터와 매체 데이터의 연동은 어떻게 이루어질까?(3) - BizSpring BLOG 콘텐츠로 건너뛰기 내비게이션 메뉴 인사이트 테크 활용 방법/사례 활용 방법/사례 성공사례 성공 사례 일반 광고/마케팅 에이전시 이커머스 미디어/콘텐츠 금융/핀테크  [AIR™] 분석 데이터와 매체 데이터의 연동은 어떻게 이루어질까?(3) - BizSpring BLOG\n\n콘텐츠로 건너뛰기\n\n내비게이션 메뉴\n\n인사이트\n\n테크\n\n활용 방법/사례\n\n활용 방법/사례\n\n성공사례\n\n성공 사례 일반\n\n광고/마케팅 에이전시\n\n이커머스\n\n미디어/콘텐츠\n\n금융/핀테크\n\n의료/헬스케어\n\n통신/인터넷\n\n뉴스/트렌드\n\n릴리즈 노트\n\n인터넷트렌드 ↗\n\n웹사이트 ↗\n\n# [AIR™] 분석 데이터와 매체 데이터의 연동은 어떻게 이루어질까?(3)\n\n2023년 10월 06일 2025년 03월 27일\n테크\n\n지난 포스팅 에서는 통합매체 리포트(AIR) 데이터를 생성하기 위해 데이터 베이스를 이용하여 실제로 값이 쌓이는 과정과 결과에 대해 살펴보았습니다.\n이번 포스팅에는 데이터를 통합매체 리포트에서 사용하기 위해 이루어지는 프로세스에 대해 살펴보겠습니다.\n\n## Elasticsearch\n\nElasticsearch (출처: Wikipedia)\n\nElasticsearch 는 아파치 루씬(Apache Lucene)기반의 오픈 소스 분산 검색 엔진입니다. NoSQL 기반의 데이터베이스로 JSON 형식의 데이터를 저장하고 검색이 가능합니다. 또한 비정형 데이터를 색인하고 검색하는 것이 가능하고, 데이터를 기반으로 분석 작업을 진행할 수도 있습니다.\n자세한 내용은 해당 링크 에서도 확인 가능합니다.\n비즈스프링에서는 대량의 데이터를 빠르게 읽어오고 표현하기 위해 매체통합 리포트를 조회 시, Elasticsearch에 저장되어 있는 데이터를 전달받아 화면에 표시하고 있습니다. 기존에 Logstash를 이용하여 Elasticsearch 데이터 저장에 대한 포스팅 을 한 적이 있었습니다. 하지만 근래에 데이터 흐름의 변화로 인하여 Logstash가 아닌 Elasticsearch Bulk API를 이용하여 더욱 더 간단하게 Elasticsearch에 데이터를 저장할 수 있도록 변경하였습니다. 이에 대해 설명하도록 하려고 합니다.\n\n### Bulk API\n\nElasticsearch에서는 대량의 데이터를 한번의 API 호출로 여러 Index에 CRUD(Create, Read, Update, Delete) 처리를 할 수 있도록 Bulk API 를 제공하고 있습니다. 이를 이용하면 기존의 데이터 CRUD보다 훨씬 빠른 속도로 데이터 처리가 가능한 장점이 있습니다. (자세한 내용은 해당 이 링크(클릭) 에서도 확인 가능합니다)\nBulk API는 POST 형식으로 /_bulk 주소를 호출하게 되며, body에는 형식에 맞게 작성하여 파일 혹은 내용을 첨부합니다.\n\n데이터 형식은 JSON 형식으로 작성합니다. 그리고 인덱스에 대한 정보와 원하는 행동에 맞는 데이터에(추가의 경우 추가할 내용, 삭제의 경우 삭제 할 데이터의 ID 등) 대한 내용을 작성합니다. Bulk API 처리 시, 한줄 씩 처리를 하게 때문에 한줄 씩 작성 해야 합니다. 이를 다르게 말하면, 각 줄마다 별도의 Index를 타겟으로 처리도 가능 합니다.\n\n### Python Elasticsearch Bulk Helpers\n\n위의 Bulk API 형식을 보게되면 인덱스에 접근하려면 모든 줄에 인덱스의 정보 및 관련 데이터를 추가해야 합니다. 즉, 처음부터 Bulk API를 위한 데이터가 아니라면 기존의 Raw 데이터를 Bulk API 형식에 맞게 재가공을 해야하고, 이 과정에서 적지않은 메모리 및 디스크 Load가 일어나게 됩니다.\n이러한 불편한 점을 해결하기 위해 Python에서 사용할 수 있는 Elasticsearch Python Client 패키지에서 제공하는 Bulk helpers 를 사용하고 있습니다.\n\n해당 플러그인 공식 홈페이지에는 다음과 같이 소개하고 있습니다.\n\n‘기존의 ES에서 제공하는 Bulk API는 고려해야 할 사항이 너무 많기 때문에 성가신 상황이 생기는데 이를 도와주는 기능입니다’ 라고 소개를 하고 있습니다. helpers를 이용하면 대량의 데이터 세트를 메모리에 로드하지 않고도 인덱싱(데이터 추가 작업) 할 수 있기 때문에 빠르고 안정적 으로 데이터 추가를 할 수 있습니다. 이러한 장점을 이용하기 위해 JSON 형식으로 생성된 데이터를 읽어와 인덱싱하는 과정을 살펴 보겠습니다.\n\npip를 통하여 elasticsearch 설치\n\nES에 접속 및 인덱싱을 위해서는 elasticsearch 패키지 를 설치해야 합니다. 다음과 같은 명령어로 설치를 할 수 있습니다.\n\n패키지 설치가 끝나면 다음과 같은 py파일(Python 파일)을 작성합니다.\n\n다음 프로그램의 흐름을 설명하면 다음과 같습니다.\nElasticsearch 서버에 접속합니다.\n데이터가 저장되어 있는 파일 약 100라인 단위로 읽습니다.\nBulk 업로드를 위해 데이터를 가공하고 Bulk 업로드를 진행합니다.\n위와 같이 Python과 Python Elasticsearch Bulk Helpers를 이용하면 간단하게 데이터 대량 업로드가 가능합니다.\n\n이상으로, AIR™ (Ad Integrated Report)에서 데이터를 사용하기 위해 이루어지는 프로세스에 대해 정리해보았습니다.\n데이터 적재 프로세스에 대해 궁금한 점이 있다면 언제든지 문의 해주시길 바랍니다. 감사합니다.\n\n## Related Posts via Categories\n\n구글애즈가 정확검색·구문검색 키워드까지 AI 모드에 노출하기 시작했다 — 자동화 상품 없이 AI 답변 화면에 들어가는 첫 실험\nAI가 React 앱을 직접 디버깅 – Agent 기반 디버깅\nChatGPT 광고가 픽셀·전환 API·맞춤 오디언스를 갖췄다 — 답변 화면이 측정 가능한 광고 매체가 되는 순간\nAI 시대, 데이터도 설명이 필요합니다\nMCP 클라이언트는 Authorization Server를 어떻게 찾는가: 공식 MCP TypeScript SDK와 VS Code 구현 비교\nRAG 시대의 GEO: AI가 콘텐츠를 읽는 방식과 스키마의 진짜 역할\nAI 에이전트로 웹 데이터 수집 가능 여부 자동 검증하기\nGA4 Intraday 실시간 테이블, 대시보드 원천 데이터로 바로 사용할 수 있을까?\n워크플로우 오케스트레이션 플랫폼 Temporal 알아보기\niOS 14.5부터 GA4까지, 환경 변화가 가져온 업무 폭증을 해결하는 실무 전략은…?\n\n다음에 대해 검색하기...\n\n최신 글 둘러보기\n\n기존 SEO와 무엇이 같고 무엇이 다른가\n\n콘텐츠가 답인 걸 모르는 사람은 없습니다 — 문제는 지속입니다\n\n광고비를 늘리지 않고 매출을 늘린 회사들은 무엇을 했나\n\n코호트로 비교하면 광고 예산 판단이 달라집니다\n\nGEO를 위한 글쓰기를 위한 작은 노하우\n\n(해외동향) 광고주가 광고플랫폼 리포트에서 자체 측정으로 옮겨가고 있다.\n\n구글애즈가 정확검색·구문검색 키워드까지 AI 모드에 노출하기 시작했다 — 자동화 상품 없이 AI 답변 화면에 들어가는 첫 실험\n\nAI가 React 앱을 직접 디버깅 – Agent 기반 디버깅\n\nChatGPT 광고가 픽셀·전환 API·맞춤 오디언스를 갖췄다 — 답변 화면이 측정 가능한 광고 매체가 되는 순간\n\n마케팅 자동화, 무엇부터 자동화해야 할까?\n\n출처: 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/",
  "embedding": null,
  "embedded_at": null,
  "embedding_hash": null,
  "map_x": null,
  "map_y": null,
  "backlinks": [],
  "html_url": "https://bizspring.ai/kb/ref/web/blog-bizspring-co-kr/air-분석-데이터와-매체-데이터의-연동은-어떻게-이루어질까-3-bizspring-blog",
  "markdown_url": "https://bizspring.ai/kb/ref/web/blog-bizspring-co-kr/air-분석-데이터와-매체-데이터의-연동은-어떻게-이루어질까-3-bizspring-blog.md"
}