본문으로 이동
대량의 광고 데이터 필터 기능 개발기: ES한테 뺨맞고 Citus한테 안긴 썰 / if(kakao)2022
컨퍼런스

대량의 광고 데이터 필터 기능 개발기: ES한테 뺨맞고 Citus한테 안긴 썰 / if(kakao)2022

if kakao 카카오 · YouTube

원문 보기

AI 핵심 요약

키워드 광고 DSP에 대량의 광고 데이터와 최대 2년치 보고서를 대상으로 검색·필터·정렬·페이징 기능을 추가해야 했지만, 애플리케이션에서 처리하기에는 데이터 규모와 메모리 부담이 컸습니다. Elasticsearch의 parent-child 조인 등을 검토했으나 대규모 집계에서 약 6만 5천 건 제한과 노드 장애를 확인해, PostgreSQL 기반 분산 데이터베이스인 Citus를 선택했습니다. Citus에서는 광고 도메인 간 조인을 피하고 상위 도메인부터 ID를 찾는 방식으로 조회했으며, 데이터가 많은 경우 캠페인 ID를 필수 조건으로 추가해 쿼리 시간을 줄였습니다. 광고 도메인은 Kafka 이벤트로, 보고서 데이터는 Airflow와 Flink 등을 통해 동기화해 기능을 출시했고, 저장소 선택은 기술의 이름보다 실제 요구사항과 데이터 규모를 기준으로 검증해야 한다는 점을 얻었습니다.

  • 검색 기능이라는 이유만으로 Elasticsearch를 선택하지 말고, 집계 규모와 데이터 관계를 실제 요구사항에 대입해 검증하세요.
  • Elasticsearch의 parent-child 조인은 관계를 표현할 수 있지만, 샤드 제약과 집계 한계를 함께 고려해야 합니다.
  • Citus에서 조인하려면 관련 데이터가 같은 샤드 키로 배치되어야 하므로, 도메인 간 조인은 애플리케이션에서 단계적으로 처리할 수도 있습니다.
  • LIKE 검색은 항상 느리다고 단정하지 말고, 실제 데이터와 쿼리로 성능을 비교해 선택하세요.
  • Citus에 데이터를 적재할 때 도메인 ID별 트랜잭션으로 분리하지 않으면 샤드 경합과 데드락 탐지 비용이 커질 수 있습니다.

소개

신규 키워드 광고 플랫폼을 오픈하고 나서, 대량의 광고데이터에 대해 다양한 필터 조건들을 적용하여 데이터를 보고 싶다는 요구사항이 확인되어 프로젝트를 진행하게 되었습니다. 데이터의 양이 많았기 때문에 단순히 애플리케이션에서 모든 것을 처리할 수 없었고, 필터 기능을 위해 사용할 데이터 저장소부터 필터 관련 로직 설계까지 다시 고민해야 했습니다. 이번 세션을 통해서 필터 기능을 제공하기 위해 Elasticsearch를 먼저 검토했으나 결국에는 citus라는 데이터 저장소를 사용하는 것으로 결정하게 된 과정을 공유하고자 합니다. #Citus 카카오 crux개발2셀에서 서버 개발을 담당하고 있는 제노스라고 합니다. 발표자료 보기 👉https://speakerdeck.com/kakao/ifkakao22-25 if(kakao)2022에 대한 자세한 정보는 👉 https://if.kakao.com if(kakao)2022에 대한 문의는 👉 if@kakaocorp.c...

비슷한 학습 자료

컨퍼런스 if kakao

AI 기반 광고 추천 시스템에서 스파크 스트리밍은 실시간 데이터 처리를 위한 핵심 구성 요소로 작동합니다. 이 파이프라인은 사용자 행동 데이터를 실시간으로 수집하고 처리하여 개인화된 광고를 추천하는 데 사용됩니다. 이번에 발표할 내용은 스파크 파이프라인 아키텍처와 스파크를 효과적으로 모니터링하기 위한 방법들을 소개합니다. #카프카 #스파크 #실시간_파이프라인 #빅데이터 광고추천팀에서 실시간 데이터 프로세싱과 서빙을 맡고 있는 Cory입니다. 발표자료 보기 👉 https://speakerdeck.com/kakao/ifkakao24-23 if(kakaoAI)2024에 대한 자세한 정보는 👉 https://if.kakao.com #카카오 #이프카카오 #개발자컨퍼런스 #AI #기술 #개발 #ifkakaoAI2024

데이터베이스 데브옵스 · 인프라

컨퍼런스 if kakao

Day3 Streaming / if(kakao)2022

컨퍼런스 if kakao

if(kakao)2022 컨퍼런스 Day3 Streaming 를 소개합니다. [ Keynote ] 클레이튼과 블록체인 기술 / 서상민(sam.seo) 크러스트유니버스 Beyond Korea(Company for Global) / 김일두(curtis.adcd) 카카오브레인 [ Preview ] AI / 송근창 (kacey.song) 카카오브레인 블록체인 / 김정현 (colin.klaytn) 크러스트 유니버스 클라우드 / 정진욱 (jake.j) 카카오 백엔드 / 양나은 (sue.anastasis) 카카오모빌리티 빅데이터 / 송대섭 (steven.song) 카카오게임즈 ESG + General / 이민정 (yally.next) 카카오 if(kakao)2022에 대한 자세한 정보는 👉 https://if.kakao.com if(kakao)2022에 대한 문의는 👉 if@kakaocorp.com #카카오 #이프카카오 #개발자컨퍼런스 #기술 #개발 #ifkakao...

