廣告業務動態查詢架構設計:從數據建模到可視化呈現

在數字化營銷領域,廣告主每天面臨著海量數據帶來的分析挑戰:從賬戶整體投放效果,到分渠道、分地域的精細化運營,每一層級的數據洞察都需要靈活高效的查詢能力。我們的廣告業務動態查詢系統,正是為解決這類需求而生 ;通過層級化數據集設計與實時計算架構,讓數據分析師只需簡單勾選維度和指標,就能秒級獲取可視化分析結果,徹底告別傳統 SQL 查詢的繁瑣流程。

業務痛點:數據層級復雜,實時性要求高,可視化效率,技術門檻

系統核心:數據層級數據集設計,動態查詢引擎(“維度+指標+時間+動態條件”)自由搭配組合查詢,實時查詢排序+秒級響應,動態輸出結構

一、數據模型層級設計

1. 數據集層級劃分

層級名稱核心維度組合存儲引擎數據更新頻率
賬戶層級賬戶 ID + 日期 + 基礎指標StarRocks實時 + T+1
賬戶渠道層級賬戶 ID + 渠道 ID + 日期 + 渠道指標StarRocks實時 + T+1
賬戶地域層級賬戶 ID + 地域 ID + 日期 + 地域指標StarRocks實時 + T+1
廣告創意層級廣告 ID + 創意 ID + 日期 + 創意指標StarRocks實時 + T+1
原始事件層級全量曝光 / 點擊事件明細Hive+IcebergT+1

2. StarRocks 表結構設計(賬戶渠道層級示例)

CREATE TABLE ad_account_channel (-- 維度字段account_id BIGINT NOT NULL,channel_id INT NOT NULL,date DATE NOT NULL,region STRING,-- 基礎指標impressions BIGINT,clicks BIGINT,cost DECIMAL(10,2),ctr DECIMAL(5,4),-- 渠道特有指標channel_ctr DECIMAL(5,4),channel_cvr DECIMAL(5,4),-- 時間維度hour INT,day_of_week INT
) ENGINE=OLAP
AGGREGATE KEY(account_id, channel_id, date, region)
COMMENT "賬戶渠道層級數據集"
DISTRIBUTED BY HASH(account_id) BUCKETS 200
PROPERTIES ("replication_num" = "3","enable_persistent_index" = "true","index_type" = "default"
);

3. 索引與聚合策略

多級索引配置

-- Bloom Filter索引加速維度過濾
ALTER TABLE ad_account_channel 
ADD BLOOMFILTER INDEX bf_channel(channel_id) 
PROPERTIES("bloom_filter_fpp" = "0.01");-- 物化視圖預聚合高頻查詢
CREATE MATERIALIZED VIEW mv_account_channel_daily 
AS SELECT account_id, channel_id, date, SUM(impressions) AS total_imp, SUM(clicks) AS total_click
FROM ad_account_channel
GROUP BY account_id, channel_id, date;

數據聚合策略

  • 實時聚合:Flink 處理 Kafka 流數據時完成初步聚合
  • 離線聚合:Hive T+1 任務生成全量聚合數據
  • 自動合并:StarRocks 自動合并實時與離線數據
二、動態查詢引擎架構

1. 核心處理流程

2. SQL 動態生成實現

查詢參數模型

{"dataset": "account_channel",       // 數據集類型"dimensions": ["account_id", "date", "channel_id"], // 維度"metrics": ["impressions", "clicks", "cost", "ctr"], // 指標"time_range": ["2025-07-01", "2025-07-31"], // 時間范圍"filters": {"region": ["華東", "華南"], "ctr": ">0.01"}, // 過濾條件"sort": {"cost": "desc"}, // 排序"page": {"size": 100, "number": 1} // 分頁
}

SQL 生成模板

String template = "SELECT ${dimensions}, ${metrics} " +"FROM ${dataset} " +"WHERE ${time_condition} AND ${filter_conditions} " +"GROUP BY ${dimensions} " +"ORDER BY ${sort_condition} " +"LIMIT ${page_size} OFFSET ${page_offset}";// 參數替換示例
Map<String, Object> params = new HashMap<>();
params.put("dimensions", String.join(", ", dimensions));
params.put("metrics", String.join(", ", metrics));
params.put("time_condition", "date BETWEEN '2025-07-01' AND '2025-07-31'");
// 其他參數處理...

3. 緩存優化策略

4. 離線與實時數據同步

INSERT INTO ad_account_channel (
account_id
, channel_id
, date
, impressions
, clicks
, cost
)
SELECT account_id, channel_id, date, SUM(impressions), SUM(clicks), SUM(cost)
FROM hive_ad_click_history
WHERE date = '2025-07-01'
GROUP BY account_id, channel_id, date;
三、可視化與輸出層設計

1. 可視化組件架構

2. 圖表數據格式規范

  • 折線圖數據結構
{"type": "line","title": "賬戶點擊趨勢","xAxis": ["2025-07-01", "2025-07-02", "2025-07-03"],"series": [{"name": "PC端點擊","data": [1200, 1500, 1300]},{"name": "移動端點擊","data": [2500, 2800, 2600]}]
}
  • 柱狀圖數據結構
{"type": "bar","title": "各渠道消耗分布","xAxis": ["渠道A", "渠道B", "渠道C", "渠道D"],"series": [{"name": "消耗(元)","data": [12000, 18000, 9500, 15000]}]
}

3. Excel 導出實現

// 使用Apache POI生成Excel
Workbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet("廣告數據報表");// 創建表頭
Row headerRow = sheet.createRow(0);
for (int i = 0; i < headers.length; i++) {headerRow.createCell(i).setCellValue(headers[i]);
}// 填充數據
for (int i = 0; i < data.size(); i++) {Row dataRow = sheet.createRow(i + 1);for (int j = 0; j < data.get(i).length; j++) {dataRow.createCell(j).setCellValue(data.get(i)[j]);}
}// 自動調整列寬
for (int i = 0; i < headers.length; i++) {sheet.autoSizeColumn(i);
}// 輸出文件
try (FileOutputStream fos = new FileOutputStream("ad_report.xlsx")) {workbook.write(fos);
}
四、整體架構圖示

五、性能優化方案

1. 關鍵性能指標

指標名稱目標值監控工具
95% 查詢響應時間<200msPrometheus
StarRocks QPS>1000StarRocks Manager
緩存命中率>90%Redis Insight

2. 容量規劃建議

  • StarRocks 集群
    • 每節點配置:96核 CPU+720GB 內存 + 2TB SSD
    • 存儲估算:10億條/天數據 ≈ 500GB / 天(壓縮后)
    • 集群規模:初始 9 節點,支持日均 10 億條數據查詢

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/90191.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/90191.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/90191.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

pytorch、torchvision與python版本對應關系

pytorch、torchvision與python版本對應關系 可以查看官網&#xff1a; https://github.com/pytorch/vision#installation

【機器學習筆記 Ⅲ】3 異常檢測算法

異常檢測算法&#xff08;Anomaly Detection&#xff09;詳解 異常檢測是識別數據中顯著偏離正常模式的樣本&#xff08;離群點&#xff09;的技術&#xff0c;廣泛應用于欺詐檢測、故障診斷、網絡安全等領域。以下是系統化的解析&#xff1a;1. 異常類型類型描述示例點異常單個…

【ssh】在 Windows 上生成 SSH 公鑰并實現免密登錄 Linux

在 Windows 上生成 SSH 公鑰并實現免密登錄 Linux&#xff0c;可以使用 ssh-keygen 命令&#xff0c;這是 Windows 10 和 Windows 11 中默認包含的 OpenSSH 工具的一部分。下面是詳細步驟&#xff1a; 在 Windows 上生成 SSH 公鑰 打開 PowerShell 或命令提示符&#xff1a; 在…

MS51224 一款 16 位、3MSPS、雙通道、同步采樣模數轉換器(ADC)

MS51224 是一款 16 位、3MSPS、雙通道、同步采樣模數轉換器&#xff08;ADC&#xff09;&#xff0c;具有集成的內部參考和參考電壓緩沖器。芯片可由 5V 單電源供電&#xff0c;支持單極性和全差分模擬信號輸入&#xff0c;具有出色的直流和交流性能。芯片模擬輸入信號頻率高達…

WPF學習(四)

