网站流量日志分析--数据导出--定时增量数据导出详解 | 学习笔记

简介: 快速学习网站流量日志分析--数据导出--定时增量数据导出详解

开发者学堂课程【大数据分析之企业级网站流量运营分析系统开发实战(第五阶段):网站流量日志分析--数据导出--定时增量数据导出详解】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/697/detail/12248


网站流量日志分析--数据导出--定时增量数据导出详解

内容介绍:

一、定时增量导出数据到 mysql

二、演示操作

 

一、定时增量导出数据到 mysql

应用场景:

将 Hive 表中的增量记录自动定时同步到目标表中。

使用技术:

使用 sqoopexport 中 --update-mode 的 allowinsert 模式进行增量数据导入目标表中。该模式用于将 Hive 中有但目标表中无的记录同步到目标表中,但同时也会同步不一致的记录。"

实现逻辑:

以 dwwebflow basic info 基础信息指标表为例进行增量导出操作。

1. 为了方便演示,手动生成往 hive 中添加 20181104 的数据:

insertintotabledw_webflow_basic_infopartition(datestr="20181104”) values("201811","04”,10137,1129,1129,103);

若仍根据增量导出的代码进行运用,则会发现时间是写死的,需要进行动态传参。

2. 编写 linux shell 脚本执行 sqoop 导出

(1)导出数据的时间最好不要写死,可以通过传参或命令的方式自动获取时间。

(2)参数属性值不要写死,集中定义变量后续引用,方便集中管理。

#!/bin/bash

export SQOOP_HOME=/export/servers/sgoop

if[$# -eq1] ( $# 代表传入脚本的个数)

then

execute date=date--date="${1}"+8Y8md  (做出判断,以得出具体执行日期;``反引号,英文状态下tab键上方代表立刻执行)

else

execute date= date-d'-1day+Yim8d

fi

echo "execute date:"slexecute date

table name="dw webflow basic info"

hdfs

dir=/user/hive/warehouse/itheima.db/dwwebflow

basic

info/datestr=slexecute date  (表的名字)

mysq1 db pwd=hadoop   (存放的目录)

mysql db name=root

echo 'aqoop start

$SQOOP HOME/bin/sqoop export\

--connect"jdbc:mysql://node-1:3306/weblog"\   (需与服务器保持一致)

--username smysql db name\

--password mysql b pwd\

--table stable name

--fields-terminated-by'\001\

--update-keymonthstrdaystr\   (保证了定时增量导出)

--update-mode allowinsert\ (保证了定时增量导出)

--export-dir $hdfs di

echo 'sgoop end'

3. 配合 linux crontab 或者定时调度软件进行周期性调度执行

其中包括 linux crontab、开源 azkaban oozie 等。

* * * * * 分别为:

分、时、日、月、周;002* * *意为凌晨两点二十

image.png


二、演示操作

1. 复制以下代码进行运行:

#!/bin/bash/

if[$# -eq1] ( $# 代表传入脚本的个数)

Then

execute date=date--date="${1}"+8Y8md   (做出判断,以得出具体执行日期;``反引号,英文状态下tab键上方代表立刻执行)

else

execute date= date-d'-1day+Yim8d

fi

Echo$execute date

授予执行权限:

chmod u+x test.sh;输入时间 20110911,则打印的数据即为 20110911 的数据。

即可以指定具体某一天的时间,也可以默认为是前一天的时间;通过对脚本的精确控制,可以取得想要的变量数据,使脚本变得更加灵活,也方便集中修改管理。

2. 复制 shell 脚本并上传,使用 cat sqoop_export.sh 命令进行验证,确保其为正常状态。

执行后并未出现相关的数据,返回查看发现出现 Input path does not exist,即输入路径不存在,所以需要手动写死,把脚本手动上传。输入 20181104,这样就会自动上传当天数据。

相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
相关文章
|
3月前
|
SQL 人工智能 监控
SLS Copilot 实践:基于 SLS 灵活构建 LLM 应用的数据基础设施
本文将分享我们在构建 SLS SQL Copilot 过程中的工程实践,展示如何基于阿里云 SLS 打造一套完整的 LLM 应用数据基础设施。
774 60
|
3月前
|
数据采集 运维 监控
不重启、不重写、不停机:SLS 软删除如何实现真正的“无感数据急救”?
SLS 全新推出的「软删除」功能,以接近索引查询的性能,解决了数据应急删除与脏数据治理的痛点。2 分钟掌握这一数据管理神器。
253 30
|
7月前
|
存储 缓存 Apache
StarRocks+Paimon 落地阿里日志采集:万亿级实时数据秒级查询
本文介绍了阿里集团A+流量分析平台的日志查询优化方案,针对万亿级日志数据的写入与查询挑战,提出基于Flink、Paimon和StarRocks的技术架构。通过Paimon存储日志数据,结合StarRocks高效计算能力,实现秒级查询性能。具体包括分桶表设计、数据缓存优化及文件大小控制等措施,解决高并发、大数据量下的查询效率问题。最终,日志查询耗时从分钟级降至秒级,显著提升业务响应速度,并为未来更低存储成本、更高性能及更多业务场景覆盖奠定基础。
|
4月前
|
存储 缓存 Apache
StarRocks+Paimon 落地阿里日志采集:万亿级实时数据秒级查询
A+流量分析平台是阿里集团统一的全域流量数据分析平台,致力于通过埋点、采集、计算构建流量数据闭环,助力业务提升流量转化。面对万亿级日志数据带来的写入与查询挑战,平台采用Flink+Paimon+StarRocks技术方案,实现高吞吐写入与秒级查询,优化存储成本与扩展性,提升日志分析效率。
553 1
|
8月前
|
SQL 监控 数据挖掘
SLS 重磅升级:超大规模数据实现完全精确分析
SLS 全新推出的「SQL 完全精确」模式,通过“限”与“换”的策略切换,在快速分析与精确计算之间实现平衡,满足用户对于超大数据规模分析结果精确的刚性需求。标志着其在超大规模日志数据分析领域再次迈出了重要的一步。
584 117
|
4月前
|
存储 关系型数据库 数据库
【赵渝强老师】PostgreSQL数据库的WAL日志与数据写入的过程
PostgreSQL中的WAL(预写日志)是保证数据完整性的关键技术。在数据修改前,系统会先将日志写入WAL,确保宕机时可通过日志恢复数据。它减少了磁盘I/O,提升了性能,并支持手动切换日志文件。WAL文件默认存储在pg_wal目录下,采用16进制命名规则。此外,PostgreSQL提供pg_waldump工具解析日志内容。
412 0
|
4月前
|
数据采集 运维 监控
|
6月前
|
存储 NoSQL MongoDB
Docker中安装MongoDB并配置数据、日志、配置文件持久化。
现在,你有了一个运行在Docker中的MongoDB,它拥有自己的小空间,对高楼大厦的崩塌视而不见(会话丢失和数据不持久化的问题)。这个MongoDB的数据、日志、配置文件都会妥妥地保存在你为它精心准备的地方,天旋地转,它也不会失去一丁点儿宝贵的记忆(即使在容器重启后)。
738 4
|
9月前
|
人工智能 运维 监控
一招高效解析 Access Log,轻松应对泼天流量
一招高效解析 Access Log,轻松应对泼天流量
174 0
一招高效解析 Access Log,轻松应对泼天流量