컨퍼런스 if kakao

Preview data / if(kakao)2022

컨퍼런스 if kakao

if(kakao)2022 컨퍼런스에서 data 관련 기술 발표세션을 소개합니다. 02:24 1. Batch Performance 극한으로 끌어올리기: 1억 건 데이터 처리를 위한 노력 by 안성훈(benny.ahn) 카카오페이 정산플랫폼팀 베니입니다. 서버 Performance 개선에 관심이 많습니다. 02:38 2. InnoDBCluster for kakao by 김근표(pio.p) 카카오에서 MySQL Database 를 운영하고 있는 피오입니다. 03:12 3. Kakao Hadoop Plaform (KHP): 카카오 하둡 플랫폼의 아키텍처와 개발/운영에 대한 이야기 by 국성표(elixir.kook) 카카오 내 하둡 클러스터를 효율적으로 운영하기 위해 힘쓰고 있습니다. KHP 프로젝트 중에는 배포판 PL을 맡았으며, 최근에는 Spark, Kafka 관련 업무를 수행하고 있습니다. 03:34 4. 생성부터 활용까지, 게임데이터 Flow 따라가기 by 이학희(kyle.l...

데이터베이스 데브옵스 · 인프라

컨퍼런스 if kakao

광고 웹 SDK(AdFit Web SDK)는 AdFit 플랫폼을 이용하여 광고를 게재하고 수익을 창출하기 위해 웹사이트 등에서 사용하는 라이브러리입니다. 기존 프로젝트의 문제점을 분석하고 개선하고자 개편을 진행하였고 그 과정에서 얻은 소중한 경험들을 공유하려 합니다. 그리고 React의 이웃사촌, Preact를 소개하고 광고 SDK에 어떻게 도입하고 활용했는지도 이야기하고자 합니다. #리팩토링 #Preact 카카오 FE플랫폼팀의 비즈FE파트에서 광고 SDK를 개발하고 있는 제이크 입니다. 발표자료 보기 👉https://speakerdeck.com/kakao/ifkakao22-78 if(kakao)2022에 대한 자세한 정보는 👉 https://if.kakao.com if(kakao)2022에 대한 문의는 👉 if@kakaocorp.com #카카오 #이프카카오 #개발자컨퍼런스 #기술 #개발 #ifkakao2022

프론트엔드

컨퍼런스 if kakao

Preview Backend_1 @if(kakao)2022

컨퍼런스 if kakao

if(kakao)2022 컨퍼런스에서 Backend_1 관련 기술 발표 트랙을 소개합니다. 03:02 1. API 테스트 주도 개발의 시작 by 공진산(ronaldo.c) 카카오 테스트플랫폼셀에서 개발을 하고 있는 호날두입니다. 03:38 2.대량의 광고 데이터 필터 기능 개발기: ES한테 뺨맞고 Citus한테 안긴 썰 by 이동준(genos.lee) 카카오 crux개발2셀에서 서버 개발을 담당하고 있는 제노스라고 합니다. 04:17 3.Docker Swarm 기반 Redis SaaS 플랫폼 구축사례 by 이은미(silvia.lee) 카카오 시스템엔지니어와 레디스 플랫폼 엔지니어를 맡고있는 실비아입니다. 04:48 4. 카카오톡 메시징 시스템 재건축 이야기: C++ 서버를 Java및 Kotlin으로 by 남기영(sirius.nam) 카카오톡 메시징 시스템을 개발 및 운영하는 시리우스 입니다. 05:10 5. 카카오톡 메시징 지표 이상감지 시스템의 개선사례 by 김예솔(so...

백엔드 데이터베이스 소프트웨어 테스트

컨퍼런스 if kakao

Preview Data @if(kakao)2021

컨퍼런스 if kakao

if (kakao) 2021 컨퍼런스에서 Data 관련 기술 발표 세션을 소개합니다. 1. 대량의 스트림 데이터를 실시간으로 분류하기 @rick.lee 대량의 스트림 데이터를 실시간으로 분류하면서 늘어나는 데이터와 분류 조건으로 발생하는 문제들을 Elasticsearch Percolator를 활용해 개선하는 방법을 공유합니다. 2. 300GB 데이터로 어떻게 학습을 할 수 있을까? @peter.han 광고추천팀에서 전환최적화 타게팅 모델을 딥러닝으로 전환하면서 학습 데이터의 규모가 크고 광고주 별로 많은 모델을 처리하다보니 많은 어려움을 겪었습니다. 모델의 성능/효율을 유지하면서 어떻게 하면 데이터를 줄일 수 있을까 고민하고 튜닝했던 경험들을 공유합니다. 목차 : 1. 데이터의 볼륨과 데이터의 처리 시간 2. 하둡 데이터를 처리할 때 병목구간 3. 데이터를 줄이기 위한 방법들에는 어떤 것들이 있는지 소개하고 우리 상황에 적합한 방법을 선택한 과정 3. 추천 시스템 ai...

데이터베이스 딥러닝 · 머신러닝