NoSQL의 : NoSQL의 아키텍처 빌드 실시간 광고 시스템을 사용하는 방법

다음 문서는 Jingdong 소매 기술을 제공, 청 도시의 생각

링크 : mp.weixin.qq.com/s/OFkRnbWEa ...

어떤 플랫폼은 JDNoSQL입니다

JDNoSQL 플랫폼 분산 컬럼 지향 스토리지 서비스 키 값 밀리 구조화 된 데이터 및 구조화되지 않은 데이터, 랜덤 액세스 및 업데이트 지원 유연한 동적 열기구, 상기지지 구조체의 수평 확장 높은 동시성을 제공하는 단계, 저장, 낮은 대기 시간 고 가용성, 강력한 균일 한 데이터베이스 서비스는 다양한 비즈니스 시나리오를 충족합니다. 완벽한 플랫폼 지원, 테이블의 비즈니스 지원 자조 건설, 감시 및 기타 온라인 DDL을 볼 수 있습니다.

이는 생태 위치 1.1 JDNoSQL

그림에서 볼 수 있듯이, JDNoSQL HDFS에 분산 된 건물은, 열 저장 시스템을 지향. 당신이 실시간 읽기 및 쓰기, 매우 큰 규모의 데이터 세트에 랜덤 액세스해야하는 경우, 당신은 JDNoSQL를 사용할 수 있습니다. 현재 대규모 분산 특성을 구축 할 때 데이터베이스 관계의 몇 가지 유형, 그리고 고려하지 않는 시장. 복제 및 파티션 경계에 의해 확장하는 많은 기업들이 혁신적인 단일 노드 데이터베이스를 만들지 만, 이러한 기능은 일반적으로 이후에 추가, 설치 및 유지 보수가 매우 복잡하다. 이것은 또한 달성하기조차 불가능, 대형 RDBMS에 이러한 작업의 비용에, 커플 링 복잡한 쿼리, 트리거, 뷰, 외래 키 제약 조건과 같은 RDBMS의 특정 기능에 매우 높은 영향을 미칠 것이다. 다른 각도에서 JDNoSQL 프로세스 확장 성 문제. 그것은 다음 확장 할 노드에서의 선형 증가한다. JDNoSQL하지 관계형 데이터베이스는 SQL 지금 JDPhoenix으로 SQL을 지원하는 지원하지 않습니다,하지만 RDBMS 상용 서버 클러스터에서, JDNoSQL 능숙 대형 스파 스 테이블을 처리 할 수 ​​있습니다 자신의 전문 분야가 있습니다. JDNoSQL는 다음과 같은 특징이 있습니다 :

  • 대형 : 테이블입니다 1 백만에 행 수억을 가질 수 있습니다.

  • 열 지향 : 목록 저장 및 액세스 제어, 열 (클러스터) 독립적 인 검색을 위해 (클러스터).

  • 스파 스 : 열이 빈 (NULL)이며, 테이블이 매우 스파 스 설계 할 수 있도록 저장 공간을 차지하지 않는 경우.

  • 없음 모드는 필요에 따라 각 행은 기본 정렬 키가과 열 모든 숫자가 될 수 있으며, 열은 매우 다른 열을 가질 수있는 테이블의 다른 행에 동적으로 증가 될 수있다.

  • 데이터의 여러 버전 : 각 셀의 데이터는 자동으로 버전 번호, 셀이 삽입 된 타임 스탬프의 버전 번호를 할당 기본적으로 여러 버전이있을 수 있습니다.

  • 단일 데이터 형식 : 데이터는 JDNoSQL 문자열, 아니 유형입니다.

시나리오

Jingdong에서 NoSQL에 주로 어떤 장면에 관련된 :

  • 사업의 유형을 타이밍 (모니터링, IOT)

  • 주문 메시지 (주문 / 정책, 채팅)

  • CUBE 분석 (실시간 넓은 테이블, 보고서, 추천 검색)

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

  • 스트리밍 서비스를 피드 (평가 정보, Q & A 정보, 폭포, 친구의 원)

  • AI 스토리지 (사용자 특성의 NLP 코퍼스 모델 저장)

  • 시공간 데이터 (기상 네트워크 추적)

  • 금융 서비스 (상관 관계 분석, 신용 분석, 리스크 관리 / 차용증 / 결제 / 정보 관리)

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

2.1.1 여러 대형 온라인 광고 :

