day03_开发前准备和匹配类标签

news2025/1/21 6:53:00

文章目录

  • day03_开发前准备和匹配类标签
  • 一、标签体系(了解)
  • 二、数据导入(操作)
    • 1、背景介绍(重要)
    • 2、创建Hive表
      • 2.1 dwm_sold_goods_sold_dtl_i
      • 2.2 dwm_sell_o2o_order_i
      • **2.3 dwd_mem_member_union_i**
      • 2.4 dwm_mem_member_behavior_day_i
      • **2.5 dwm_mem_first_buy_i**
    • 3、数据同步
    • 4、数据核对问题
  • 三、标签计算流程(熟悉)
    • 1、四级标签和Spark任务的对应关系(了解)
    • 2、标签计算的元数据
    • 3、Spark任务开发流程
  • 四、通用开发(掌握)
    • 1、环境准备
    • 2、设置开发模板
    • 3、复习Spark与Hive整合
    • 4、MySQL规则处理
      • 4.1 复习Spark与MySQL整合
      • 4.2 标签配置表rule字段内容解析
    • 5、创建索引和逗号分词器
  • 五、年龄段标签开发(掌握)
    • 1、需求分析
    • 2、代码开发
  • Spark与Hive整合.py
  • Spark与MySQL整合.py
  • match
    • age_tag_sql.py
    • age_tag_v1.py
  • 六、课后作业
    • 1、独立实现年龄段标签开发
    • 2、参考年龄段标签,实现性别、职业标签的开发

day03_开发前准备和匹配类标签

一、标签体系(了解)

在数据产品经理与业务部门的沟通下,最终将小兔智购的标签体系划分为如下:

在这里插入图片描述

开发时项目建包原则,可以按照类型划分statices,match,ml,streaming划分项目的package

规则匹配标签:只需要进行简单的规则匹配就可以得到用户画像结果

统计性标签:在计算时候要进行聚合统计可以得到画像结果

算法挖掘类标签:在计算需要使用用到机器学习算法得到画像结果

实时标签:需要实时处理数据计算实时标签

开发时间:挖掘性标签一周1个,匹配和统计2-3天1个(需要熟悉业务、处理数据等)

二、数据导入(操作)

同学们自己写简历的项目结构可以是怎样?
	1- 方案一(顺丰优选公司实际的做法): 你可以说你们在开发用户画像之前,你们公司已经开发好了Hive离线数仓的项目,用户画像的业务数据来源自Hive数仓
	2- 方案二: 提前没有Hive离线数仓的项目,你们从MySQL中使用SeaTunnel将业务数据同步到Hive的ODS层,接着开发用户画像,并且没有建设Hive离线数仓

1、背景介绍(重要)

因为本项目是建立在离线数仓的基础上,也就是说,在用户画像项目开始前,已经有部分数据进行了加工处理,所以在实际开发时,可以直接使用存储在Hive数仓中的数据,避免重复加工。

2、创建Hive表

2.1 dwm_sold_goods_sold_dtl_i

