현재 위치 - 중국 분류 정보 발표 플랫폼 - 비즈니스 서비스 정보 - NoSQL: NoSQL 스키마를 사용하여 실시간 광고 시스템을 구축하는 방법

NoSQL: NoSQL 스키마를 사용하여 실시간 광고 시스템을 구축하는 방법

JDNoSQL 플랫폼이란 무엇입니까

JDNoSQL 플랫폼은 구조화 된 데이터와 비정형 데이터를 저장하고 무작위 읽기 및 쓰기 및 업데이트를 지원하는 분산 열 지향 키 값 밀리 초 스토리지 서비스이며 유연한 동적 열 메커니즘, 아키텍처에서 수평 확장 지원, 높은 동시성, 짧은 대기 시간, 고가용성, 강력한 일관성 있는 데이터베이스 서비스를 제공하여 다양한 비즈니스 시나리오를 충족합니다. 완벽한 플랫폼 지원, 비즈니스 셀프 서비스 빌드 테이블 지원, 모니터링 보기, 온라인 DDL 등

1.1 JDNoSQL 생태 위치

위 그림에서 볼 수 있듯이 JDNoSQL 은 HDFS 를 기반으로 하는 분산형 열 지향 스토리지 시스템입니다. JDNoSQL 은 대규모 데이터 세트에 실시간 읽기 및 쓰기, 임의 액세스가 필요한 경우에 사용할 수 있습니다. 현재 시중에 나와 있는 일부 관계형 유형 데이터베이스는 하이퍼스케일 (hyperscale) 및 분산 (distributed) 기능을 고려하지 않고 구축되어 있습니다. 많은 상인들이 복제 및 파티셔닝 방식을 통해 데이터베이스를 확장하여 단일 노드의 경계를 넘나들지만, 이러한 기능은 일반적으로 나중에 추가되며 설치 및 유지 관리가 복잡합니다. 또한 조인, 복잡한 쿼리, 트리거, 뷰 및 외래 키 제약 조건과 같은 RDBMS 의 특정 기능에도 영향을 줍니다. 이러한 작업은 대규모 RDBMS 에서 비용이 많이 들고 전혀 실현되지 않습니다. JDNoSQL 은 확장성 문제를 다른 관점에서 처리합니다. 아래에서 위로 노드를 선형으로 추가하여 확장합니다. JDNoSQL 은 관계형 데이터베이스가 아니며 SQL 을 지원하지 않습니다. 현재 JDPhoenix 를 통해 SQL 을 지원할 수 있지만 RDBMS 가 처리할 수 없는 고유 특기를 가지고 있습니다. JDNoSQL 은 크고 희소한 테이블을 상업용 서버 클러스터에 교묘하게 배치합니다. JDNoSQL 은 다음과 같은 특징을 가지고 있습니다.

대: 테이블에는 수억 행, 수백만 열이 있을 수 있습니다.

열 지향: 목록 (클러스터) 에 대한 저장 및 권한 제어, 열 (클러스터) 이 독립적으로 검색됩니다.

희소성: 널인 열의 경우 저장 공간을 차지하지 않으므로 테이블을 매우 희소하게 디자인할 수 있습니다.

모달리스: 각 행에는 정렬할 수 있는 기본 키와 원하는 수의 열이 있으며, 열은 필요에 따라 동적으로 증가할 수 있으며, 동일한 테이블의 행마다 완전히 다른 열을 가질 수 있습니다.

데이터 다중 버전: 각 셀의 데이터에 여러 버전이 있을 수 있습니다. 기본적으로 버전 번호는 자동으로 지정되며 버전 번호는 셀이 삽입될 때의 타임스탬프입니다.

단일 데이터 유형: JDNoSQL 의 데이터는 모두 문자열이며 유형이 없습니다.

장면 적용

NoSQL 의 징둥 사용은 주로 장면과 관련이 있습니다.

타이밍 비즈니스 (모니터링, IOT)

메시지 주문 (주문/보험증권, 채팅 기록)