기존 광고에 비해 이러한 특성을 이해하고, 자신의 특성의 일부를 보여주는 온라인 광고는 상당한 온라인 광고 마케팅 전략의 기초가된다. 다음과 같이 온라인 광고의 특징 :

  • 넓은 확산 : 온라인 광고의 폭 넓은 확산 범위가 아니라 시간과 공간에 의해 제한, 당신은 인터넷을 통해 전 세계 광고 정보 연중 무휴 확산을 넣을 수 있습니다. 중국의 인터넷 사용자의 큰 숫자뿐만 아니라, 이러한 인터넷 사용자의 급속한 발전이 더 높은 소비 전력을 가지고, 온라인 광고의 관객, 광고는 세계에서 인터넷 어디서든, 전통적인 미디어의 모든 종류의 확산 효과를 찾아 무료 그것은 달성 될 수 없다.

  • 정보의 비 의무 보급 : 온라인 광고 수요 광고의 특성은 신문과 속성은 광고를 분류하지만, 따라서 전체 사회를 저장, 조회 및 이니셔티브를 보여주기 위해 무료 및 잠재 고객의 요구에 따라 제시 철저하게 찾아 관객이 필요하지 않습니다 전력 자원은 광고의 관련성과 효율성을 향상시킬 수 있습니다.

  • 정확한 통계 수있는 데이터의 대상 금액 : 전통 매체 광고, 권위와 공정성 트래픽 통계 시스템, 광고 메시지, 인터넷 광고에 노출되어 정확하게 얼마나 많은 사람들이 알고 어렵다, 방문자의 정확한 통계 숫자 각 광고 할 때 긴 이러한 사용자가 액세스하기 전에 지리적 분포, 따라서 성능의 정확한 평가와 더 최적화 광고 전략에 기여.

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

  • 강렬한 교환 및 관능 특성 : 인터넷 광고의 캐리어 제품에 관심이 청중을 필요로 만 더에 대해 더 자세히, 더 생생한 정보 내용을 클릭해야하고, 심지어 소비자가 허용하는 등, 기본적으로 멀티미디어 하이퍼 텍스트이다 개인적으로 고객의 몰입을 할 수 있습니다 가상 현실 기술을 통해 제품, 서비스 및 브랜드를 경험한다.

2.1.2 온라인 광고 데이터 형식 :

온라인 광고 관련 데이터 수집은 네 가지 범주의 가장 중요한 많은 위치 : 프리젠 테이션, 클릭 행동, 타사 데이터 모니터링.

  • 데이터 광고를 게재

광고는 일반적으로 데이터 요구는 양 (adpv) 통계 분석을 보여 광고 서버에 송신하는 쇼를 얻은 데이터를 데이터입니다 광고를 표시합니다. 일반 데이터는 날짜, 사용자 ID, 광고 ID 및 IP 정보가 포함되어 있습니다. 다음은 데이터 형식, JSON 필드 확장의 광고 프리젠 테이션입니다 :

2015-01-13 19:11:55{00D81D1D-00A291-0E2300-87DBCE0DA90} {“adia”:"31769","asid": "2","aspid":"0","ptime": "14","ag":"4,5.20,26.1908","ecode": "15","type":"2","dp1": "1","adpid":"0","dsp": "0","source": "s"}61.237.239.3 天津 天津市
复制代码
  • 광고 클릭 데이터

광고 클릭 데이터는 사용자가 일반적으로 광고 클릭에 대한 서버 (adclick) 통계 분석에 전송 된 데이터를 필요로 획득 각 광고 위치를 클릭하는 데이터입니다. 일반적으로 데이터를 날짜, 사용자 ID, 광고 ID 및 IP 정보를 포함 클릭합니다. 여기에 광고 클릭 데이터 형식 및 광고 노출과 크게 다르지 않다 :

2015-01-13 00:11:06{D33333C3-000C84-2345FB-DB768EC56} {"wid":"13","aid": "103297","vid":"1446779","adid": "29260","asid":"1","aspid": "1","mid":"16507","mg": "155","area":"13","dsp": "3"} 175.8.146.246 湖南省 长沙市
复制代码
  • 행동 데이터를 광고

행동 데이터를 광고하는 다운로드에 사용할 수있는 사용자가 광고를 의미, 데이터를 설치하거나 거래, 일반 데이터는 또한 그가 분석하는 것이 광고 행위 (adaction)에 대한 서버로 전송 될 필요가있다. 일반 행동 데이터는 날짜, 사용자 ID, 광고 ID 및 IP 정보를 포함한다. 다음은 광고 행동 데이터 형식이며, 광고 데이터는별로 차이가 있지만, 다른 JSON 확장 필드 일반적인 정보의 숫자입니다 :

2015-01-13 09:59:39{00567D26AD-565D01-C2238-F99000C0A0} {"adid":"234555","asid": "562", "aspid":"12","type": "1"} 120.29.183.47 福建省 宁德市
复制代码
  • 모니터링 데이터를 타사

그래서 광고주가 쉽게 습관을 찾아 온라인 미디어의 목표 소비자를 이해하는 등 고객의 확률로 변환, 및 광고 모니터링의 모니터링에 참여하는 타사의 광고 회사를 사용하는 것은 매우 필요한 공정하고 객관적이고 신뢰할 수있는 통계를 얻을. 제 3자는 날짜, 광고 ID 및 사용자 ID와 데이터를 모니터링 생산을 모니터링합니다. 여기 타사 모니터링 데이터의 예이다 :