CREATE DATABASE IF NOT EXISTS dwm;
CREATE TABLE IF NOT EXISTS dwm.dwm_sold_goods_sold_dtl_i(
    trade_date_time             STRING COMMENT '核销时间',
    trade_date                  STRING COMMENT '交易日期',
    week_trade_date             STRING COMMENT '周一日期',
    month_trade_date            STRING COMMENT '月一日期',
    hourly                      BIGINT COMMENT '交易小时(0-23)',
    quarter                     BIGINT COMMENT '刻钟:1.0-15,2.15-30,3.30-45,4.45-60',
    quarters                    BIGINT COMMENT '刻钟数:hourly*4+quarters',

    parent_store_no             STRING COMMENT '母店编码',
    store_no                    STRING COMMENT '店铺编码',
    store_name                  STRING COMMENT '店铺名称',
    store_sale_type             BIGINT COMMENT '店铺销售类型',
    store_type_code             BIGINT COMMENT '分店类型',
    worker_num                  BIGINT COMMENT '员工人数',
    store_area                  DECIMAL(27, 2) COMMENT '门店面积',
    city_id                     BIGINT COMMENT '城市ID',
    city_name                   STRING COMMENT '城市名称',
    region_code                 STRING COMMENT '区域编码',
    region_name                 STRING COMMENT '区域名称',
    is_day_clear                BIGINT COMMENT '是否日清:0否,1是',

    trade_type                  BIGINT COMMENT '结算类型(0.正常交易,1.赠品发放,2.退货,4.培训,5.取消交易)',
    source_type                 BIGINT COMMENT '交易来源1:线下POS;2:三方平台;3:传智鲜商城;4:优选团;5:传智大客户;6:传智其他;7:优选;8:优选海淘;9:优选大客户;10:优选POS;11:优选APP;12:优选H5;13:店长工具线下;14:店长工具线上;15:其他',
    source_type_name            STRING COMMENT '交易来源名称',
    sale_type                   BIGINT COMMENT '销售类型 1.实物,2.代客,3.优选小程序,4.离店,5.传智鲜小程序,6.第三方平台,7.其他,8.大客户',
    is_online_order             BIGINT COMMENT '是否为线上单:0否,1是',
    member_type                 BIGINT COMMENT '会员类型:0非会员,1线上会员,2实体卡会员',
    is_balance_consume          BIGINT COMMENT '是否有余额支付:0否,1是',
    order_type                  BIGINT COMMENT '配送类型(真正的订单类型由业务类型来决定):1-及时送;2-隔日送;3-自提单;4-线下单',
    express_type                BIGINT COMMENT '配送方式:0-三方平台配送;1-自配送;2-快递;3-自提;4-线下',

    parent_order_no             STRING COMMENT '母订单编号',
    order_no                    STRING COMMENT '订单编号',

    create_time                 STRING COMMENT '创建时间',
    is_cancel                   BIGINT COMMENT '是否取消',
    cancel_time                 STRING COMMENT '取消时间',
    last_update_time            STRING COMMENT 'pos_sale表最后一次更新时间',

    zt_id                       BIGINT COMMENT '中台ID',
    member_id                   BIGINT COMMENT '会员ID',
    card_no                     STRING COMMENT '卡号',

    share_user_id               STRING COMMENT '分享人用户ID',
    commission_amount           DECIMAL(27, 2) COMMENT '佣金',
    is_tuan_head                BIGINT COMMENT '是否为团长订单',
    store_leader_id             BIGINT COMMENT '团长id',
    order_group_no              STRING COMMENT '团单号',

    first_category_no           STRING COMMENT '一级分类编码',
    first_category_name         STRING COMMENT '一级分类名称',
    second_category_no          STRING COMMENT '二级分类编码',
    second_category_name        STRING COMMENT '二级分类名称',
    third_category_no           STRING COMMENT '三级分类编码',
    third_category_name         STRING COMMENT '三级分类名称',
    goods_no                    STRING COMMENT '商品编码',
    goods_name                  STRING COMMENT '商品名称',

    supply_team                 BIGINT COMMENT '供应链团队 1.平台商品,2.优选标品,3.传智鲜标品,4.传智鲜生鲜,5优选POS商品',
    dc_no                       STRING COMMENT '采购仓库编号',
    dc_name                     STRING COMMENT '采购仓库名称',
    group_no                    STRING COMMENT '采购柜组编号',
    group_name                  STRING COMMENT '采购柜组名称',
    trade_mode_id               BIGINT COMMENT '结算方式:1购销,2联营',
    vendor_id                   BIGINT COMMENT '供应商ID',
    contract_no                 STRING COMMENT '合同编号',
    is_clean                    BIGINT COMMENT '商品是否日清:0否,1是',
    is_daily_clear              BIGINT COMMENT '商品是否参加日清活动:0否,1是',

    sale_qty                    DECIMAL(27, 3) COMMENT '商品销售数量',
    sale_amount                 DECIMAL(27, 2) COMMENT '商品销售金额',
    dis_amount                  DECIMAL(27, 2) COMMENT '商品折扣金额',
    sale_cost                   DECIMAL(27, 2) COMMENT '商品销售成本',
    balance_amount              DECIMAL(27, 2) COMMENT '余额支付',

    order_total_amount          DECIMAL(27, 2) COMMENT '订单总金额(平摊)',
    order_discount_amount       DECIMAL(27, 2) COMMENT '订单优惠金额=商家承担优惠金额+平台补贴金额(平摊)',
    order_paid_amount           DECIMAL(27, 2) COMMENT '实付金额(平摊)'
)
COMMENT '商品销售明细(核销)'
partitioned by(dt STRING COMMENT '核销日期')
row format delimited fields terminated by ','
stored as orc
tblsql ('orc.compress'='SNAPPY');