큐브 분석 (라이브 와이드 테이블, 보고서, 검색 권장 사항)

모니터링 (UMP/MDC/CAP/JDH)

Feeds 흐름 업무 (평가 정보, 질의 응답 정보, 폭포수, 위챗 모멘트)

AI Storage (사용자 특성, NLP 어료, 모델 스토리지)

시공간 데이터 (궤적, 기상 네트워크)

금융 업무 (상관 분석, 신용 분석, 바람 통제/흰색/지불/관세)

2.1 NoSQL 기반 광고 실시간 컴퓨팅 시스템

2.1.1 온라인 광고의 몇 가지 주요 특징:

전통적인 광고에 비해 온라인 광고는 몇 가지 특징을 보여 주며, 이러한 특징을 이해하는 것은 온라인 광고 마케팅 전략의 실질적인 기초이다.

온라인 광고의 특징은 다음과 같습니다:

전파 범위가 넓다: 인터넷 광고의 전파 범위가 넓어 시공간에 구애받지 않고 인터넷을 통해 광고 정보를 24 시간 쉬지 않고 전 세계에 전파할 수 있다. 우리나라 네티즌의 수는 어마하고 빠르게 발전하고 있다. 이들 네티즌은 소비능력이 높고, 온라인 광고의 관객이며, 세계 어느 곳에서나 인터넷에서 마음대로 광고를 찾아볼 수 있다. 이런 전파 효과는 어떤 전통 매체도 달성할 수 없다.

강제적이지 않은 정보 보급: 온라인 광고 속성 주문형 광고, 신문 분류 광고의 성격을 가지고 있지만, 청중의 철저한 탐색이 필요하지 않고, 자유롭게 조회가 가능하며, 잠재 고객의 요구에 따라 적극적으로 제시 및 전시할 수 있어 사회 전체의 주의력 자원을 절약하고 광고의 타당성과 효율성을 높일 수 있다.

청중 데이터의 양은 정확 하 게 계산할 수 있습니다: 전통적인 미디어 광고, 얼마나 많은 사람들이 광고 정보, 인터넷 광고, 권위, 공정한 트래픽 통계 시스템을 통해, 정확 하 게 각 광고의 브라우징 수를 계산 하기 전에, 이러한 사용자는 시간과 지리적 분포를 확인, 광고 효과를 평가 하 고 광고 배치 전략을 최적화 하기 위해 도움이 됩니다.

유연한 적시성: 인터넷 광고는 필요에 따라 광고 콘텐츠를 적시에 업데이트할 수 있습니다.

강력한 교환성과 감각성: 온라인 광고의 전달체는 기본적으로 멀티미디어, 하이퍼텍스트 등이다. 제품에 대한 관심이 필요하다. 클릭 한 번으로 더 자세한 정보, 더 자세한 정보, 더욱 생생한 정보, 심지어 소비자들이 직접 제품, 서비스, 브랜드를 체험할 수 있도록 할 수 있다. 가상현실 기술을 통해 고객을 몰입시킬 수 있다.

2.1.2 온라인 광고의 데이터 유형:

온라인 광고와 관련된 수집 데이터는 다양하며, 그 중 가장 중요한 것은 전시, 클릭, 행동, 제 3 자 데이터 모니터링입니다.

광고 전시 데이터

광고 전시 데이터는 광고 포지션에서 얻은 전시 데이터이며, 일반적으로 광고 전시 현황 (adpv) 통계 분석을 위해 서버측으로 보내야 합니다. 일반 데이터에는 날짜, 사용자 ID, 광고 ID, IP 등의 정보가 포함됩니다. 다음은 JSON 필드 확장

이 있는 광고 프레젠테이션의 데이터 형식입니다

