mdbq 4.0.46__py3-none-any.whl → 4.0.48__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,579 @@
1
+ SET_TYP_DICT = {
2
+ '聚合数据_天猫_主体报表': {
3
+ '日期': 'date',
4
+ '推广渠道': 'varchar(100)',
5
+ '店铺名称': 'varchar(255)',
6
+ '营销场景': 'varchar(100)',
7
+ '商品id': 'bigint',
8
+ '花费': 'decimal(12,2)',
9
+ '展现量': 'int',
10
+ '点击量': 'int',
11
+ '加购量': 'int',
12
+ '成交笔数': 'int',
13
+ '成交金额': 'decimal(12,2)',
14
+ '自然流量曝光量': 'int',
15
+ '直接成交笔数': 'int',
16
+ '直接成交金额': 'decimal(12,2)',
17
+ },
18
+ '属性设置3_商品索引表_主推排序调用': {
19
+ '商品id': 'bigint',
20
+ '店铺名称': 'varchar(255)',
21
+ '商品索引': 'smallint',
22
+ '花费': 'decimal(12,2)',
23
+ '更新时间': 'timestamp',
24
+ },
25
+ '聚合数据_淘宝_主体报表': {
26
+ '日期': 'date',
27
+ '推广渠道': 'varchar(100)',
28
+ '店铺名称': 'varchar(255)',
29
+ '营销场景': 'varchar(100)',
30
+ '商品id': 'bigint',
31
+ '花费': 'decimal(12,2)',
32
+ '展现量': 'int',
33
+ '点击量': 'int',
34
+ '加购量': 'int',
35
+ '成交笔数': 'int',
36
+ '成交金额': 'decimal(12,2)',
37
+ '自然流量曝光量': 'int',
38
+ '直接成交笔数': 'int',
39
+ '直接成交金额': 'decimal(12,2)',
40
+ },
41
+ '聚合数据_奥莱_主体报表': {
42
+ '日期': 'date',
43
+ '推广渠道': 'varchar(100)',
44
+ '店铺名称': 'varchar(255)',
45
+ '营销场景': 'varchar(100)',
46
+ '商品id': 'bigint',
47
+ '花费': 'decimal(12,2)',
48
+ '展现量': 'int',
49
+ '点击量': 'int',
50
+ '加购量': 'int',
51
+ '成交笔数': 'int',
52
+ '成交金额': 'decimal(12,2)',
53
+ '自然流量曝光量': 'int',
54
+ '直接成交笔数': 'int',
55
+ '直接成交金额': 'decimal(12,2)',
56
+ },
57
+ '聚合数据_圣积天猫店_主体报表': {
58
+ '日期': 'date',
59
+ '推广渠道': 'varchar(100)',
60
+ '店铺名称': 'varchar(255)',
61
+ '营销场景': 'varchar(100)',
62
+ '商品id': 'bigint',
63
+ '花费': 'decimal(12,2)',
64
+ '展现量': 'int',
65
+ '点击量': 'int',
66
+ '加购量': 'int',
67
+ '成交笔数': 'int',
68
+ '成交金额': 'decimal(12,2)',
69
+ '自然流量曝光量': 'int',
70
+ '直接成交笔数': 'int',
71
+ '直接成交金额': 'decimal(12,2)',
72
+ },
73
+ '聚合数据_生意经_宝贝指标': {
74
+ '日期': 'date',
75
+ '推广渠道': 'varchar(100)',
76
+ '店铺名称': 'varchar(255)',
77
+ '宝贝id': 'bigint',
78
+ '行业类目': 'varchar(255)',
79
+ '销售额': 'decimal(12,2)',
80
+ '销售量': 'int',
81
+ '订单数': 'int',
82
+ '退货量': 'int',
83
+ '退款额': 'decimal(12,2)',
84
+ '退款额_发货后': 'decimal(12,2)',
85
+ '退货量_发货后': 'int',
86
+ '件均价': 'mediumint',
87
+ '价格带': 'varchar(100)',
88
+ },
89
+ '聚合数据_天猫_人群报表': {
90
+ '日期': 'date',
91
+ '推广渠道': 'varchar(100)',
92
+ '店铺名称': 'varchar(255)',
93
+ '营销场景': 'varchar(100)',
94
+ '商品id': 'bigint',
95
+ '花费': 'decimal(10,2)',
96
+ '展现量': 'int',
97
+ '点击量': 'int',
98
+ '人群名字': 'varchar(255)',
99
+ '加购量': 'int',
100
+ '成交笔数': 'int',
101
+ '成交金额': 'decimal(12,2)',
102
+ '直接成交笔数': 'int',
103
+ '直接成交金额': 'decimal(12,2)',
104
+ '消费力层级': 'varchar(100)',
105
+ '用户年龄': 'varchar(100)',
106
+ '人群分类': 'varchar(100)',
107
+ },
108
+ '聚合数据_天猫_关键词报表': {
109
+ '日期': 'date',
110
+ '推广渠道': 'varchar(100)',
111
+ '店铺名称': 'varchar(255)',
112
+ '营销场景': 'varchar(100)',
113
+ '商品id': 'bigint',
114
+ '词类型': 'varchar(100)',
115
+ '词名字_词包名字': 'varchar(255)',
116
+ '花费': 'decimal(10,2)',
117
+ '展现量': 'int',
118
+ '点击量': 'int',
119
+ '加购量': 'int',
120
+ '成交笔数': 'int',
121
+ '成交金额': 'decimal(12,2)',
122
+ '直接成交笔数': 'int',
123
+ '直接成交金额': 'decimal(12,2)',
124
+ '是否品牌词': 'varchar(100)',
125
+ '词分类': 'varchar(100)',
126
+ },
127
+ '聚合数据_天猫_超级直播': {
128
+ '日期': 'date',
129
+ '推广渠道': 'varchar(100)',
130
+ '店铺名称': 'varchar(255)',
131
+ '营销场景': 'varchar(100)',
132
+ '人群名字': 'varchar(255)',
133
+ '计划名字': 'varchar(255)',
134
+ '花费': 'decimal(10,2)',
135
+ '观看次数': 'int',
136
+ '展现量': 'int',
137
+ '进店量': 'int',
138
+ '粉丝关注量': 'int',
139
+ '加购量': 'int',
140
+ '成交笔数': 'int',
141
+ '成交金额': 'decimal(12,2)',
142
+ '直接成交笔数': 'int',
143
+ '直接成交金额': 'decimal(12,2)',
144
+ },
145
+ '聚合数据_天猫_品销宝账户报表': {
146
+ '日期': 'date',
147
+ '推广渠道': 'varchar(100)',
148
+ '店铺名称': 'varchar(255)',
149
+ '营销场景': 'varchar(100)',
150
+ '报表类型': 'varchar(100)',
151
+ '花费': 'decimal(10,2)',
152
+ '展现量': 'int',
153
+ '点击量': 'int',
154
+ '加购量': 'int',
155
+ '成交笔数': 'int',
156
+ '成交金额': 'decimal(12,2)',
157
+ '品牌搜索量': 'int',
158
+ '品牌搜索人数': 'int',
159
+ },
160
+ '聚合数据_商品id编码表': {
161
+ '日期': 'date',
162
+ '宝贝id': 'bigint',
163
+ '商家编码': 'varchar(255)',
164
+ '一级类目': 'varchar(100)',
165
+ '二级类目': 'varchar(100)',
166
+ '三级类目': 'varchar(100)',
167
+ '更新时间': 'timestamp'
168
+ },
169
+ '聚合数据_商品id图片对照表': {
170
+ '日期': 'date',
171
+ '商品id': 'bigint',
172
+ # '白底图': 'varchar(255)',
173
+ '商品图片': 'varchar(255)',
174
+ '商家编码': 'varchar(255)',
175
+ 'sku_id': 'bigint',
176
+ 'sku地址': 'varchar(255)',
177
+ '更新时间': 'timestamp'
178
+ },
179
+ '聚合数据_淘宝店铺货品': {
180
+ '日期': 'date',
181
+ '店铺id': 'bigint',
182
+ '店铺名称': 'varchar(255)',
183
+ '商家id': 'bigint',
184
+ '商品id': 'bigint',
185
+ '上市年份': 'varchar(50)',
186
+ '商品标题': 'varchar(255)',
187
+ '商品链接': 'varchar(255)',
188
+ '商品图片': 'varchar(255)',
189
+ '销量': 'varchar(50)',
190
+ '页面价': 'int',
191
+ 'data_sku': 'varchar(1000)',
192
+ '更新时间': 'timestamp',
193
+ },
194
+ '聚合数据_天猫_商品排行': {
195
+ '商品id': 'BIGINT',
196
+ '店铺名称': 'varchar(255)',
197
+ '商品名称': 'varchar(255)',
198
+ '主商品id': 'BIGINT',
199
+ '商品类型': 'varchar(50)',
200
+ '货号': 'varchar(50)',
201
+ '商品状态': 'varchar(50)',
202
+ '商品标签': 'varchar(50)',
203
+ '商品访客数': 'int',
204
+ '商品浏览量': 'int',
205
+ '平均停留时长': 'decimal(10,2)',
206
+ '商品详情页跳出率': 'decimal(6,4)',
207
+ '商品收藏人数': 'smallint',
208
+ '商品加购件数': 'smallint',
209
+ '商品加购人数': 'smallint',
210
+ '下单买家数': 'smallint',
211
+ '下单件数': 'smallint',
212
+ '下单金额': 'decimal(10,2)',
213
+ '下单转化率': 'decimal(10,4)',
214
+ '支付买家数': 'smallint',
215
+ '支付件数': 'int',
216
+ '支付金额': 'decimal(12,2)',
217
+ '商品支付转化率': 'decimal(10,4)',
218
+ '支付新买家数': 'smallint',
219
+ '支付老买家数': 'smallint',
220
+ '老买家支付金额': 'decimal(10,2)',
221
+ '聚划算支付金额': 'decimal(10,2)',
222
+ '访客平均价值': 'decimal(10,2)',
223
+ '成功退款金额': 'decimal(10,2)',
224
+ '竞争力评分': 'smallint',
225
+ '年累计支付金额': 'decimal(12,2)',
226
+ '月累计支付金额': 'decimal(12,2)',
227
+ '月累计支付件数': 'mediumint',
228
+ '搜索引导支付转化率': 'decimal(6,4)',
229
+ '搜索引导访客数': 'smallint',
230
+ '搜索引导支付买家数': 'smallint',
231
+ '结构化详情引导转化率': 'decimal(6,4)',
232
+ '结构化详情引导成交占比': 'decimal(6,4)',
233
+ '更新时间': 'timestamp',
234
+ '上市年份': 'varchar(100)',
235
+ },
236
+ '聚合数据_淘宝店铺来源构成': {
237
+ '日期': 'date',
238
+ '店铺名称': 'varchar(255)',
239
+ '类别': 'varchar(100)',
240
+ '来源构成': 'varchar(100)',
241
+ '一级来源': 'varchar(100)',
242
+ '二级来源': 'varchar(100)',
243
+ '三级来源': 'varchar(100)',
244
+ '访客数': 'int',
245
+ '支付金额': 'decimal(12,2)',
246
+ '支付买家数': 'int',
247
+ '支付转化率': 'decimal(10,4)',
248
+ '加购人数': 'int',
249
+ '一级来源索引': 'smallint',
250
+ '二级来源索引': 'smallint',
251
+ '三级来源索引': 'smallint',
252
+ },
253
+ '聚合数据_商品成本': {
254
+ '日期': 'date',
255
+ '款号': 'varchar(100)',
256
+ '年份季节': 'varchar(100)',
257
+ '吊牌价': 'decimal(10,2)',
258
+ '成本价': 'decimal(10,2)',
259
+ '天猫页面价': 'decimal(10,2)',
260
+ '天猫中促价': 'decimal(10,2)',
261
+ },
262
+ '聚合数据_京东_京准通': {
263
+ '日期': 'date',
264
+ '店铺名称': 'varchar(255)',
265
+ '产品线': 'varchar(100)',
266
+ '触发sku_id': 'bigint',
267
+ '跟单sku_id': 'bigint',
268
+ 'spu_id': 'bigint',
269
+ '花费': 'decimal(10,2)',
270
+ '展现数': 'int',
271
+ '点击数': 'int',
272
+ '直接订单行': 'int',
273
+ '直接订单金额': 'decimal(10,2)',
274
+ '总订单行': 'int',
275
+ '总订单金额': 'decimal(10,2)',
276
+ '直接加购数': 'int',
277
+ '总加购数': 'int',
278
+ },
279
+ '聚合数据_京东_京准通_全站营销': {
280
+ '日期': 'date',
281
+ '店铺名称': 'varchar(255)',
282
+ '产品线': 'varchar(100)',
283
+ '花费': 'decimal(10,2)',
284
+ '全站投产比': 'decimal(10,2)',
285
+ '全站交易额': 'decimal(10,2)',
286
+ '全站订单行': 'decimal(10,2)',
287
+ '全站订单成本': 'decimal(10,2)',
288
+ '全站费比': 'decimal(8,4)',
289
+ '核心位置展现量': 'int',
290
+ '核心位置点击量': 'int',
291
+ },
292
+ '聚合数据_京东_关键词报表': {
293
+ '日期': 'date',
294
+ '产品线': 'varchar(100)',
295
+ '计划类型': 'varchar(100)',
296
+ '计划id': 'varchar(100)',
297
+ '搜索词': 'varchar(255)',
298
+ '关键词': 'varchar(255)',
299
+ '关键词购买类型': 'varchar(100)',
300
+ '广告定向类型': 'varchar(100)',
301
+ '展现数': 'int',
302
+ '点击数': 'int',
303
+ '花费': 'decimal(10,2)',
304
+ '直接订单行': 'int',
305
+ '直接订单金额': 'decimal(12,2)',
306
+ '总订单行': 'int',
307
+ '总订单金额': 'decimal(12,2)',
308
+ '总加购数': 'int',
309
+ '领券数': 'int',
310
+ '商品关注数': 'int',
311
+ '店铺关注数': 'int',
312
+ '推广计划': 'varchar(255)',
313
+ 'k_是否品牌词': 'varchar(100)',
314
+ 's_是否品牌词': 'varchar(100)',
315
+ },
316
+ '聚合数据_京东_sku_商品明细': {
317
+ '日期': 'date',
318
+ '店铺名称': 'varchar(255)',
319
+ '商品id': 'varchar(100)',
320
+ '货号': 'varchar(100)',
321
+ '访客数': 'int',
322
+ '成交客户数': 'int',
323
+ '加购商品件数': 'int',
324
+ '加购人数': 'int',
325
+ '成交单量': 'int',
326
+ '成交金额': 'decimal(10,2)',
327
+ 'sku_id': 'varchar(100)',
328
+ },
329
+ '聚合数据_京东_spu_商品明细': {
330
+ '日期': 'date',
331
+ '店铺名称': 'varchar(255)',
332
+ '商品id': 'varchar(100)',
333
+ '货号': 'varchar(100)',
334
+ '访客数': 'int',
335
+ '成交客户数': 'int',
336
+ '加购商品件数': 'int',
337
+ '加购人数': 'int',
338
+ '成交单量': 'int',
339
+ '成交金额': 'decimal(10,2)',
340
+ 'spu_id': 'varchar(100)',
341
+ },
342
+ '聚合数据_天猫店铺来源_手淘搜索': {
343
+ '日期': 'date',
344
+ '店铺名称': 'varchar(255)',
345
+ '词类型': 'varchar(100)',
346
+ '搜索词': 'varchar(255)',
347
+ '访客数': 'int',
348
+ '加购人数': 'int',
349
+ '支付金额': 'decimal(10,2)',
350
+ '支付转化率': 'decimal(10,4)',
351
+ '支付买家数': 'int',
352
+ '客单价': 'decimal(10,2)',
353
+ 'uv价值': 'decimal(10,2)',
354
+ },
355
+ '聚合数据_生意参谋_直播场次分析': {
356
+ '日期': 'DATE',
357
+ '店铺名称': 'varchar(255)',
358
+ 'fvr_pv': 'int',
359
+ '封面图点击率': 'decimal(10,4)',
360
+ 'itrt_pv ': 'int',
361
+ '开播时长': 'smallint',
362
+ '成交笔数': 'smallint',
363
+ 'aov': 'decimal(10,2)',
364
+ '退款金额': 'decimal(12,2)',
365
+ '曝光pv': 'int',
366
+ '场次信息': 'varchar(255)',
367
+ 'cmt_uv': 'int',
368
+ '退款件数占比': 'decimal(10,4)',
369
+ 'reward_gift_cnt': 'smallint',
370
+ '观看人数': 'int',
371
+ '开播时长_f': 'varchar(100)',
372
+ 'reward_uv_rate': 'smallint',
373
+ 'fvr_uv': 'int',
374
+ '直播开播时间': 'datetime',
375
+ '商品点击率': 'decimal(10,4)',
376
+ '加购次数': 'smallint',
377
+ '成交转化率': 'decimal(10,4)',
378
+ 'atv': 'decimal(10,2)',
379
+ '成交金额': 'decimal(12,2)',
380
+ '退款人数': 'smallint',
381
+ 'index': 'smallint',
382
+ '预售定金支付人数': 'smallint',
383
+ '加购访客': 'smallint',
384
+ '商品点击次数': 'int',
385
+ '退款笔数': 'smallint',
386
+ 'itrt_uv': 'smallint',
387
+ '成交人数': 'smallint',
388
+ '观看总时长': 'varchar(100)',
389
+ '加购访客转化率': 'decimal(10,4)',
390
+ 'subpay_order_cnt': 'smallint',
391
+ 'cmt_pv': 'int',
392
+ '商品点击人数': 'int',
393
+ 'status': 'int',
394
+ '商品曝光uv': 'int',
395
+ '预售定金支付件数': 'smallint',
396
+ '预售预估总金额': 'decimal(12,2)',
397
+ '退款笔数占比': 'decimal(10,4)',
398
+ 'reward_pv': 'int',
399
+ '访客点击量': 'int',
400
+ 'aiv': 'decimal(10,2)',
401
+ 'shr_uv': 'int',
402
+ '浏览点击量': 'int',
403
+ '场次图片': 'text',
404
+ 'user_role': 'varchar(100)',
405
+ '退款人数占比': 'decimal(10,4)',
406
+ '退款件数': 'smallint',
407
+ '新增粉丝数': 'smallint',
408
+ '场均观看时长': 'decimal(10,2)',
409
+ '人均观看时长': 'decimal(10,2)',
410
+ '加购人数': 'smallint',
411
+ 'reward_uv': 'smallint',
412
+ '直播结束时间': 'datetime',
413
+ '商品曝光pv': 'int',
414
+ 'shr_pv': 'int',
415
+ '场次id': 'bigint',
416
+ 'look_pv_flowcontrol': 'smallint',
417
+ '退款率': 'decimal(10,4)',
418
+ 'is_delete': 'varchar(50)',
419
+ 'atn_uv_rate': 'decimal(10,4)',
420
+ '成交件数': 'smallint',
421
+ '最大在线人数': 'int',
422
+ '曝光uv': 'int',
423
+ '加购件数': 'smallint',
424
+ '预售定金支付金额': 'decimal(12,2)',
425
+ '观看次数': 'int',
426
+ '封面图': 'text',
427
+ '更新时间': 'timestamp',
428
+ },
429
+ '聚合数据_多店推广场景_按日聚合': {
430
+ '日期': 'date',
431
+ '店铺名称': 'varchar(255)',
432
+ '营销场景': 'varchar(100)',
433
+ '花费': 'decimal(12,2)',
434
+ '展现量': 'int',
435
+ '点击量': 'int',
436
+ '加购量': 'int',
437
+ '成交笔数': 'int',
438
+ '成交金额': 'decimal(12,2)',
439
+ },
440
+ '聚合数据_爱库存_商品spu榜单': {
441
+ '日期': 'date',
442
+ '店铺名称': 'varchar(255)',
443
+ 'spuid': 'varchar(100)',
444
+ '图片': 'varchar(255)',
445
+ '序号': 'smallint',
446
+ '商品名称': 'varchar(255)',
447
+ '商品款号': 'varchar(255)',
448
+ '一级类目名称': 'varchar(255)',
449
+ '二级类目名称': 'varchar(255)',
450
+ '三级类目名称': 'varchar(255)',
451
+ '数据更新时间': 'timestamp',
452
+ '更新时间': 'timestamp',
453
+ },
454
+ '聚合数据_达摩盘_deeplink人群洞察': {
455
+ '日期': 'date',
456
+ '人群类型': 'varchar(100)',
457
+ '店铺名称': 'varchar(255)',
458
+ '人群规模': 'int',
459
+ '人均成交价值': 'decimal(10, 4)',
460
+ 'datatype': 'varchar(100)',
461
+ '人群总计': 'int',
462
+ '广告触达占比': 'decimal(12, 4)',
463
+ '广告投入金额': 'decimal(12, 2)',
464
+ 'touchcharge': 'decimal(12, 2)',
465
+ '人群占比': 'decimal(12, 4)',
466
+ '长周期roi': 'decimal(12, 4)',
467
+ '支付买家数': 'int',
468
+ '成交笔数': 'int',
469
+ '成交金额': 'decimal(13, 2)',
470
+ '触达人数': 'int',
471
+ '长周期成交价值': 'decimal(13, 2)',
472
+ '达摩盘id': 'int',
473
+ },
474
+ '聚合数据_全域洞察': {
475
+ '日期': 'date',
476
+ '起始日期': 'date',
477
+ '结束日期': 'date',
478
+ '店铺名称': 'varchar(255)',
479
+ '场景id': 'varchar(50)',
480
+ '场景名字': 'varchar(50)',
481
+ '是否子渠道': 'varchar(10)',
482
+ '父渠道id': 'varchar(50)',
483
+ '父渠道名称': 'varchar(50)',
484
+ '在投计划数': 'varchar(10)',
485
+ 'bizCode': 'varchar(50)',
486
+ 'channelType': 'varchar(50)',
487
+ 'urlOneBP': 'varchar(255)',
488
+ '花费': 'decimal(12, 2)',
489
+ '展现量': 'int',
490
+ '点击量': 'int',
491
+ '加购成本': 'decimal(10, 4)',
492
+ '加购率': 'decimal(10, 4)',
493
+ '单次点击成本': 'decimal(10, 4)',
494
+ '当天引导roi': 'decimal(10, 4)',
495
+ '当天引导成交笔数': 'int',
496
+ '当天引导成交金额': 'decimal(12, 2)',
497
+ '总购物车数': 'int',
498
+ '成交笔数': 'int',
499
+ '成交转化率': 'decimal(10, 4)',
500
+ '成交金额': 'decimal(12, 2)',
501
+ '成交金额占比': 'decimal(10, 4)',
502
+ '消耗占比': 'decimal(10, 4)',
503
+ '渠道策略': 'varchar(255)',
504
+ '点击转化率': 'decimal(10, 6)',
505
+ '种草': 'varchar(10)',
506
+ '笔单价': 'decimal(10, 2)',
507
+ '蓄水转化成交笔数': 'int',
508
+ '蓄水转化成交金额': 'decimal(12, 2)',
509
+ '转化收割': 'varchar(10)',
510
+ '更新时间': 'timestamp',
511
+ },
512
+ '聚合数据_达摩盘_人群报表': {
513
+ '日期': 'date',
514
+ '店铺名称': 'varchar(255)',
515
+ '人群id': 'bigint',
516
+ '人群名称': 'varchar(255)',
517
+ '营销渠道': 'varchar(100)',
518
+ '计划基础信息': 'varchar(255)',
519
+ '推广单元信息': 'varchar(255)',
520
+ '消耗_元': 'decimal(10,2)',
521
+ '展现人数': 'int',
522
+ '展现量': 'int',
523
+ '点击人数': 'int',
524
+ '点击量': 'int',
525
+ '店铺收藏人数': 'smallint',
526
+ '店铺收藏量': 'smallint',
527
+ '加购人数': 'smallint',
528
+ '加购量': 'smallint',
529
+ '宝贝收藏人数': 'smallint',
530
+ '宝贝收藏量': 'smallint',
531
+ '收藏加购量': 'smallint',
532
+ '收藏加购人数': 'smallint',
533
+ '拍下人数': 'smallint',
534
+ '拍下订单量': 'smallint',
535
+ '拍下订单金额_元': 'decimal(10,2)',
536
+ '成交人数': 'smallint',
537
+ '成交订单量': 'smallint',
538
+ '成交订单金额_元': 'decimal(10,2)',
539
+ '店铺首购人数': 'smallint',
540
+ '店铺复购人数': 'smallint',
541
+ '点击率': 'decimal(10,4)',
542
+ 'uv点击率': 'decimal(10, 4)',
543
+ '收藏加购率': 'decimal(10, 4)',
544
+ 'uv收藏加购率': 'decimal(10, 4)',
545
+ '点击转化率': 'decimal(10, 4)',
546
+ 'uv点击转化率': 'decimal(10, 4)',
547
+ '投资回报率': 'decimal(10, 4)',
548
+ '千次展现成本_元': 'decimal(10, 2)',
549
+ '点击成本_元': 'decimal(10, 2)',
550
+ 'uv点击成本_元': 'decimal(10, 2)',
551
+ '收藏加购成本_元': 'decimal(10, 2)',
552
+ 'uv收藏加购成本_元': 'decimal(10, 2)',
553
+ '更新时间': 'timestamp',
554
+ '人群规模': 'int',
555
+ '用户年龄': 'varchar(100)',
556
+ '消费能力等级': 'varchar(100)',
557
+ '用户性别': 'varchar(100)',
558
+ },
559
+ '聚合数据_日期表': {
560
+ '日期': 'date',
561
+ '年': 'varchar(50)',
562
+ '月': 'varchar(50)',
563
+ '日': 'int',
564
+ '年月': 'varchar(50)',
565
+ '月日': 'varchar(50)',
566
+ '第n周': 'varchar(50)',
567
+ '第n周_new': 'varchar(50)',
568
+ '星期': 'varchar(50)',
569
+ 'weekname': 'varchar(50)',
570
+ '索引': 'int',
571
+ '月索引': 'int',
572
+ }
573
+ }
574
+
575
+
576
+ if __name__ == '__main__':
577
+ count_sum = SET_TYP_DICT.keys()
578
+ for index, key in enumerate(count_sum):
579
+ print(f'{index + 1}. {key}')
mdbq/mysql/uploader.py CHANGED
@@ -14,6 +14,7 @@ from dbutils.pooled_db import PooledDB
14
14
  import sys
