电商API接口的应用||大数据电商数仓分析项目||电商热门商品统计

这篇具有很好参考价值的文章主要介绍了电商API接口的应用||大数据电商数仓分析项目||电商热门商品统计。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、电商热门商品统计模块

(1)需求分析

  1. 如何定义热门商品?

    • 简单模型:直接通过用户对商品的点击量来衡量商品热度。

    • 复杂模型:依据各类别权重(后续补充)

  2. 如何获取区域?

    • 通过用户点击日志,获取访问IP,进而获取区域信息。

    • 通过数据库中的订单关联用户表,获取用户的地域信息

  3. 如何去除爬虫水军(商家为了提高自己的排名,用爬虫来频繁访问自己的店铺)?

    • 一段时间分析用户IP的访问次数(后续补充)

(2)技术方案

  1. 数据采集(ETL)电商API接口接入

    「因为要访问数据库,所以会对数据库造成很大的压力,而且在真实的生产环境中,一般没有权限直接访问数据库。可以把数据导出成csv文件,放到日志服务器上,再通过Flume采集到HDFS上。假如有权限访问数据库,数据库也需要设置成读写分离的模式,来缓解压力。」

    • 电商日志一般存储在日志服务器,通过 Flume 拉取到 HDFS 上,本文通过编写python程序模拟日志数据。

    • 业务数据通过 Sqoop 从关系型数据库mysql中读取数据,然后导入到HDFS。

  2. 数据清洗

    • 使用 MapReduce 进行数据清洗。

    • 使用 Spark Core 进行数据清洗。

  3. 各区域热门商品计算

    • 使用 Hive 进行数据的分析和处理。

    • 使用 Spark SQL 进行数据的分析和处理

(3)实验数据及说明

  1. product(商品)表:

    列名 描述 数据类型 空/非空约束
    product_id 商品号 varchar(18) Not null
    product_name 商品名称 varchar(20) Not null
    marque 商品型号 varchar(10) Not null
    barcode 仓库条码 varchar Not null
    price 商品价格 double Not null
    brand_id 商品品牌 varchar(8) Not null
    market_price 市场价格 double Not null
    stock 库存 int Not null
    status 状态 int Not null

    补充说明: status: 下架-1,上架0,预售1

  2. area_info(地区信息)表

    列名 描述 数据类型 空/非空约束
    area_id 地区编号 varchar(18) Not null
    area_name 地区名称 varchar(20) Not null
  3. user_click_log(用户点击信息)表

    列名 描述 数据类型 空/非空约束
    user_id 用户ID varchar(18) Not null
    user_ip 用户IP varchar(20) Not null
    url 用户点击 URL varchar(200)
    click_time 用户点击时间 varchar(40)
    action_type 动作名称 varchar(40)
    area_id 地区ID varchar(40)

    补充说明: action_type: 1 收藏,2 加购物车,3 购买 area_id:已经通过IP地址,解析出了区域信息

  4. area_hot_product(区域热门商品)表

    列名 描述 数据类型 空/非空约束
    area_id 地区ID varchar(18) Not null
    area_name 地区名称 varchar(20) Not null
    product_id 商品ID varchar(200)
    product_name 商品名称 varchar(40)
    pv 访问量 BIGINT

(4)技术实现