文章目錄一、用戶控價1.1 依賴屬性的注冊1.2 具體使用一、用戶控價 1.1 依賴屬性的注冊 using System.Windows; using System.Windows.Controls;namespace WpfApp {public partial class MyUserControl : UserControl{// 依賴屬性&#xff1a;外部可綁定的文本public static …

vue3+typescript項目配置路徑別名@

1. vite.config.ts配置//方法1 import { defineConfig } from vite; import vue from vitejs/plugin-vue; import path from path;export default defineConfig({plugins: [vue()],resolve: {alias: {: path.resolve(__dirname, src)}} });//方法2,需要執行npm install -D type…

MySql 常用SQL語句、 SQL優化

???????????????SQL語句主要分為哪幾類 SQL&#xff08;結構化查詢語言&#xff09;是用于管理和操作關系型數據庫的標準語言&#xff0c;其語句通常根據功能劃分為以下幾大類&#xff0c;每類包含不同的子句和命令&#xff0c;用于實現特定的數據庫操作需求&am…

代理模式實戰指南:打造高性能RPC調用與智能圖片加載系統

代理模式實戰指南&#xff1a;打造高性能RPC調用與智能圖片加載系統 &#x1f31f; 嗨&#xff0c;我是IRpickstars&#xff01; &#x1f30c; 總有一行代碼&#xff0c;能點亮萬千星辰。 &#x1f50d; 在技術的宇宙中&#xff0c;我愿做永不停歇的探索者。 ? 用代碼丈量…

登山第二十六梯:單目3D檢測一切——一只眼看世界

文章目錄 一 摘要 二 資源 三 內容 一 摘要 盡管深度學習在近距離 3D 對象檢測方面取得了成功&#xff0c;但現有方法難以實現對新對象和相機配置的零鏡頭泛化。我們介紹了 DetAny3D&#xff0c;這是一種可提示的 3D 檢測基礎模型&#xff0c;能夠在任意相機配置下僅使用單目…

ROS2簡記一:第一個ros2程序,海龜模擬與C++和python的《你好,世界!》

目錄 引言 一、控制小海龜 二、鍵盤控制海龜 三、控制海龜案例的簡單分析 四、ROS2之linux基礎 4.1 linux終端命令 4.1.1 查看當前終端所在目錄 pwd 4.1.2 切換終端所在目錄 cd 4.1.3 查看當前目錄下的文件 ls 4.1.4 主目錄 ~ 4.1.5 文件的操作 4.1.6 命令使用幫助…

監控的基本理論和prometheus安裝

監控的基本理論和prometheus安裝 前言 這篇博客主要講的是關于理論的知識&#xff0c;大家盡可能的消化和吸收&#xff0c;也能擴展大家的知識面 監控的基本概念 監控俗稱為運維的第三只眼。沒有了監控&#xff0c;業務運維都是“瞎子”。所以說監控室運維這個職業的根本&…

互聯網生態下贏家群體的崛起與“開源AI智能名片鏈動2+1模式S2B2C商城小程序“的賦能效應

摘要&#xff1a;本文聚焦未來互聯網贏家群體的構成特征&#xff0c;剖析網紅經濟與專業主播的差異化發展路徑&#xff0c;結合開源AI智能名片鏈動21模式與S2B2C商城小程序的融合創新&#xff0c;提出技術賦能下互聯網商業生態的重構路徑。研究表明&#xff0c;開源AI技術通過智…

OneCode 圖表組件核心優勢解析

一、全方位的可視化能力 OneCode 圖表組件提供了15種專業圖表類型&#xff0c;覆蓋從基礎到高級的數據可視化需求&#xff1a; 基礎圖表&#xff1a;柱狀圖、折線圖、餅圖、面積圖等高級圖表&#xff1a;金字塔圖、雷達圖、儀表盤、LED圖表等實時圖表&#xff1a;實時折線圖、實…

【Linux】RHCE中ansible的配置

1.安裝并配置ansible 第一步先安裝ansible所需軟件 #安裝ansible所需軟件 [devopsworkstation ~]$ sudo dnf install ansible ansible-navigator rhel-system-roles -y 第二步登錄鏡像倉庫&#xff0c;在鏡像倉庫下載鏡像容器來運行ansible 由于ansible-navigator 知ansible…

ubuntu server系統 安裝寶塔

更新系統軟件包sudo apt update && sudo apt upgrade -y提示&#xff0c;如果想博主這樣是存綠色liunx系統&#xff0c;要先安裝python3腳本才可以python3 --version有pyhton版本號就是安裝了&#xff0c;沒有的話就要安裝安裝 Pythonsudo apt update sudo apt install…

用C++實現五子棋游戲

#include <iostream> #include <vector> #include <string> #include <iomanip> // 用于控制輸出格式 #include <limits> // 用于numeric_limitsusing namespace std;// 游戲常量定義 const int BOARD_SIZE 15; // 定義棋盤大小為15x15// 棋…

【LeetCode 熱題 100】73. 矩陣置零——(解法一)空間復雜度 O(M + N)

Problem: 73. 矩陣置零 題目&#xff1a;給定一個 m x n 的矩陣&#xff0c;如果一個元素為 0 &#xff0c;則將其所在行和列的所有元素都設為 0 。請使用 原地 算法。 文章目錄整體思路完整代碼時空復雜度時間復雜度&#xff1a;O(M * N)空間復雜度&#xff1a;O(M N)整體思路…

【深度學習新浪潮】國內零樣本抗體設計的科研進展如何?

什么是AI零樣本抗體設計? AI零樣本抗體設計(Zero-shot AI Antibody Design)是指不依賴任何已知抗體序列或結構數據,僅根據靶點抗原信息,通過人工智能直接生成具有高親和力、高特異性的全新抗體序列的技術。其核心在于突破傳統抗體研發的“數據依賴瓶頸”,實現真正的“從…

【論文閱讀】A Diffusion model for POI recommendation

論文出處&#xff1a;ACM Transactions on Information Systems (TOIS) SCI一區 CCF-A期刊 論文地址&#xff1a;[2304.07041] A Diffusion model for POI recommendation 論文代碼&#xff1a;Yifang-Qin/Diff-POI: The official PyTorch implementation of Diff-POI. 目…

Rust實現FasterR-CNN目標檢測全流程

使用 Rust 和 FasterR-CNN 進行目標檢測 FasterR-CNN 是目標檢測領域廣泛使用的深度學習模型。Rust 生態中可以通過 tch-rs(Torch 綁定)調用預訓練的 PyTorch 模型實現。以下為完整實現步驟: 環境準備 安裝 Rust 和必要的依賴: cargo add tch cargo add anyhow # 錯誤…