2015-01-13 19: 11: 55 {00d81 D1 d-00a291-0e2300-87 DBC E0 da90} {? 아디아? : "31769", "asid": "2:" 2 ","aspid":"0: "0", "ptime": "14", "ag": "4,5

광고 클릭 데이터

광고 클릭 데이터는 각 광고 비트에서 얻은 사용자가 클릭하는 데이터로, 일반적으로 광고 클릭 수 (adclick) 통계 분석을 위해 서버측으로 보내야 합니다. 일반 클릭 데이터에는 날짜, 사용자 ID, 광고 ID, IP 등의 정보가 포함되어 있습니다.

다음은 광고 클릭의 데이터 형식이며 광고 전시와 크게 다르지 않습니다:

2015-01-13 00: 11: 06 {d3333c3-000c84-2345fb-db768ec56} {"wid": "13", "aid" " "mid": "16507", "mg": "155", "area": "13", "DSP": "3"} 175.8.11

광고 행동 데이터

광고 행동 데이터는 광고 위치에서 얻은 사용자가 다운로드, 설치 또는 거래한 데이터이며, 일반적으로 이 데이터도 서버측으로 전송해 광고 행위 (adaction) 를 위한 그의 분석을 받아야 한다. 일반 행동 데이터에는 날짜, 사용자 ID, 광고 ID, IP 등의 정보가 포함됩니다. 다음은 광고 행동의 데이터 형식이며 광고 전시 데이터와 크게 다르지 않지만 JSON 확장 필드에 대한 일부 정보는

입니다.

2015-01-13 09: 59: 39 {00567 d26ad-565 d01-c2238-f99000 c0a0} {"adid": "234555", "

타사 모니터링 데이터

광고주들이 목표 소비의 인터넷 미디어 브라우징 습관을 쉽게 이해하고 고객으로 전환될 확률 등을 파악하고 공정하고 객관적이며 권위 있는 통계를 얻기 위해서는 제 3 자 광고 감시회사를 이용해 광고 배치 모니터링에 참여할 필요가 있다. 제 3 자 모니터링은 날짜, 광고 ID, 사용자 ID 등을 포함한 모니터링 데이터도 생산합니다. 다음은 타사 모니터링 데이터의 예입니다.

2014-12-31 108a 451bd3787 _ 22e6 _ d020 _ 786 df2695b {000a d54073-19 ddc2-971f26-36f 4119425} <

2.1.3. 광고 데이터 과제

데이터 가치는 시간이 지남에 따라 감소하므로 이벤트가 발생한 후 가능한 한 빨리 처리해야 합니다. 데이터가 나타나면 즉시 처리할 수 있는 것이 가장 좋습니다. 캐시하는 것이 아니라 이벤트가 한 번 처리됩니다. 데이터 흐름 모델에서는 처리해야 할 입력 데이터 (전체 또는 일부) 가 무작위로 액세스할 수 있는 디스크나 메모리에 저장되지 않습니다. 하나 이상의 데이터를 사용합니까? (윌리엄 셰익스피어, 템플릿, 데이터, 데이터, 데이터, 데이터, 데이터, 데이터, 데이터, 데이터, 데이터, 데이터, 데이터) 연속 데이터 흐름? 형태로 도착하다. 기존 스토리지 관계 모델과 달리 데이터는

와 같은 몇 가지 주요 특징을 가지고 있습니다

스트림의 데이터 요소는 온라인으로 도착하며

실시간 처리가 필요합니다

시스템은 데이터 요소가 하나의 데이터 스트림에서 여러 데이터 스트림에 걸쳐 있는지 여부에 관계없이 처리할 새로 도착한 데이터 요소의 순서를 제어할 수 없습니다. 즉, 재생된 데이터 스트림이 마지막 데이터 스트림의 요소 순서와 일치하지 않을 수 있습니다.

데이터 스트림의 잠재적 크기는 끝이 없을 수 있습니다.

데이터 스트림의 요소가 처리되면 폐기되거나 보관됩니다.

2.1.4 시스템 주요 기능

이 시스템은 현재 광고업만을 위해 서비스하고 있으며, 광고 전시 데이터와 광고 클릭 데이터가 실시간으로 재고 시스템에 반영될 수 있도록 요구하고 있으며, 재고 시스템은 기존 투입량을 기준으로 이후의 배치 전략을 계산할 수 있다. 동시에, 특정 광고의 월간 일일 전시 현물통계를 제공할 수 있으며, 시와 사용자의 3 차원 통계를 분리할 수 있다.

위 기능을 충족하면 시스템 성능 요구 사항이 30 초 이내에 최대 TPS=500W 의 액세스 요청을 지원합니다.

2.1.5. 시스템 아키텍처

이전 요구 사항 분석에 따르면 설계 목표와 주요 기능 요구 사항에 따라 전체 광고 실시간 컴퓨팅 시스템을 로그 수신 계층, 생산자 계층, 소비자 대기열 계층, 소비자 계층, 비즈니스 논리 계층 및 스토리지 계층의 6 개 계층으로 나눕니다. 메시지 대기열 선택 징둥 JDQ 실시간 데이터 파이프라인, Kafka 구현을 기반으로 하는 높은 처리량을 제공하는 분산 메시지 대기열, 스트리밍 시나리오를 위한 비즈니스 논리 계층 선택 징둥 JRC 스트리밍 컴퓨팅, Flink 기반 스트리밍 컴퓨팅 엔진 제공, 스트리밍 컴퓨팅을 위한 스토리지 선택 높은 동시, 짧은 대기 시간, 고가용성, 천만 레벨 QPS 높은 처리량, 임의 읽기 및 쓰기 NoSQL 맵은 다음과 같습니다.

로그 수신 계층

이 계층은 로그 수신 도구를 통해 로컬 로그 파일을 생산하는 데이터 소스입니다. 일반적으로 사용되는 수신 툴로는 Scribe, Nginx, Syslog-ng, Apache Http Server 등이 있으며, 이러한 데이터 스트림은 수신 후 로컬 디스크 파일에 저장됩니다.

생산자 계층

이 계층은 로그 파일을 로컬에서 Kafka 클러스터로, 지정된 파일 또는 디렉토리를 실시간으로 모니터링하고 증분 데이터를 추출하여 Kafka 클러스터로 전송하는 데이터 전송 계층입니다.

메시지 대기열 계층

이 계층은 입력 데이터의 로드 밸런싱, 메시지 버퍼, 높은 처리량, 수평 확장성 등을 담당하는 Kafka 클러스터입니다. 메시지 대기열 계층이 Kafka 를 선택한 이유는 Kafka 가 처리량 특성에 초점을 맞추고 버퍼링 기능을 갖추고 있기 때문입니다.

소비자 계층

이 계층은 소비자 Kafka 대기열의 메시지를 적용하고 메시지 수를 비즈니스 논리 계층에 입력하는 하위 계층입니다. 비즈니스 논리 계층은 Flink 프레임워크를 사용하므로 모든 소비자 계층은 Kafka 와 Flink 클러스터를 연결해야 합니다.

비즈니스 논리 계층

이 계층은 다양한 규칙의 비즈니스 요구 사항을 쉽게 배포하고 빠른 컴퓨팅을 가능하게 하는 Flink 프레임워크를 사용하는 요구 사항을 구현하는 중요한 하위 계층입니다.

스토리지 계층

대상 스토리지 선택에 사용되는 분산 스토리지 NoSQL 은 높은 처리 속도, 낮은 지연 실시간 업데이트, 특정 시나리오에 대한 비즈니스 요구 사항 찾기, 수평 확장 요구를 충족합니다.

2.1.6. 테이블 디자인

최종 결과에 대한 실시간 질의 및 주기적 통계 요구 사항을 충족하기 위해 결과 데이터를 NoSQL 에 존재하려면 먼저 테이블의 구조를 정의해야 합니다. 데이터에는 광고 전시와 광고 클릭과 관련이 없는 두 가지 유형의 데이터가 포함되어 있고 업무 방향도 다르기 때문에 두 가지 유형의 데이터를 저장할 수 있는 두 개의 테이블을 만들어야 합니다.

광고 실시간 전시 통계표

광고 실시간 전시 통계표의 구조 설계는 다음과 같습니다.

여기서 행 빌드의 설계는 매우 중요합니다. 이 테이블에는 주 이름, 시 이름 및 uid 로 구분되는 세 가지 유형의 행 빌드가 포함되어 있어 세 가지 차원의 데이터를 보다 효율적으로 계산할 수 있습니다. 열 패밀리와 열 수는 모두 1 입니다. 다음은 value 필드가 16 진수 바이트 코드로 표시되고 long 인 광고 실시간 통계표의 데이터 예입니다.

29260 _ {2eebee83-eee4-eae6-1f0d-a27ab14549fc} _ 2015 01 17 column = PV: CNT, timestamp = 1399

광고 실시간 클릭 통계표

광고 실시간 클릭 통계표의 구조는 다음과 같습니다:

실시간 클릭 통계표는 광고 실시간 표시 통계표에 비해 훨씬 간단합니다. 행건은 adid_+날짜, 매우 일반적인 디자인입니다. 열 패밀리와 열의 데이터 양은 모두 1 입니다. 다음은 광고 실시간 클릭 통계표의 데이터 예입니다. 여기서 value 필드는 16 진수 바이트코드로 표시되며 긴 정수입니다.

36713 _ 201501 17 column = clk: CNT, timestamp=1390374472961, value = \ \ x00 \ \ x00 \ \ x00

2.1.7. NoSQL 통계 사용

위 표 구조 설계의 설명 및 구현에 따라 이 구조는 다음과 같은 다양한 실시간 쿼리 요구 사항을 지원합니다.

한 지방의 한 광고의 현재 투입량.

어떤 광고가 어느 도시에서 현재 투방하고 있다.

사용자 클라이언트에 대한 광고의 현재 배치

한 광고의 현재 클릭 수

한 광고가 누적된 기간 (예: 한 달) 동안 한 주의 역사적 투입 추세

한 광고가 누적된 기간 (예: 한 달) 동안 한 시의 역사적 출시 추세

누적 기간 (예: 한 달) 동안 한 사용자 클라이언트에 대한 광고의 과거 배치 추세

한 광고의 누적 기간 (예: 한 달) 동안의 클릭 수 추세

위에서 언급한 이러한 요구 사항은 NoSQL 클라이언트를 캡슐화하여 쉽게 구현할 수 있으며 실시간 요구 사항을 충족할 수 있습니다. 프런트 엔드 데이터 시각화는 echarts, highcharts, d3.js 등 오픈 소스 JavaScript 프레임워크를 통해 신속하게 수행할 수 있습니다

요약

Gartner 에 따르면, 전 세계 비관계형 데이터베이스 (NoSQL) 는 2020~2022 년 30 대 안팎의 고속 성장을 유지하여 데이터베이스 전체 시장보다 훨씬 높을 것으로 예상된다. NoSQL 과 빅 데이터 기술의 부상과 발전과 함께 NoSQL 및 NoSQL 생태계를 기반으로 한 저렴한 원스톱 데이터 처리 플랫폼이 번창하고 있습니다. 현재 NoSQLAPI, 관계형 PhoenixSQL, 타이밍 OpenTSDB, 전체 텍스트 검색 Solr/ES, 시공간 GeoMesa, 그림 HGraph, 분석 Spark on HBase 등이 지원됩니다. NoSQL 의 급속한 발전에 따라 NoSQL 사용자 집단이 점점 더 커지고 있으며, 향후 NoSQL 및 NoSQL 생태계도 다양한 비즈니스 시나리오를 더 잘 충족시킬 수 있게 될 것입니다.

NoSQL: NoSQL 스키마를 사용하여 실시간 광고 시스템을 구축하는 방법

태그: ptime 의 다른 echarts 설명을 사용하여 pen high concurrent

를 얻는 방법에 대해 설명합니다