목차
데이터 수집을 시작했고 마침내 이종 솔루션으로 채택되었습니다. " > 구현 데이터 수집을 시작했고 마침내 이종 솔루션으로 채택되었습니다.
conf/example/instance.properties" >conf/example/instance.properties
Startup" >Startup
RocketMQ部分" >RocketMQ部分
Java Java베이스 주문수입의 편리한 통계 (1)

주문수입의 편리한 통계 (1)

Oct 21, 2020 pm 05:18 PM

Basic Java Tutorial 컬럼에서는 주문 수입을 편리하게 계산하는 방법을 보여줍니다.

주문수입의 편리한 통계 (1)

소개

통계적인 주문 수익은 전자상거래 앱에서 흔히 발생하는 문제입니다. 일반적인 요구 사항은 대략 사용자 수익입니다.日报/月报/年报.这些报表型的数据对表设计和程序设计有着不小的挑战.常规的聚合查询수익 테이블 데이터가 증가함에 따라 명세서 쿼리 시간은 점차 늘어납니다. 가변 길이가 커집니다. 이때 손익계산서를 어떻게 효율적으로 조회할 수 있는지 고민해야 합니다. 어떤 디자인이 통계적 소득을 단순화할 수 있을까요?

요구사항

렌더링

특별한 요구사항

  • 소득 유형은 자체 구매 주문 소득, 공유 주문 소득, 유통수입, 활동수입
  • 통계 당일수입, 이달수입
  • 해당 기간의 수입은 필터링된 시간을 기준으로 계산됩니다.

Thinking

Design Ideas

주문표는 꼭 필요합니다. 주문표를 작성하거나 수정할 때 수정된 수입표도 동시에 작성됩니다. 주문은 주문표에 기록되며, 특별 사업의 손익계산서에만 기록됩니다. 그런 다음 사용자 收益日报表.单行记录写入用户当天收益情况.降低查询用户日/月/年收益统计时的数据量.以单用户为例,通过拆分用户一个月只会产生最多31 데이터를 생성하는 차원으로 사용합니다. 손익 계산서 데이터의 양은 사용자가 주문한 수와 일대일로 일치하므로 손익 계산서를 계속 사용하십시오. 사용자 수가 증가하기 시작하는 초기 단계에서는 대용량 데이터 통계를 피하기 위해 이 방법을 사용할 수 있습니다. 나중에 사용자 수가 증가하면 일일 보고서의 데이터가 커지면 하위를 고려할 수 있습니다. -테이블.

눈에 보이는 문제

  • 일별 소득 보고서 동기화 타이밍은 원래 주문 작업이 매우 복잡하고 소득의 동기 작성과 일일 소득 데이터의 계산 및 작성이 필요하기 때문에 코드 결합이 손익계산서 이질성을 통해 일일 소득 보고서를 생성하는 방법은 무엇입니까?
  • 일별 보고서에 소득이 기록되지만 렌더링에서 요구하는 효과를 충족하려면 여러 SQL 문이 필요할 수 있습니다. 결과에 영향을 주지 않고 이를 수행할 수 있는 방법이 있습니까? 프로그램 효율성을 유지하면서 집계된 SQL을 최대한 적게 사용하는 것은 어떻습니까?

구현 데이터 수집을 시작했고 마침내 이종 솔루션으로 채택되었습니다.

canal+RocketMQ

기술 스택
  • canal: 주요 목적은 MySQL 데이터베이스 증분 로그 분석을 기반으로 증분 데이터 구독 및 소비를 제공하는 것입니다.
  • RocketMQ: 고가용성 분산 클러스터 기술을 기반으로 하는 오픈 소스 분산 메시징 시스템으로, 낮은 대기 시간 A를 제공합니다. 안정적인 메시지 게시 및 구독 서비스입니다.

注:我用的aliyun的全家桶,MQ和mysql都是阿里云的,如果是自建服务器的可能有区别,我在后面尽量标出

프로젝트 프로세스

  1. 손익계산서를 작성하거나 수정하는 동안 운하를 통해 mysql 손익계산서의 binlog 로그를 모니터링하세요.
  2. 운하는 변화를 감지하고 조립합니다. 변경된 JSON 메시지를 전송하고 RocketMQ에 사전 정의된 TOPIC을 보냅니다.
canal 구성 부분

공식 문서를 참조하세요. 압축을 풀면 세 개의 디렉터리가 포함된 운하 폴더가 생성됩니다

위 내용은 주문수입의 편리한 통계 (1)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

JavaScript로 스크립팅하는 데 Java의 Nashorn 엔진을 어떻게 사용합니까? JavaScript로 스크립팅하는 데 Java의 Nashorn 엔진을 어떻게 사용합니까? Mar 14, 2025 pm 05:00 PM

Java의 Nashorn Engine을 사용하면 Java 앱 내에서 JavaScript 스크립팅이 가능합니다. 주요 단계로는 내슈런 설정, 스크립트 관리 및 성능 최적화가 포함됩니다. 주요 이슈에는 NASHORN의 감가 상기 거점으로 인한 보안, 메모리 관리 및 향후 호환성이 포함됩니다.

자동 리소스 관리에 Java의 Try-With-Resources 문을 어떻게 사용합니까? 자동 리소스 관리에 Java의 Try-With-Resources 문을 어떻게 사용합니까? Mar 14, 2025 pm 04:59 PM

Java의 시도는 파일 스트림 또는 데이터베이스 연결과 같은 리소스를 자동으로 닫아 코드 가독성 및 유지 관리 가능성을 향상시켜 자원 관리를 단순화합니다.

Java의 열거를 사용하여 고정 된 값 세트를 나타내는 방법은 무엇입니까? Java의 열거를 사용하여 고정 된 값 세트를 나타내는 방법은 무엇입니까? Mar 14, 2025 pm 04:57 PM

Java 열거는 고정 된 값 세트를 나타냅니다. 고정 된 값 세트를 나타냅니다. 맞춤형 방법 및 생성자를 통해 유형 안전, 가독성 및 추가 기능을 제공합니다. 코드 조직을 향상시키고 효율적인 가치 처리를 위해 스위치 문에 사용할 수 있습니다.

JVM (Java Virtual Machine)은 무엇이며 내부적으로 어떻게 작동합니까? JVM (Java Virtual Machine)은 무엇이며 내부적으로 어떻게 작동합니까? Mar 14, 2025 pm 05:05 PM

이 기사는 JVM (Java Virtual Machine)에 대해 설명하여 다양한 플랫폼에서 Java 프로그램을 실행하는 데있어 역할을 자세히 설명합니다. JVM의 내부 프로세스, 주요 구성 요소, 메모리 관리, 쓰레기 수집 및 성능 Optimizatio를 설명합니다.

Java (Serial, Parallel, CMS, G1, ZGC)의 다른 쓰레기 수집 알고리즘은 무엇입니까? Java (Serial, Parallel, CMS, G1, ZGC)의 다른 쓰레기 수집 알고리즘은 무엇입니까? Mar 14, 2025 pm 05:06 PM

이 기사에서는 다양한 Java Garbage Collection 알고리즘 (Serial, Parallel, CMS, G1, ZGC), 성능 영향 및 큰 힙이있는 응용 분야에 대한 적합성에 대해 설명합니다.

See all articles