使用Flume采集用户点击日志

  1. Flume配置文件(flume-areahot.conf)

    2.利用python编写程序模拟日志信息,jian放入/log0208文件夹下,自定义添加不符合字段数据,要经过mr或spark进行数据清洗。

    • 启动 Flume agent,在 Flume 的根目录下执行命令:bin/flume-ng agent -n a4 -f flume-areahot.conf -c conf -Dflume.root.logger=INFO,console

    • 再执行python dslog.py向 /log0208 目录里放入用户日志文件(实现方法:此处

    • Flume 会将 /log0208 目录下的文件采集到 hdfs://master:9000/flume/ 当天日期 目录下。

「运行dslog.py程序如下:」

#coding=utf-8
import random
import time
iplist=[26,23,47,56,108,10,33,48,66,77,101,45,61,52,88,89,108,191,65,177,98,21,34,61,19,11,112,114]

url = "http://mystore.jsp/?productid={query}"
x=[1,2,3,4]

def use_id():
    return random.randint(1,20)
def get_ip():
    return '.'.join(str(x) for x in random.sample(iplist,4))

def urllist():
def sample_references():
    if random.uniform(0,1)>0.8:
        return ""

    query_str=random.sample(x,1)
    return url.format(query=query_str[0])

def get_time():
    return time.strftime('%Y%m%d%H%M%S',time.localtime())

#  action: 1 收藏,2 加购物车,3 购买  area_id代表不同区域
def action():
    return random.randint(1,4)

def area_id():
    return random.randint(1,21)


def get_log(count):
    while count>0:
        log='{},{},{},{},{},{}\n'.format(use_id(),get_ip(),urllist(),get_time(),action(),area_id())
        # with open('/usr/local/src/tmp/1.log','a+')as file:
        with open('/log0208/click.log','a+')as file:
            file.write(log)
        # print(log)
        # time.sleep(1)
        count=count-1
if __name__ == '__main__':
    get_log(10000)

点击并拖拽以移动

生成日志结果截取:

5,10.26.56.45,http://mystore.jsp/?productid=1,20210222005139,1,19
2,10.101.98.47,http://mystore.jsp/?productid=1,20210222005139,3,8
17,191.88.66.108,http://mystore.jsp/?productid=3,20210222005139,2,14
4,89.21.33.108,,20210222005139,2,10
4,108.23.48.114,http://mystore.jsp/?productid=4,20210222005139,1,21
8,21.48.19.65,,20210222005139,1,3
16,61.21.89.11,http://mystore.jsp/?productid=2,20210222005139,3,11
6,56.47.112.88,,20210222005139,1,3

点击并拖拽以移动

flume-areahot.conf配置文件如下:

#bin/flume-ng agent -n a4 -f myagent/a4.conf -c conf -Dflume.root.logger=INFO,console
#定义agent名, source、channel、sink的名称
a4.sources = r1
a4.channels = c1
a4.sinks = k1

#具体定义source
a4.sources.r1.type = spooldir
a4.sources.r1.spoolDir = /log0208

#具体定义channel
a4.channels.c1.type = memory
a4.channels.c1.capacity = 10000
a4.channels.c1.transactionCapacity = 100 

#定义拦截器,为消息添加时间戳
a4.sources.r1.interceptors = i1
a4.sources.r1.interceptors.i1.type = org.apache.flume.interceptor.TimestampInterceptor$Builder

#具体定义sink
a4.sinks.k1.type = hdfs
a4.sinks.k1.hdfs.path = hdfs://master:9000/flume/%Y%m%d
a4.sinks.k1.hdfs.filePrefix = events-
a4.sinks.k1.hdfs.fileType = DataStream

#不按照条数生成文件
a4.sinks.k1.hdfs.rollCount = 0 
#HDFS上的文件达到128M时生成一个文件
a4.sinks.k1.hdfs.rollSize = 134217728
#HDFS上的文件达到60秒生成一个文件
a4.sinks.k1.hdfs.rollInterval = 60

#组装source、channel、sink
a4.sources.r1.channels = c1
a4.sinks.k1.channel = c1

点击并拖拽以移动

3.数据清洗

  • 需要将用户点击日志里面对于商品的点击识别出来

  • 过滤不满足6个字段的数据

  • 过滤URL为空的数据,即:过滤出包含http开头的日志记录文章来源地址https://www.toymoban.com/news/detail-860706.html

到了这里,关于电商API接口的应用||大数据电商数仓分析项目||电商热门商品统计的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 如何使用电商API接口API接口如何应用

    使用API接口 API(应用程序接口)是现代软件开发中必不可少的一部分,它通常允许软件与其他软件或服务进行交互。使用API可以大大提高软件的灵活性和可扩展性,并允许您轻松添加新的功能和服务,因此,API接口的使用越来越广泛,这也是今天我们要讲解的重点。 I. 了解

    2024年02月03日
    浏览(37)
  • 最详细数据仓库项目实现:从0到1的电商数仓建设(数仓部分)

    数据仓库是一个为数据分析而设计的企业级数据管理系统 ,它是一个系统,不是一个框架。可以独立运行的,不需要你参与,只要运行起来就可以自己运行。 数据仓库不是为了存储(但是能存),而是为了统计分析 数据仓库可集中、整合多个信息源的大量数据,借助数据仓

    2024年03月23日
    浏览(29)
  • 拼多多开放平台的API接口可以获取拼多多电商数据。以下是API接口流程

     使用拼多多开放平台的API接口可以获取拼多多电商数据。以下是一般的API接口流程: 1. 注册开发者账号:首先,您需要在拼多多开放平台注册一个开发者账号。通过开发者账号,您可以获得API密钥和其他必要的信息。 2. 鉴权与认证:在使用API之前,您需要获取访问令牌(

    2024年02月11日
    浏览(29)
  • Python爬取电商数据:商品采集接口 商品详情数据API 商品主图接口

    学习 Python 自动化的一个好办法就是构建一个价格追踪器。由于这项任务生成的脚本可以立即投入使用,所以对于初学者来说尤为方便。本文将向大家介绍如何用 Python 采集器建立一个可立即实现电商价格监控的可扩展价格追踪器。 价格监控的好处多多。对于您个人来说,通

    2023年04月24日
    浏览(36)
  • 探秘淘宝店铺所有商品API接口:一键获取海量数据,引领电商数据革命

    一、概述 淘宝店铺所有商品API接口是淘宝开放平台提供的一套应用程序接口,允许第三方开发者获取淘宝店铺中的所有商品信息。通过使用这个接口,开发者可以获取到店铺中所有商品的详细信息,包括商品ID、标题、描述、价格、库存等,从而进行深度分析和挖掘,进一步

    2024年01月20日
    浏览(35)
  • 大数据项目 --- 电商数仓(一)

    这个项目实在数据采集基础使用的,需要提前复习之前学的东西,否则的话就是很难继续学习.详见博客数据项目一 ---数据采集项目. 大数据项目 --- 数据采集项目_YllasdW的博客-CSDN博客 大数据第一个项目笔记整理 https://blog.csdn.net/m0_47489229/article/details/127477626 目录 一. 采集项目架

    2024年02月13日
    浏览(44)
  • 抓取电商产品数据的方法|电商平台商品详情数据|批量上架|商品搬家|电商封装API数据采集接口更高效安全的数据采集

    大量级电商数据采集时使用电商API接口有以下优势: 1. 数据准确性:通过电商API接口获取数据,可以保证数据的准确性和实时性,避免了手动采集可能出现的错误和延迟。 2. 自动化采集:API接口可以实现自动化的数据获取和更新,大大减少了人工操作的时间成本,提高了数

    2024年04月27日
    浏览(32)
  • 【主流电商平台API接口接入】大数据的关键技术之—大数据采集

    Data acquisition 2023 电商大数据采集步骤方法 1 数据需求分析: 在开始采集之前,需要明确需要采集的数据类型、目的和用途。例如,想要了解用户行为数据、市场趋势数据等。 2 数据源选择: 根据需求确定数据的来源,这可能包括互联网上的网站、社交媒体平台、传感器、日

    2024年02月19日
    浏览(30)
  • 电商数仓项目需求及架构设计

    1.用户行为数据采集平台搭建 2.业务数据采集平台搭建 3.数仓维度建模 4.统计指标 5.即席查询工具,随时进行指标分析 6.对集群性能进行监控,发生异常时报警(第三方信息) 7.元数据管理 8.质量监控 9.权限管理(表级别、字段级别) 数据量大小、业务需求、行内经验、技术

    2024年02月10日
    浏览(22)
  • 多语言对接电商平台api接口获取京东商品评论数据代码展示示例

    商品评论接口的意义: 确认消费者关注与产品卖点是否一致; 洞察用户对价格、促销、直播的敏感度;发现产品质量、客服、物流等方面的问题;找到品牌宣称与用户预期、实际场景之间差异化;挖掘消费者偏好的差异性,进行用户分群偏好研究;还原客户故事,分析其购

    2024年02月11日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包