2.2 dwm_sell_o2o_order_i

CREATE DATABASE IF NOT EXISTS dwm;
CREATE TABLE IF NOT EXISTS dwm.dwm_sell_o2o_order_i (
    create_time               STRING COMMENT '订单创建时间',
    trade_date                STRING COMMENT '交易日期',
    week_trade_date           STRING COMMENT '周一日期',
    month_trade_date          STRING COMMENT '月一日期',
    hourly                    BIGINT COMMENT '交易小时(0-23)',
    quarter                   BIGINT COMMENT '刻钟:1.0-15,2.15-30,3.30-45,4.45-60',
    quarters                  BIGINT COMMENT '刻钟数:hourly*4+quarters',

    parent_order_no           STRING COMMENT '父单订单号/源单号',
    order_no                  STRING COMMENT '订单编号',
    trade_type                BIGINT COMMENT '结算类型(0.正常交易,1.赠品发放,2.退货,4.培训,5.取消交易)',
    source_type               BIGINT COMMENT '交易来源1:线下POS;2:三方平台;3:传智鲜商城;4:优选团;5:传智大客户;6:传智其他;7:优选;8:优选海淘;9:优选大客户;10:优选POS;11:优选APP;12:优选H5;13:店长工具线下;14:店长工具线上;15:其他',
    source_type_name          STRING COMMENT '交易来源名称',
    sale_type                 BIGINT COMMENT '销售类型 1.实物,2.代客,3.优选小程序,4.离店,5.传智鲜小程序,6.第三方平台,7.其他,8.大客户',
    is_online_order           BIGINT COMMENT '是否为线上单:0否,1是',
    member_type               BIGINT COMMENT '会员类型:0非会员,1线上会员,2实体卡会员',
    is_balance_consume        BIGINT COMMENT '是否有余额支付:0否,1是',
    order_type                BIGINT COMMENT '配送类型(真正的订单类型由业务类型来决定):1-及时送;2-隔日送;3-自提单;4-线下单',
    express_type              BIGINT COMMENT '配送方式:0-三方平台配送;1-自配送;2-快递;3-自提;4-线下',

    store_no                  STRING COMMENT '店铺编码',
    store_name                STRING COMMENT '店铺名称',
    store_sale_type           BIGINT COMMENT '店铺销售类型',
    store_type_code           BIGINT COMMENT '分店类型',
    worker_num                BIGINT COMMENT '员工人数',
    store_area                DECIMAL(27, 2) COMMENT '门店面积',
    city_id                   BIGINT COMMENT '城市ID',
    city_name                 STRING COMMENT '城市名称',
    region_code               STRING COMMENT '区域编码',
    region_name               STRING COMMENT '区域名称',
    is_day_clear              BIGINT COMMENT '是否日清:0否,1是',

    is_cancel                 BIGINT COMMENT '是否取消',
    cancel_time               STRING COMMENT '取消时间',
    cancel_reason             STRING COMMENT '取消原因',
    last_update_time          TIMESTAMP COMMENT '最新更新时间',

    cashier_no                STRING COMMENT '收银员编码',
    cashier_name              STRING COMMENT '收银员名称',

    zt_id                     BIGINT COMMENT '中台ID',
    member_id                 BIGINT COMMENT '会员ID',
    card_no                   STRING COMMENT '卡号',
    r_name                    STRING COMMENT '收货人姓名',
    r_province                STRING COMMENT '收货人省份',
    r_city                    STRING COMMENT '收货人城市',
    r_district                STRING COMMENT '收货人区域',

    is_tuan_head              BIGINT COMMENT '是否为团长订单',
    store_leader_id           BIGINT COMMENT '团长id',
    order_group_no            STRING COMMENT '团单号',

    settle_amount             DECIMAL(27, 2) COMMENT '结算金额',
    share_user_id             BIGINT COMMENT '分享人用户ID',
    commission_amount         DECIMAL(27, 2) COMMENT '佣金',

    order_total_amount        DECIMAL(27, 2) COMMENT '订单总金额',
    product_total_amount      DECIMAL(27, 2) COMMENT '商品总金额(原价)',
    pack_amount               DECIMAL(27, 2) COMMENT '餐盒费/打包费',
    delivery_amount           DECIMAL(27, 2) COMMENT '配送费',
    discount_amount           DECIMAL(27, 2) COMMENT '订单优惠金额=商家承担优惠金额+平台补贴金额',
    seller_discount_amount    DECIMAL(27, 2) COMMENT '商家承担优惠金额',
    platform_allowance_amount DECIMAL(27, 2) COMMENT '平台补贴金额',
    real_paid_amount          DECIMAL(27, 2) COMMENT '实付金额',
    product_discount          DECIMAL(27, 2) COMMENT '商品优惠金额',
    real_product_amount       DECIMAL(27, 2) COMMENT '商品实际金额',

    round_amount              DECIMAL(27, 2) COMMENT '舍分金额',
    wechat_amount             DECIMAL(27, 4) COMMENT '微信支付',
    ali_pay_amount            DECIMAL(27, 4) COMMENT '支付宝支付',
    cash_amount               DECIMAL(27, 4) COMMENT '现金支付',
    balance_amount            DECIMAL(27, 4) COMMENT '余额支付',
    point_amount              DECIMAL(27, 4) 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2279695.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

STM32之FreeRTOS开发介绍(十九)

STM32F407 系列文章 - freertos(十九) 目录 前言 一、简述 二、开源网址 三、原理及功能特性 1.原理 2.功能 3.特点 4.优缺点 四、参考书籍 五、实现方式 总结 前言 FreeRTOS是一个免费的、开源的实时操作系统,专为微控制器和嵌入…

第十三章:数据库技术

文章目录: 一:基础 1.概念 2.特点 3.常见数据库品牌 4.数据库应⽤系统 4.1 C/S 4.2 B/S 5.数据模型的分类 6.名词解析 7.关系运算 二:Access 1.基础 2.操作 2.1 建立表 2.2 维护表 2.3 创建查询 2.4 创建窗体 2.5 创建报表…

stm32 no connect target

解决 STM32 报错 “no target connected” 的方法 前言 stm32最小系统在下载程序是一直报错:no target connected,试了很多办法成功不了,最后将芯片擦除了才成功。 一、问题描述 当时是写flash的时候写到ST Link 存储的地方了。 之后就不…

综述:大语言模型在机器人导航中的最新进展!

简介 机器人导航是指机器人能够在环境中自主移动和定位的能力。本文系统地回顾了基于大语言模型(LLMs)的机器人导航研究,将其分为感知、规划、控制、交互和协调等方面。具体来说,机器人导航通常被视为一个几何映射和规划问题&…

OpenHarmony-7.IDL工具

IDL 工具 1.openharmony IDL工具 在OpenHarmony中,当应用/系统服务的客户端和服务端进行IPC(Inter-Process Communication)跨线程通信时,需要定义双方都认可的接口,以保障双方可以成功通信,OpenHarmony ID…

Docker私有仓库管理工具Registry

Docker私有仓库管理工具Registry 1 介绍 Registry是私有Docker仓库管理工具,Registry没有可视化管理页面和完备的管理策略。可借助Harbor、docker-registry-browser完成可视化和管理。Harbor是由VMware开发的企业级Docker registry服务。docker-registry-browser是…

人工智能之数学基础:线性代数中的线性相关和线性无关

本文重点 在线性代数的广阔领域中,线性相关与线性无关是两个核心概念,它们对于理解向量空间、矩阵运算、线性方程组以及人工智能等问题具有至关重要的作用。 定义与直观理解 当存在一组不全为0的数x1,x2,...,xn使得上式成立的时候,那么此时我们可以说向量组a1,a2...,an…

【Django】多个APP设置独立的URL

目录 方法一:各个App下设置自己的URL 1、在各自的App当中创建urls.py文件​编辑 2、在主urls当中包含子url 3、各App的urls中设置url 4、设置后台函数 5、最终结果 总结: 方法二:利用as方法,在总的URL中对views重命名 实…

函数递归的介绍

1.递归的定义 在C语言中,递归就是函数自己调用自己 上面的代码就是 main 函数在函数主体内 自己调用自己 但是,上面的代码存在问题:main 函数反复地 自己调用自己 ,不受限制,停不下来。 最终形成死递归,…

四、华为交换机 STP

生成树协议(STP)的核心目的是在存在冗余链路的网络中,构建一个无环的拓扑结构,从而防止网络环路带来的广播风暴等问题 一、STP 原理 选举根桥:网络中的每台交换机都会有一个唯一的桥 ID(BID)&am…

前端炫酷动画--图片(一)

目录 一、四角线框的跟随移动 二、元素倒影(-webkit-box-reflect) 三、模特换装(maskblend) 四、元素平滑上升 五、无限视差滚动 六、判断鼠标进入方向(轮播方向) 七、环形旋转效果 八、黑白小球交替旋转 九、hover时圆形放大 十、画一棵随机树(canvas) 十一、代码雨…

AI刷题-病毒在封闭空间中的传播时间

目录 问题描述 输入格式 输出格式 解题思路: 问题理解 数据结构选择 算法步骤 代码实现: 1.初始化: 2.设置边界条件: 3.判断 4.更新: 5.返回 最终的实现代码如下: 运行结果: …

SQL表间关联查询详解

简介 本文主要讲解SQL语句中常用的表间关联查询方式,包括:左连接(left join)、右连接(right join)、全连接(full join)、内连接(inner join)、交叉连接&…

路由器旁挂三层网络实现SDWAN互联(爱快SD-WAN)

近期因公司新办公区建设,原有的爱快路由器的SDWAN功能实现分支之间互联的服务还需要继续使用。在原有的小型网络中,使用的爱快路由器当作网关设备,所以使用较为简单,如下图所示。 现变更网络拓扑为三层网络架构,但原有的SDWAN分支…

麦田物语学习笔记:制作[SceneName]Attribute特性

基本流程 因为在现有的项目中,像开始场景的切换或者Telepot组件都需要手动输入场景名,有时还可能键入出错,而该特性能用选择的方式去解决这一问题 1.代码实现 SceneNameDrawer.cs //参数绘制 using UnityEditor; using UnityEngine; #if UNITY_EDITOR [CustomPropertyDrawer(…

HTML之拜年/跨年APP(改进版)

目录: 一:目录 二:效果 三:页面分析/开发逻辑 1.页面详细分析: 2.开发逻辑: 四:完整代码(不多废话) index.html部分 app.json部分 二:效果 三:页面…

【2024 年度总结】从小白慢慢成长

【2024 年度总结】从小白慢慢成长 1. 加入 CSDN 的契机2. 学习过程2.1 万事开头难2.2 下定决心开始学习2.3 融入技术圈2.4 完成万粉的目标 3. 经验分享3.1 工具的选择3.2 如何提升文章质量3.3 学会善用 AI 工具 4. 保持初心,继续前行 1. 加入 CSDN 的契机 首次接触…

一文大白话讲清楚webpack基本使用——2——css相关loader的配置和使用

一文大白话讲清楚webpack基本使用——2——css相关loader的配置和使用 1. 建议按文章顺序从头看是看 第一篇:一文大白话讲清楚啥是个webpack第二篇:一文大白话讲清楚webpack基本使用——1——完成webpack的初步构建然后看本篇,Loader的配置…

如何将 session 共享存储到 redis 中

文章目录 一. 分布式 session 登录1.1 什么是分布式?1.2 Session 共享1.3 为什么服务器 A 登录后,请求发到服务器 B,不认识该用户?1.4 共享存储 二. Session 共享实现Redis三. 测试session共享四. cookie设置4.1 前端4.2 后端 一.…

Debezium日常分享系列之:对于从Oracle数据库进行快照的性能优化

Debezium日常分享系列之:对于从Oracle数据库进行快照的性能优化 源数据库Kafka Connect监控测试结果 源数据库 Oracle 19c,本地,CDB数据库主机的I/O带宽为6 GB/s,由此主机上运行的所有数据库共享临时表空间由42个文件组成&#x…