数据湖构建DLF快速入门 实验笔记

一、登录阿里云账号,点击进入DLF控制界面

DLF控制台⻚⾯https://dlf.console.aliyun.com/cn-hangzhou/home?spm=a2c6h.13858378.0.0.2dce45bb9KPCK3

1.开通DLF以及其依赖OSS服务器,并完成授权

 2.开通完成后进入DLF控制台页面

 二、在OSS中导入需要分析的数据

1.

点击链接,下载样例代码⾄本地磁盘。

解压后得到⽂件夹:user_behavior_data,包含item和user个⽂件夹,⾥⾯分别包含了各⾃的csv数据⽂ 件。

2. 将⽂件上传⾄OSS 进⼊OSS控制台,上传⽂件使⽤已有的Bucket,或创建新的Bucket。

 上传解压后的user_behavior_data⽂件夹。上传后⽬录结构如下所示,item和user为两个表的数据⽂件夹。

 三、在DLF上抽取元数据

1.创建元数据

DLF中元数据库可以理解为在关系型数据库中的Database,其下⼀级为Table。

DLF控制台中,进⼊元数据库⻚⾯,创建元数据库。

 填⼊数据库名称。并选择刚才存有⽤户⾏为分析的

 元数据库创建成功。

2.发现OSS⽂件中的元数据表信息

进⼊DLF元数据抽取⻚⾯,点击“新建抽取任务”

 选择要使⽤的⽬标元数据库,下方的抽取策略,选择“仅新增列,不支持删除原有列”,点击下⼀步。

 选择过程中需要⽤到的RAM⻆⾊,默认为开通阶段已经授权的“AliyunDLFWorkFlowDefaultRole”。运⾏模式 选择“调度执⾏”,并选择每天执行,这样可以在csv结构有变化时定期更新表结构。抽取策略选择“快速模式”以最快的速度完成元数据发现。

 核对信息后,点击“保存并⽴即执⾏”。

 约10秒后任务运⾏完成。约10秒后任务运⾏完成。⿏标移到状态栏的问号图标,会看到已经成功创建了两张元数据表。

点击浮层中的“元数据库”链接,可直接查看该库中相关的表信息。

⾄此,我们通过DLF⾃动发现数据湖CSV⽂件Schema的过程已经完成。下⼀步我们开始针对数据湖内的数据做分析。

四、用户行为分析

1.在DLF控制台⻚⾯,点击菜单“数据探索”-“SQL查询”,进⼊数据探索页面。

 

数据分析的过程主要分为三步:

<1. 预览并检查数据信息。

<2. 简单的数据清洗。

<3. 进⾏⽤户活跃度、漏⽃模型和商品热度分析。

2.预览并检查数据

在查询框输⼊下⾯的语句,查看⽂件中的数据信息。

SQL查询目前仅支持单条语句,请逐条执行

-- 预览数据

select * from `dlf_demo ` . ` user ` limit 10;

select * from `dlf_demo ` . `item ` limit 10;

-- ⽤户数 17970

select COUNT(DISTINCT user_id) from `dlf_demo ` . ` user ` ;

-- 商品数 422858

select COUNT(DISTINCT item_id) from `dlf_demo ` . `item ` ;

-- ⾏为记录数 746024

select COUNT(*) from `dlf_demo ` . ` user ` ;

 3.数据预处理

我们对原始数据进⾏⼀定的处理,已提⾼数据的可读性,并提⾼分析的性能。

<1.将behavior_type修改成更好理解的字符串信息;

<2.将⽇志+时间的格式打平到两个单独的列,再加上周信息,便于分别做⽇期和⼩时级别的分析;

<3.过滤掉不必要的字段。并将数据存⼊新表user_log,表格式为 Parquet,按⽇期分区。

后续我们会基于新表做⽤户⾏为分析。

SQL查询目前仅支持单条语句,请逐条执行

- 数据转换 耗时约40秒 -- 创建新表user_log,parquet格式,按⽇期分区
-- 导⼊数据,拆分⽇期和⼩时,并将behavoior转换成可读性更好的值
-- 1-click; 2-collect; 3-cart; 4-pay
create table
  `dlf_demo`.`user_log` USING PARQUET PARTITIONED BY (date) as