15
15
  from decimal import Decimal, InvalidOperation
16
16
  import math
17
+ import json
17
18
 
18
19
  warnings.filterwarnings('ignore')
19
20
  logger = mylogger.MyLogger(
@@ -630,7 +631,6 @@ class MySQLUploader:
630
631
  if 'json' in column_type_lower:
631
632
  if isinstance(value, (dict, list)):
632
633
  try:
633
- import json
634
634
  return json.dumps(value, ensure_ascii=False)
635
635
  except (TypeError, ValueError) as e:
636
636
  logger.error(f"JSON序列化失败: {e}", {"库": db_name, "表": table_name, "列": col_name, "值": value})
@@ -638,7 +638,6 @@ class MySQLUploader:
638
638
  elif isinstance(value, str):
639
639
  # 验证字符串是否为有效的JSON
640
640
  try:
641
- import json
642
641
  json.loads(value)
643
642
  return value
644
643
  except (TypeError, ValueError) as e:
@@ -743,7 +742,15 @@ class MySQLUploader:
743
742
  except (AttributeError, IndexError):
744
743
  pass
745
744
  return str_value
746
- return value
745
+
746
+ # 兜底处理:确保所有返回值都是基本数据类型
747
+ if isinstance(value, (dict, list)):
748
+ try:
749
+ return json.dumps(value, ensure_ascii=False)
750
+ except (TypeError, ValueError):
751
+ return str(value)
752
+ else:
753
+ return str(value)
747
754
 
748
755
  @_execute_with_retry
749
756
  def _get_table_columns(self, db_name: str, table_name: str) -> Dict[str, str]:
@@ -1551,6 +1558,16 @@ class MySQLUploader:
1551
1558
  return 1000
1552
1559
  else:
1553
1560
  return 2000
1561
+
1562
+ def ensure_basic_type(value):
1563
+ """确保值是基本数据类型,如果是字典或列表则转换为字符串"""
1564
+ if isinstance(value, (dict, list)):
1565
+ try:
1566
+ return json.dumps(value, ensure_ascii=False)
1567
+ except (TypeError, ValueError):
1568
+ return str(value)
1569
+ return value
1570
+
1554
1571
  batch_size = get_optimal_batch_size(len(data))
1555
1572
  all_columns = [col for col in set_typ.keys() if col.lower() != 'id']
1556
1573
  total_inserted = 0
@@ -1563,10 +1580,10 @@ class MySQLUploader:
1563
1580
  batch = data[i:i + batch_size]
1564
1581
  values_list = []
1565
1582
  for row in batch:
1566
- values = [row.get(col) for col in all_columns]
1583
+ values = [ensure_basic_type(row.get(col)) for col in all_columns]
1567
1584
  if check_duplicate and not update_on_duplicate:
1568
1585
  dup_cols = duplicate_columns if duplicate_columns else [col for col in all_columns if col.lower() not in self.base_excute_col]
1569
- values += [row.get(col) for col in dup_cols]
1586
+ values += [ensure_basic_type(row.get(col)) for col in dup_cols]
1570
1587
  values_list.append(values)
1571
1588
  try:
1572
1589
  cursor.executemany(sql, values_list)
@@ -1599,10 +1616,10 @@ class MySQLUploader:
1599
1616
  batch = data[i:i + hybrid_n]
1600
1617
  for row in batch:
1601
1618
  try:
1602
- values = [row.get(col) for col in all_columns]
1619
+ values = [ensure_basic_type(row.get(col)) for col in all_columns]
1603
1620
  if check_duplicate and not update_on_duplicate:
1604
1621
  dup_cols = duplicate_columns if duplicate_columns else [col for col in all_columns if col.lower() not in self.base_excute_col]
1605
- values += [row.get(col) for col in dup_cols]
1622
+ values += [ensure_basic_type(row.get(col)) for col in dup_cols]
1606
1623
  cursor.execute(sql, values)
1607
1624
  affected = cursor.rowcount if cursor.rowcount is not None else 0
1608
1625
  if update_on_duplicate:
@@ -1627,10 +1644,10 @@ class MySQLUploader:
1627
1644
  else: # row模式
1628
1645
  for row in data:
1629
1646
  try:
1630
- values = [row.get(col) for col in all_columns]
1647
+ values = [ensure_basic_type(row.get(col)) for col in all_columns]
1631
1648
  if check_duplicate and not update_on_duplicate:
1632
1649
  dup_cols = duplicate_columns if duplicate_columns else [col for col in all_columns if col.lower() not in self.base_excute_col]
1633
- values += [row.get(col) for col in dup_cols]
1650
+ values += [ensure_basic_type(row.get(col)) for col in dup_cols]
1634
1651
  cursor.execute(sql, values)
1635
1652
  affected = cursor.rowcount if cursor.rowcount is not None else 0
1636
1653
  if update_on_duplicate: