schema.sql 8.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  1. -- ============================================================
  2. -- tencent-baidu-tracking 数据库建表语句
  3. -- 数据库: adx_tencent
  4. -- ============================================================
  5. CREATE DATABASE IF NOT EXISTS adx_tencent DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
  6. USE adx_tencent;
  7. -- ------------------------------------------------------------
  8. -- 1. 竞价事件表(百度ADX竞价记录)
  9. -- ------------------------------------------------------------
  10. CREATE TABLE IF NOT EXISTS tencent_ad_bid_events (
  11. id BIGINT AUTO_INCREMENT PRIMARY KEY,
  12. qk VARCHAR(128) NOT NULL COMMENT '唯一业务键(query key)',
  13. media VARCHAR(64) COMMENT '媒体来源(tencent)',
  14. media_trace_id VARCHAR(255) COMMENT '媒体追踪ID(click_id/oaid/imei/idfa)',
  15. platform VARCHAR(16) COMMENT '平台(android/ios)',
  16. account_id VARCHAR(64) COMMENT '腾讯广告主ID',
  17. event_type VARCHAR(16) COMMENT '事件类型(impression/click),仅保留排障所需',
  18. tag_id VARCHAR(128) COMMENT '百度广告位ID',
  19. price BIGINT UNSIGNED COMMENT '竞价价格(分)',
  20. package_name VARCHAR(255) COMMENT '应用包名',
  21. media_params JSON COMMENT '媒体参数精简白名单(回传所需设备标识等)',
  22. created_at TIMESTAMP(3) NOT NULL COMMENT '创建时间',
  23. UNIQUE KEY uk_tencent_ad_bid_events_qk (qk),
  24. KEY idx_tencent_ad_bid_events_media_trace (media, media_trace_id),
  25. KEY idx_tencent_ad_bid_events_platform_tag (platform, tag_id),
  26. KEY idx_tencent_ad_bid_events_created_at (created_at)
  27. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='竞价事件记录';
  28. -- ------------------------------------------------------------
  29. -- 2. 上报结果表(曝光/点击上报百度DSP的结果)
  30. -- ------------------------------------------------------------
  31. CREATE TABLE IF NOT EXISTS tencent_tracking_reports (
  32. id BIGINT AUTO_INCREMENT PRIMARY KEY,
  33. qk VARCHAR(128) COMMENT '关联的业务键',
  34. kind VARCHAR(32) NOT NULL COMMENT '类型(impression/click)',
  35. tracking_url TEXT NOT NULL COMMENT '上报的目标URL',
  36. status INT NOT NULL COMMENT 'HTTP响应状态码',
  37. ok TINYINT(1) NOT NULL COMMENT '是否成功(1=成功,0=失败)',
  38. created_at TIMESTAMP(3) NOT NULL COMMENT '创建时间',
  39. KEY idx_tencent_tracking_reports_qk_kind_created_at (qk, kind, created_at),
  40. KEY idx_tencent_tracking_reports_created_at_id (created_at, id)
  41. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='曝光/点击上报结果';
  42. -- ------------------------------------------------------------
  43. -- 3. 百度转化数据表(从百度拉取的转化记录)
  44. -- ------------------------------------------------------------
  45. CREATE TABLE IF NOT EXISTS tencent_baidu_conversions (
  46. id BIGINT AUTO_INCREMENT PRIMARY KEY,
  47. dedupe_key VARCHAR(255) COMMENT '去重键',
  48. qk VARCHAR(128) COMMENT '关联的业务键',
  49. media VARCHAR(64) COMMENT '媒体来源',
  50. tag_id VARCHAR(128) COMMENT '百度广告位ID',
  51. date_value VARCHAR(16) COMMENT '转化日期',
  52. appsid VARCHAR(128) COMMENT '百度应用ID',
  53. customer_name VARCHAR(128) COMMENT '客户名称',
  54. device_id VARCHAR(255) COMMENT '设备标识',
  55. conv DOUBLE COMMENT '转化数',
  56. payment DOUBLE COMMENT '付费金额',
  57. gmv DOUBLE COMMENT '扩展信息中的GMV',
  58. act INT COMMENT '行为类型(1=激活,2=付费,3=注册...)',
  59. tu VARCHAR(128) COMMENT '追踪URL参数',
  60. clk_time VARCHAR(32) COMMENT '点击时间',
  61. created_at TIMESTAMP(3) NOT NULL COMMENT '创建时间',
  62. UNIQUE KEY uk_tencent_baidu_conversions_dedupe (dedupe_key),
  63. KEY idx_tencent_baidu_conversions_qk_act_created_at (qk, act, created_at),
  64. KEY idx_tencent_baidu_conversions_tag_id (tag_id),
  65. KEY idx_tencent_baidu_conversions_device_id (device_id)
  66. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='百度转化数据';
  67. -- ------------------------------------------------------------
  68. -- 4. 媒体回传记录表(向腾讯回传转化的结果)
  69. -- ------------------------------------------------------------
  70. CREATE TABLE IF NOT EXISTS tencent_media_callbacks (
  71. id BIGINT AUTO_INCREMENT PRIMARY KEY,
  72. dedupe_key VARCHAR(255) COMMENT '去重键',
  73. media VARCHAR(64) NOT NULL COMMENT '媒体(tencent)',
  74. qk VARCHAR(128) COMMENT '关联的业务键',
  75. callback_url TEXT NOT NULL COMMENT '回传的API URL',
  76. event_type INT NOT NULL COMMENT '事件类型(百度act)',
  77. event_time_ms BIGINT NOT NULL COMMENT '事件时间(毫秒时间戳)',
  78. purchase DOUBLE COMMENT '付费金额',
  79. status INT NOT NULL COMMENT 'HTTP响应状态码',
  80. ok TINYINT(1) NOT NULL COMMENT '是否成功(1=成功,0=失败)',
  81. attempt INT NOT NULL DEFAULT 1 COMMENT '尝试次数',
  82. response_body TEXT COMMENT '响应体(截断)',
  83. error_message TEXT COMMENT '错误信息',
  84. request_body TEXT COMMENT '请求体',
  85. dispatch_status VARCHAR(32) NOT NULL DEFAULT 'SENT' COMMENT '回传处理状态(SENT/DEDUCTED)',
  86. tracking_version VARCHAR(16) NOT NULL DEFAULT '0' COMMENT '腾讯扣量值(0=不扣量)',
  87. created_at TIMESTAMP(3) NOT NULL COMMENT '创建时间',
  88. KEY idx_tencent_media_callbacks_dedupe_ok_created_at (dedupe_key, ok, created_at),
  89. KEY idx_tencent_media_callbacks_qk_created_at (qk, created_at),
  90. KEY idx_tencent_media_callbacks_media_event_created_at (media, event_type, created_at)
  91. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='媒体转化回传记录';
  92. -- ------------------------------------------------------------
  93. -- 5. 广告位回传方式配置表
  94. -- ------------------------------------------------------------
  95. CREATE TABLE IF NOT EXISTS tencent_tag_event (
  96. tag_id VARCHAR(32) NOT NULL COMMENT '广告位ID',
  97. baidu_act INT NOT NULL COMMENT '百度转化行为',
  98. tencent_action_type VARCHAR(128) NOT NULL COMMENT '腾讯回传行为',
  99. PRIMARY KEY (tag_id, baidu_act)
  100. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='广告位回传方式配置';
  101. -- ------------------------------------------------------------
  102. -- 6. 腾讯账户级广告位回传方式配置表
  103. -- ------------------------------------------------------------
  104. CREATE TABLE IF NOT EXISTS tencent_account_tag_event (
  105. tag_id VARCHAR(128) NOT NULL COMMENT '百度广告位ID',
  106. account_id VARCHAR(64) NOT NULL COMMENT '腾讯广告主ID',
  107. baidu_act INT NOT NULL COMMENT '百度转化行为',
  108. tencent_action_type VARCHAR(128) NOT NULL COMMENT '腾讯回传行为',
  109. created_at TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
  110. updated_at TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '更新时间',
  111. PRIMARY KEY (tag_id, account_id, baidu_act),
  112. KEY idx_tencent_account_tag_event_account_act (account_id, baidu_act)
  113. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='腾讯账户级广告位回传方式配置';
  114. -- ------------------------------------------------------------
  115. -- 字段补丁(兼容旧表升级)
  116. -- ------------------------------------------------------------
  117. -- 如果 req_id 原来是 VARCHAR(128),扩展为 512
  118. -- ALTER TABLE tencent_ad_bid_events MODIFY COLUMN req_id VARCHAR(512);
  119. -- 如果旧表没有 platform 字段
  120. -- ALTER TABLE tencent_ad_bid_events ADD COLUMN platform VARCHAR(16) AFTER media_trace_id;
  121. -- ALTER TABLE tencent_ad_bid_events ADD KEY idx_tencent_ad_bid_events_platform_tag (platform, tag_id);
  122. -- 如果旧表没有 ad_id / account_id 字段
  123. -- ALTER TABLE tencent_ad_bid_events ADD COLUMN ad_id VARCHAR(128) COMMENT '腾讯广告ID' AFTER platform;
  124. -- ALTER TABLE tencent_ad_bid_events ADD COLUMN account_id VARCHAR(64) COMMENT '腾讯广告主ID' AFTER ad_id;
  125. -- 如果旧表没有 tag_id 字段
  126. -- ALTER TABLE tencent_baidu_conversions ADD COLUMN tag_id VARCHAR(128) AFTER media;
  127. -- ALTER TABLE tencent_baidu_conversions ADD KEY idx_tencent_baidu_conversions_tag_id (tag_id);
  128. -- 如果旧表没有 request_body / dispatch_status 字段
  129. -- ALTER TABLE tencent_media_callbacks ADD COLUMN request_body TEXT AFTER error_message;
  130. -- ALTER TABLE tencent_media_callbacks ADD COLUMN dispatch_status VARCHAR(32) NOT NULL DEFAULT 'SENT' AFTER request_body;
  131. -- ALTER TABLE tencent_media_callbacks ADD COLUMN tracking_version VARCHAR(16) NOT NULL DEFAULT '0' AFTER dispatch_status;
  132. -- 如果旧表没有 event_type 字段
  133. -- ALTER TABLE tencent_ad_bid_events ADD COLUMN event_type VARCHAR(16) COMMENT '事件类型(impression/click)' AFTER account_id;
  134. -- tencent_tag_event 升级为 (tag_id, baidu_act) 维度
  135. -- ALTER TABLE tencent_tag_event ADD COLUMN baidu_act INT NULL COMMENT '百度转化行为' AFTER tag_id;
  136. -- ALTER TABLE tencent_tag_event CHANGE COLUMN event_type tencent_action_type VARCHAR(128) NOT NULL COMMENT '腾讯回传行为';
  137. -- UPDATE tencent_tag_event SET baidu_act = 0 WHERE baidu_act IS NULL;
  138. -- ALTER TABLE tencent_tag_event MODIFY COLUMN baidu_act INT NOT NULL;
  139. -- ALTER TABLE tencent_tag_event DROP PRIMARY KEY;
  140. -- ALTER TABLE tencent_tag_event ADD PRIMARY KEY (tag_id, baidu_act);