2014-12-31 108A451BD3787_22E6_D020_786DF2695B {000AD54073-19DDC2-971F26-36F4119425}
复制代码

데이터를 광고 2.1.3 도전

데이터 값이 너무 사건 이후 그들은 가능한 한 가장 좋은 데이터가 처리 된 후 즉시 나타날 수있는 한 빨리 처리해야하며, 시간이 지남에 따라 감소, 처리하면 이벤트 발생, 대신 캐시 일괄 재 처리, 데이터 플로우 모델에서, 입력 데이터 (전체 또는 일부) 처리되는 디스크 또는 랜덤 액세스 가능한 메모리에 저장되지 않고, 그들이 복수 또는 "연속 스트림"폼에 도달. 관계형 모델에 저장된 기존의 데이터와는 달리, 여러 측면의 특징이있다 :

  • 온라인 가까이하고 데이터 요소의 스트림의 실시간 처리가 필요하다

  • 새로운 데이터 요소의 도착 순서를 제어 할 수있는 시스템은 데이터 스트림에있는 데이터 요소를 다수의 데이터 스트림에 걸쳐 또한인지 처리 될, 재생 될 수있는 데이터 스트림 내의 요소의 순서와 마지막 데이터 스트림과 일치된다.

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

  • 데이터 스트림 요소에 처리되면, 폐기하거나 또는 저장을 보관.

2.1.4 주요 기능

이 시스템은 광고 서비스를 위해 현재, 광고주 및 광고 데이터를 인벤토리 시스템을 반영하기 위해 데이터를 실시간으로 표시를 클릭이 필요, 재고 시스템은 투자 금액의 계산에 따라 기존 정책 후 실행할 수 있습니다. 동시에, 우리는 달의 매일 광고의 양을 표시하는 통계를 제공 할 수 있습니다, 3 차원 지방, 지방 자치 단체 및 사용자 통계로 나눌 수 있습니다. 전제 아래 위의 기능을 30 초 이내에 지연의 시스템 성능 요구 사항, 지원 피크 TPS = 액세스 요청의 500W를 충족합니다.

2.1.5. 시스템 구조

이전 요구 사항 분석에 따르면, 설계 목표 및 전체 광고의 실시간 컴퓨팅 시스템의 주요 기능의 요구 사항이 육으로 구분됩니다 로그 수신 레이어, 레이어 생산자, 소비자 큐 층, 소비자, 비즈니스 로직 및 스토리지 계층을. 실시간 데이터 jingdong JDQ 파이프의 메시지 대기열 선택은 플로우 계산 시나리오에 사용되는 분산 된 메시지 큐를 달성하기 위해 높은 처리량 카프카 계에있어서, 상기 비즈니스 로직 선택 jingdong JRC 흐름 계산 FLINK 스트리밍 기반 계산 엔진을 가진 계산 흐름, 높은 메모리의 동시 사용, 낮은 지연 시간, 높은 가용성, 높은 처리량이 천만 QPS, 랜덤 액세스 메모리를 충족하기 위해, NoSQL에 분산. 다음 도표 :

  • 로그인 수용층

이 레이어는 데이터 소스 로그 수신 수단에 의해 생성 된 로컬 로그 파일이다. 공통 수신 수단 서기 Nginx에, 시스템 로그 - NG를 포함하고는 아파치 웹 서버와 같은 데이터를 수신 한 로컬 디스크에 저장된 스트림.

  • 생산자 층

데이터 영역이 발생하는 지역에서 클러스터 카프카 로그 파일 전송 층, 지정된 파일이나 디렉토리를 실시간 모니터링은 카프카 증분 클러스터에 추출 된 데이터를 전송한다.

  • 메시지 큐 레이어

이 층은 높은 처리량 및 팽창 특성을 양호한 수준과 함께, 데이터, 메시지 버퍼 입력을위한 밸런싱 책임 카프카 클러스터 부하이다. 카프카 특성 처리량 집중 및 완충 기능을 구비하기 때문에 카프카 계층은 메시지 큐를 선택.

  • 소비자 층

큐 카프카 소비에서 애플리케이션 계층 메시지, 비즈니스 로직, 하위 레이어 넥서스에 입력 메시지의 수. 비지니스 로직 FLINK 프레임을 사용하기 때문에, 모든 층들은 소비자 FLINK 카프카 개의 클러스터와 통신 할 필요가있다.

  • Yewuluojiceng

이 계층은 FLINK 프레임 워크를 사용하여, 하위 수요를 달성하는 중요한 계층, 우리는 아주 쉽게 비즈니스 요구 사항의 서로 다른 규칙을 배포 할 수 있으며, 신속하게 계산할 수있다.

  • 저장 층