select
  user_id,
  item_id,
  CASE
    WHEN behavior_type = 1 THEN 'click'
    WHEN behavior_type = 2 THEN 'collect'
    WHEN behavior_type = 3 THEN 'cart'
    WHEN behavior_type = 4 THEN 'pay'
  END as behavior,
  item_category,
  time,
  date_format(time, 'yyyy-MM-dd') as date,
  date_format(time, 'H') as hour,
  date_format(time, 'E') as day_of_week
from
  `dlf_demo `.` user `;

-- 查看运⾏后的数据
select
  *
from
  `dlf_demo `.` user_log `
limit
  10;

4.用户行为分析

漏斗分析—— ⾸先,我们基于漏⽃模型,对所有⽤户从点击到加购/收藏到购买的转化情况。

SELECT behavior, COUNT(*) AS total FROM `dlf_demo ` . ` user_log ` GROUP BY behavior ORDER BY total DESC

 然后我们⼀周内每天的⽤户⾏为做统计分析

-- ⽤户⾏为分析 耗时 14秒
SELECT
  date,
  day_of_week,
  COUNT(DISTINCT(user_id)) as uv,
  SUM(
    CASE
      WHEN behavior = 'click' THEN 1
      ELSE 0
    END
  ) AS click,
  SUM(
    CASE
      WHEN behavior = 'cart' THEN 1
      ELSE 0
    END
  ) AS cart,
  SUM(
    CASE
      WHEN behavior = 'collect' THEN 1
      ELSE 0
    END
  ) AS collect,
  SUM(
    CASE
      WHEN behavior = 'pay' THEN 1
      ELSE 0
    END
  ) AS pay
FROM
  `dlf_demo `.` user_log `
GROUP BY
  date,
  day_of_week
ORDER BY
  date

 最后,我们结合商品表,分析出数据集中最受欢迎的是个商品品类

-- 销售最多的品类 耗时 1分10秒
SELECT
  item.item_category,
  COUNT(*) AS times
FROM
  `dlf_demo `.`item ` item
  JOIN `dlf_demo `.` user_log ` log ON item.item_id = log.item_id
WHERE
  log.behavior = 'pay'
GROUP BY
  item.item_category
ORDER BY
  times DESC
LIMIT
  10

5.下载分析结果

 DLF提供将分析结果以CSV⽂件的形式下载的功能,启⽤该功能需要提前设置分析结果的保存路径(OSS 路径)。设置后,查询结果会被保存到该路径下。⽤户可以通过DLF⻚⾯上的“下载”按钮直接下载,也可 以直接通过OSS访问和下载该⽂件。 通过点击⻚⾯上的“路径设置”按钮进⾏设置。

 6.保存SQL

 五、数据湖的权限控制

数据湖构建后,如何更好的控制数据的权限,结合数据权限的功能,我们就可以对数据表、数据库、数据列、函数等资源进行权限配置,以满足不同用户访问不同资源的场景。主要授权步骤参考如下:

1.选择授权主体,可以使用RAM用户或角色,或在DLF定义的角色

2.选择授权资源类型,资源实体,以及授权的权限点。

 六、其他管理

数据湖构建为你提供了湖管理相关的能力,主要包括存储概览、生命周期管理、湖格式自动优化策略能力。

  • 存储概览主要包括存储,元数据对象的基本信息,还包括存储趋势、存储归档分布,表格式分布,小文件分布等信息,可以方便您快速了解当前存储资源使用情况及问题,并进行优化

  • 生命周期管理支持多种类型的生命周期管理规则,通过建立不同的规则,您可以方便的管理数据湖内的数据生命周期,以便节约存储成本。本文为您介绍生命周期管理规则的基础操作。

  • 湖格式自动优化策略,可以帮助您自动的优化湖格式(delta、hudi)等格式产出的小文件以及无效针对小文件过多,无效文件过多,大量占用存储资源,浪费成本的情况,提供了湖格式的自动优化策略,帮助客户优化存储空间,提高查询效率。

1.存储概览功能如下图,主要提供存储分析数据,帮助您更好的管理数据湖的存储数据( 数据次日更新,首日开通无数据!)

 2.生命周期管理功能图,主要提供自动规则配置,帮助您自动化的优化存储类型,节省存储成本。

3. 湖格式提供两种自动优化策略,如下图。可以结合您的业务设置合理阈值,超过阈值将对湖格式产生的小文件及无效文件进行清理。

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值