대상 스토리지는 낮은 대기 시간 실시간 업데이트 및 비즈니스 요구 사항의 특정 장면에 모습 처리량 높은를 충족하기 위해, 또한 수요 확대의 수준을 충족하기 위해, 분산 저장되는 NoSQL을 사용하여 선택합니다.

2.1.6 테이블 디자인

실시간 쿼리 및 통계 주기성 최종 결과에 대한 수요를 충족하기 위해, NoSQL의 데이터는 테이블의 구조를 정의하기 위해 먼저 필요, 결과에 존재합니다. 광고 및 광고 클릭 데이터를 포함하는 데이터는 연관된 카테고리를 표시하지, 당신은 데이터의 두 가지 유형의 통계적 구조를 저장하는 두 개의 테이블을 작성해야하므로 사업 방향은 다르기 때문에.

  • 광고를 게재에 대한 실시간 통계

다음과 같이 설계 구조를 보여주는 실시간 통계를 광고 :

그 중, CCB의 디자인은이 세 가지 차원을보다 효율적으로 통계 자료를 들어, 구별되는 표는 각각 CCB, 주 이름, 도시 이름과 UID의 세 가지 유형을 포함하는 것이 중요합니다; 열 가족과 열의 수 그것은 1입니다. 다음은 값 필드는 16 진법의 바이트 코드, 긴 정수임 실시간 통계 데이터 선에 광고의 예이다.

29260_{2EEBEE83-EEE4-EAE6-1F0D-A27AB14549FC}_20150117 column=pv:cnt,timestamp=1390261754783,
value= \x00\x00\x00\x00\x00\x00\x00\x02
复制代码
  • 실시간 통계에서 광고를 클릭

다음과 같이 설정 한 구조의 실시간 통계에서 광고를 클릭하십시오

실시간 통계, 실시간 클릭 통계 상당히 간단을 표시하는 광고를 비교, CCB는 하나 개의 유형 : adid_ 플러스 날짜, 매우 기존의 설계, 열 가족과 데이터 열의 양 1입니다. 다음은, 실시간 광고 값 필드는 16 진법의 바이트 코드를 나타내는 상기 데이터 테이블의 실시 행을 클릭하는 긴 정수이다.

36713_20150117 column=clk:cnt, timestamp=1390374472961, value=\x00\x00\x00\x00\x00\x00\x00\x06
复制代码

2.1.7 사용되는 NoSQL 통계

설명하고, 위의 테이블 구조 설계를 달성하기에 따르면, 아키텍처는 다음 쿼리에 대한 실시간 수요의 다양한 지원합니다

  • 현재 지방에서 광고의 일정 금액.
  • 도시의 현재 광고의 일정 금액.
  • 사용자의 현재 클라이언트 배달 볼륨에 광고
  • 광고에서 현재 클릭
  • 시간의 누적 기간에 배달 동향의 지방에서 광고의 역사 (예 : 한 달 등)
  • 시간의 누적 기간에 도시 배달 동향 (예 : 한 달 등) 광고의 역사
  • 시간의 누적 기간에 사용자 클라이언트 실행 추세 (예 : 한 달 등) 광고의 역사
  • (예 : 한 달 등) 시간의 누적 기간에 광고 트래픽 동향

언급 한 요구 사항 이상이 쉽게 NoSQL에 클라이언트를 캡슐화함으로써 달성 및 실시간의 요구를 충족 할 수 있습니다. echarts, highcharts, d3.js 등 : 자바 스크립트와 같은 프레임 워크의 빠른 구현을 열 수 프론트 - 엔드 데이터 가시화 수단으로

개요

2,022 훨씬 높은 전체 데이터베이스 시장에 비해, 약 30 %의 높은 성장을 유지할 것으로 예상된다 - 가트너에 따르면 글로벌 비 관계형 데이터베이스 2020 년 (NoSQL에)을 기대하고있다. NoSQL에 NoSQL의 플랫폼을 처리 저가의 원 스톱 데이터의 생태 건축을 기반으로되는 NoSQL 및 빅 데이터 기술의 상승과 개발로 호황을 누리고있다. 현재 지원 : NoSQLAPI, 관계 PhoenixSQL, 타이밍 OpenTSDB, 전체 텍스트 HGraph, HBase를에 등 분석 스파크 그리기, SOLR / ES, 시간과 공간 GeoMesa를 검색 할 수 있습니다. NoSQL에, NoSQL에 점점 더 많은 사용자 그룹, NoSQL에 미래의 급속한 발전과 함께 생태 NoSQL에 더 다양한 비즈니스 시나리오를 만날 것입니다.

추천

출처juejin.im/post/5e1d8e97f265da3e28099572