SlideShare a Scribd company logo
1 of 55
Download to read offline
Weblog 分析課程
資料工程(數據池)介紹
徐 凡 耘
2017 – 11 - 30
關 於 我
• Education
– NCU (MIS)
– NCCU (CS)
• Experience
– 大數據平台、分析專案
• Teaching
– III
• Community
– TW Spark User Group
– TW Hadoop User Group
– 台灣資料工程協會理事
Research
III MIC (專欄作家)
AI technology
Big Data & Machine learning
Team
慶騰資訊顧問、聯瞻資訊顧問
課 程 大 綱
• 資料工程
– 數據池(資料治理)
– 資料流
• 資料分析
– 常見的資料分析
• 系統實作
– Docker 安裝與下載實作容器
– 視覺化資料查詢與分析實作
資 料 工 程
• 大數據分析
– 資料科學家、資料分析師
– 資料工程師、資料架構師
• 資料分析
– 得先蒐集各式各樣的資料
– 完成資料整理,才有辦法進行
• 資料工程
– 準備資料分析需要的資料,
透過各種平台技術,進行完
整系統整合性運作
• 台灣資料工程學會推動相
關大數據活動
– https://www.facebook.com/gro
ups/hadoop.tw/
• DataCon.tw
– http://2017.datacon.tw/agenda/
資料工程
資 料 工 程
• 資料介接
– 了解資料庫與資料介接方式
• 資料架構
– 進行資料儲存架構設計
• 資料儲存
– 實作資料儲存
• 資料撈取
– 學習使用結構化查詢語言進行資料的撈取與組合
資 料 工 程
資 料 工 程
資 料 工 程 – 數據池
資 料 工 程 – 資料治理
資 料 工 程 – 資料治理
• Data stewardship
– DBA
– Data Lifecycle => Company’s data governance policies
• Data quality
– Accuracy, completeness and consistency
– data linking tools, as well as version control, workflow
and project management systems help organizations
attain better data quality
• Master data management
– A discipline that establishes a master reference to
ensure consistent use of data across large organizations
– Using Metadata repositories to impose different product
groups or lines of business in the company promote
different views on how to best present data
資 料 工 程 – 資料治理
• Data governance use cases
– Business process management, legacy modernization,
financial and regulatory compliance, credit risk
management, analytics, business intelligence
applications, data warehouses, and data lakes
資 料 工 程 – 資料治理
• Apache Atlas
– 可伸縮和可擴展的核心功
能資料治理服務,企業可
以利用它高效管理
Hadoop 及企業的資料管
理生態所需
• 核心功能
– Data stage、Mart、整合、
查詢、安全、策略引擎
資 料 工 程 – 資料治理
資 料 工 程 – 資料治理
• OLTP: Online Transaction Processing (DBMS)
• OLAP: Online Analytical Processing (Data Warehousing、NoSQL)
• RTAP: (near) Real-Time Analytics Processing (Big Data Architecture & technology)
資 料 工 程 – 傳統、未來
資 料 工 程 – 資料溫度
• 依照用戶使用情境區別
– 總經理即時要看的銷售報表
– 每日銷售報表
– 每月結帳報表
• 依照系統模型建置區別
– 批次模型建置
– (近)即時模型評分
資 料 工 程 – 資料溫度
資 料 工 程 – 串流資料案例
資 料 工 程 – 串流資料案例
延 伸 閱 讀
• 何謂 Elasticsearch 與相關套件 ELK ?
• 請舉例資料溫度的使用情境與相關套件
• 新版的 Hadoop3 支援 Erasure Coding,如何區
分資料溫度 ?
資 料 分 析
資 料 分 析
資 料 分 析
「80% 都在做加總與平均」
• 資料處理 (Data Munging)
– 會點程式技巧不會吃虧 (Linux、SQL、Python)
• 資料分析 (Data Analysis)
– 最好來點線性代數的底 (Python、R、 OpenBLAS )
• 詮釋結果 (Interpret Result)
– 要有說故事的功夫 (Shiny、 Bokeh、Tableau)
http://tylervigen.com/
資 料 分 析
本 課 程 實 作
Weblog
Generator
HDFS MySQL
Hive server
driver
Metastore
File System
Hive JDBC driver Hive Thrift Zeppelin
Source
channel
Sink
前端使用者瀏覽行為
資料寫入
串流接收服務
寫回 Hive 表格
資料查詢
• 開啟 VMware 程式
• New Virtual Machine
– 選擇 Ubuntu 16.04 的 iso 檔
• 記憶體選 8192MB、空間設為 50GB
• 網路設定選擇 NAT
– 打勾 Virtual Intel VT-x/EPT or AMD-V/RVI
本 課 程 實 作
http://ftp.ubuntu-tw.org/mirror/ubuntu-releases/16.04.3/ubuntu-16.04.3-desktop-amd64.iso
本 課 程 實 作
sudo apt-get update
sudo apt-get install -y curl
curl –fsSL https://download.docker.com/linux/ubuntu/gpg |
sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64]
https://download.docker.com/linux/ubuntu $(lsb_release -cs)
stable"
• 安裝 Docker-ce
本 課 程 實 作
• 安裝 Docker-ce
sudo apt-get update
sudo apt-get install -y docker-ce
本 課 程 實 作
https://hub.docker.com/u/orozcohsu/
• 下載 docker container
docker pull orozcohsu/ha-sp-ze-zo-hi-fl:v7
本 課 程 實 作
本 課 程 實 作
• 啟動 container
docker run -h master -it --rm --name iii 
-e "NODE_TYPE=master" 
-e "AUTHORIZED_SSH_PUBLIC_KEY=$(cat ~/.ssh/id_rsa.pub)" 
-v /tmp/docker-cluster-hadoop-name/:/data/dfs/name/ 
-v /tmp/docker-cluster-hadoop-data/:/data/dfs/data/ 
-v /tmp/docker-cluster-hadoop-logs/:/usr/local/hadoop/logs/ 
-v /tmp/docker-cluster-zookeeper-logs/:/var/log/zookeeper/ 
-v /tmp/docker-cluster-zeppelin-logs/:/usr/local/zeppelin/log 
-p 8088:8088 -p 50070:50070 -p 9000:9000 -p 2222:22 -p 8080:8080 
-p 18080:18080 -p 10000:10000 -p 10002:10002 -p 9083:9083 -p 3306:3306 
orozcohsu/ha-sp-ze-zo-hi-fl:v7
本 課 程 實 作
• 檢查 container 是否啟動
docker ps -a
ad5b10740147 orozcohsu/ha-sp-ze-zo-hi-fl:v7 "startup.sh" 5 minutes ago
Up 5 minutes 5566/tcp, 8030-8033/tcp, 8040/tcp, 0.0.0.0:8080->8080/tcp,
0.0.0.0:8088->8088/tcp, 0.0.0.0:9000->9000/tcp, 0.0.0.0:9083->9083/tcp,
0.0.0.0:10000->10000/tcp, 0.0.0.0:10002->10002/tcp, 0.0.0.0:18080->18080/tcp,
8042/tcp, 0.0.0.0:50070->50070/tcp, 0.0.0.0:2222->22/tcp, 0.0.0.0:3307-
>3306/tcp iii
本 系 統 實 作
• 進入 container
• 查看服務
docker exec -it ad5b10740147 /bin/bash
jps -m
本 系 統 實 作
• 將 weblog-map.csv 資料匯入 hive 表格
cat /tmp/weblog-map.csv | hadoop fs -put - /data/weblog-map.csv
beeline -u jdbc:hive2://master:10000
CREATE TABLE WEBLOGMAP (BRAND STRING,
TELEPHONE STRING,
SALES STRING,
QTY INT)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
STORED AS TEXTFILE ;
LOAD DATA INPATH '/data/weblog-map.csv' OVERWRITE INTO TABLE WEBLOGMAP;
本 課 程 實 作
• 檢視 hive weblog 與 weblogmap 表格
show tables;
select * from weblogmap;
!q
本 課 程 實 作
• 檢視 log-weblog.log 亂數產生結果
cat /tmp/log-weblog.log
2017-11-22 14:10:02,www.pchome.com.tw/mobile.php?page=nokia,xAaBbCcDd
本 課 程 實 作 - Flume
本 課 程 實 作 - Flume
本 課 程 實 作 - Flume
• 檢視 weblog flume 設定檔
vim /usr/local/flume/conf/agent.properties.weblog
agent1.sources.source1.type = netcat
agent1.sources.source1.bind = 127.0.0.1
agent1.sources.source1.port = 5566
agent1.sources.source1.interceptors = i1
agent1.sources.source1.interceptors.i1.type = timestamp
agent1.sources.source1.interceptors.i1.preserveExisting = true
agent1.sources.source1.channels = channel1
本 課 程 實 作
agent1.sinks.sink1.type = hive
agent1.sinks.sink1.channel = channel1
agent1.sinks.sink1.hive.metastore = thrift://127.0.0.1:9083
agent1.sinks.sink1.hive.database = default
agent1.sinks.sink1.hive.table = weblog
agent1.sinks.sink1.useLocalTimeStamp = false
agent1.sinks.sink1.round = true
agent1.sinks.sink1.roundValue = 10
agent1.sinks.sink1.roundUnit = minute
agent1.sinks.sink1.serializer = DELIMITED
agent1.sinks.sink1.serializer.delimiter = ","
agent1.sinks.sink1.serializer.serdeSeparator = ','
agent1.sinks.sink1.serializer.fieldnames = dt,url,uuid
agent1.channels.channel1.type = FILE
agent1.channels.channel1.transactionCapacity = 1000000
agent1.channels.channel1.checkpointInterval = 30000
agent1.channels.channel1.maxFileSize = 2146435071
agent1.channels.channel1.capacity = 10000000
本 課 程 實 作
• 手動執行 flume 串流程式
$FLUME_HOME/bin/flume-ng agent -conf-file
$FLUME_CONF_DIR/agent.properties.weblog -name agent1 --classpath
"/usr/local/hive/hcatalog/share/hcatalog/*":"/usr/local/hive/lib/*" &
本 課 程 實 作
• 灌入測試假資料
• 手動停止灌入程式
python /tmp/log-weblog.py | netcat localhost 5566
Ctrl + C
視覺化資料查詢與分析實作
• Toad Query
• Data explorer
– https://github.com/PatMartin/Dex
• Jupyter
• Drill explorer
• Zeppelin
視覺化資料查詢與分析實作
• 開啟網頁 (請查看本機 IP 位置,Port: 18080 )
視覺化資料查詢與分析實作
• 點選右上方 Interpreter
• 輸入 jdbc 關鍵字,進行相關設定
視覺化資料查詢與分析實作
視覺化資料查詢與分析實作
視覺化資料查詢與分析實作
• Interpreter 需要點時間下載相關檔案
• 找出對手機廠牌有高度興趣的用戶
%jdbc(hive)
SELECT URL, UUID, COUNT(*) AS CNT
FROM WEBLOG
GROUP BY URL, UUID ORDER BY CNT DESC
視覺化資料查詢與分析實作
• 熱門手機瀏覽排行榜
%jdbc(hive)
SELECT URL, COUNT(*) AS CNT
FROM WEBLOG
GROUP BY URL;
視覺化資料查詢與分析實作
• 關注熱門商品的庫存量
%jdbc(hive)
SELECT MOB,C.QTY, CNT, C.SALES,C.TELEPHONE
FROM (
SELECT PARSE_URL(URL,'QUERY','page') AS MOB, CNT FROM (
SELECT URL, COUNT(*) CNT
FROM WEBLOG
GROUP BY URL
ORDER BY CNT DESC
)A LIMIT 5
)B
LEFT JOIN (
SELECT * FROM WEBLOGMAP
)C ON B.MOB=C.BRAND
ORDER BY QTY DESC;
視覺化資料查詢與分析實作
• 將資料結果寫回 hive 表格
%jdbc(hive)
CREATE TABLE RESULT AS
SELECT MOB,C.QTY, CNT, C.SALES,C.TELEPHONE
FROM (
SELECT PARSE_URL(URL,'QUERY','page') AS MOB, CNT FROM (
SELECT URL, COUNT(*) CNT
FROM WEBLOG
GROUP BY URL
ORDER BY CNT DESC
)A LIMIT 5
)B
LEFT JOIN (
SELECT * FROM WEBLOGMAP
)C ON B.MOB=C.BRAND;
延 伸 閱 讀
• 想想這些與大數據的關係?
– 當你跑步時,你的手機馬上讀出你想聽什麼歌,立即挑
出與你腳步最「合拍」的音樂,還可以計算你的心跳
– 如何訂價?一瓶水,手機螢幕馬上跳出數10萬個行銷點
的訂價。哪家最便宜,要不要馬上調價,一目了然,還
告訴你哪裡賣出幾瓶、哪裡有特殊節慶需要大量進貨
– 旋轉盤上少了一盤蔥鮪,30 秒內師傅就會補上一盤;今
天雨下那麼大,客人少3成,備料馬上可以決定少3成
– 租房照片怎樣拍,下訂率比別人多5成?大數據算出訂房
的排名,一看照片果真有黃金角度
參 考
• https://www.managertoday.com.tw/articles/view/52306
• http://101.datascience.community/2014/07/08/data-scientist-vs-data-
engineer/
• http://helicaltech.com/blogs/tag/jasper/page/2/
• https://www.slideshare.net/aprabhakar/data-aggregation-at-scale-using-
apache-flume
• https://blog.v-comply.com/data-governance-structure/
• http://searchdatamanagement.techtarget.com/definition/data-governance
• https://www.javacodegeeks.com/wp-content/uploads/2014/05/elasticsearch-
hadoop-hive.png
• https://www.slideshare.net/BigdataMeetupKochi/hadoop-enhancements-
using-next-gen-ia-technologies-70126797
• https://blogs.technet.microsoft.com/dynamics_taiwan/2014/11/06/39/
• https://www.slideshare.net/AmazonWebServices/aws-apac-webinar-week-
launching-your-first-big-data-project-on-aws
• https://www.informatica.com/products/data-integration/real-time-
integration/vibe-data-stream.html#fbid=YyqoXTtkUfW

More Related Content

Similar to 線上埋碼資料收集實作

Qcon2013 罗李 - hadoop在阿里
Qcon2013 罗李 - hadoop在阿里Qcon2013 罗李 - hadoop在阿里
Qcon2013 罗李 - hadoop在阿里li luo
 
Log collection
Log collectionLog collection
Log collectionFEG
 
分布式流数据实时计算平台 Iprocess
分布式流数据实时计算平台 Iprocess分布式流数据实时计算平台 Iprocess
分布式流数据实时计算平台 Iprocessbabel_qi
 
Html5和css3入门
Html5和css3入门Html5和css3入门
Html5和css3入门Xiujun Ma
 
纵览Loadrunner核心功能
纵览Loadrunner核心功能纵览Loadrunner核心功能
纵览Loadrunner核心功能beiyu95
 
Build 1 trillion warehouse based on carbon data
Build 1 trillion warehouse based on carbon dataBuild 1 trillion warehouse based on carbon data
Build 1 trillion warehouse based on carbon databoxu42
 
Data Analyse Black Horse - ClickHouse
Data Analyse Black Horse - ClickHouseData Analyse Black Horse - ClickHouse
Data Analyse Black Horse - ClickHouseJack Gao
 
The Construction and Practice of Apache Pegasus in Offline and Online Scenari...
The Construction and Practice of Apache Pegasus in Offline and Online Scenari...The Construction and Practice of Apache Pegasus in Offline and Online Scenari...
The Construction and Practice of Apache Pegasus in Offline and Online Scenari...acelyc1112009
 
Hacking Nginx at Taobao
Hacking Nginx at TaobaoHacking Nginx at Taobao
Hacking Nginx at TaobaoJoshua Zhu
 
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰Scourgen Hong
 
基于Spring batch的大数据量并行处理
基于Spring batch的大数据量并行处理基于Spring batch的大数据量并行处理
基于Spring batch的大数据量并行处理Jacky Chi
 
Track A-3 Enterprise Data Lake in Action - 搭建「活」的企業 Big Data 生態架構
Track A-3 Enterprise Data Lake in Action - 搭建「活」的企業 Big Data 生態架構Track A-3 Enterprise Data Lake in Action - 搭建「活」的企業 Big Data 生態架構
Track A-3 Enterprise Data Lake in Action - 搭建「活」的企業 Big Data 生態架構Etu Solution
 
用Python实现hadoop任务调度管理
用Python实现hadoop任务调度管理用Python实现hadoop任务调度管理
用Python实现hadoop任务调度管理Leo Zhou
 
淘宝双11双12案例分享
淘宝双11双12案例分享淘宝双11双12案例分享
淘宝双11双12案例分享vanadies10
 
开源+自主开发 - 淘宝软件基础设施构建实践
开源+自主开发  - 淘宝软件基础设施构建实践开源+自主开发  - 淘宝软件基础设施构建实践
开源+自主开发 - 淘宝软件基础设施构建实践Wensong Zhang
 
Taobao图片存储与cdn系统到服务
Taobao图片存储与cdn系统到服务Taobao图片存储与cdn系统到服务
Taobao图片存储与cdn系统到服务Wensong Zhang
 
淘宝对象存储与Cdn系统到服务
淘宝对象存储与Cdn系统到服务淘宝对象存储与Cdn系统到服务
淘宝对象存储与Cdn系统到服务drewz lin
 

Similar to 線上埋碼資料收集實作 (20)

Qcon2013 罗李 - hadoop在阿里
Qcon2013 罗李 - hadoop在阿里Qcon2013 罗李 - hadoop在阿里
Qcon2013 罗李 - hadoop在阿里
 
Hadoop ecosystem
Hadoop ecosystemHadoop ecosystem
Hadoop ecosystem
 
Log collection
Log collectionLog collection
Log collection
 
分布式流数据实时计算平台 Iprocess
分布式流数据实时计算平台 Iprocess分布式流数据实时计算平台 Iprocess
分布式流数据实时计算平台 Iprocess
 
Html5和css3入门
Html5和css3入门Html5和css3入门
Html5和css3入门
 
纵览Loadrunner核心功能
纵览Loadrunner核心功能纵览Loadrunner核心功能
纵览Loadrunner核心功能
 
Build 1 trillion warehouse based on carbon data
Build 1 trillion warehouse based on carbon dataBuild 1 trillion warehouse based on carbon data
Build 1 trillion warehouse based on carbon data
 
Data Analyse Black Horse - ClickHouse
Data Analyse Black Horse - ClickHouseData Analyse Black Horse - ClickHouse
Data Analyse Black Horse - ClickHouse
 
The Construction and Practice of Apache Pegasus in Offline and Online Scenari...
The Construction and Practice of Apache Pegasus in Offline and Online Scenari...The Construction and Practice of Apache Pegasus in Offline and Online Scenari...
The Construction and Practice of Apache Pegasus in Offline and Online Scenari...
 
Hacking Nginx at Taobao
Hacking Nginx at TaobaoHacking Nginx at Taobao
Hacking Nginx at Taobao
 
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
 
基于Spring batch的大数据量并行处理
基于Spring batch的大数据量并行处理基于Spring batch的大数据量并行处理
基于Spring batch的大数据量并行处理
 
Track A-3 Enterprise Data Lake in Action - 搭建「活」的企業 Big Data 生態架構
Track A-3 Enterprise Data Lake in Action - 搭建「活」的企業 Big Data 生態架構Track A-3 Enterprise Data Lake in Action - 搭建「活」的企業 Big Data 生態架構
Track A-3 Enterprise Data Lake in Action - 搭建「活」的企業 Big Data 生態架構
 
Why use MySQL
Why use MySQLWhy use MySQL
Why use MySQL
 
用Python实现hadoop任务调度管理
用Python实现hadoop任务调度管理用Python实现hadoop任务调度管理
用Python实现hadoop任务调度管理
 
淘宝双11双12案例分享
淘宝双11双12案例分享淘宝双11双12案例分享
淘宝双11双12案例分享
 
开源+自主开发 - 淘宝软件基础设施构建实践
开源+自主开发  - 淘宝软件基础设施构建实践开源+自主开发  - 淘宝软件基础设施构建实践
开源+自主开发 - 淘宝软件基础设施构建实践
 
Tachyon 2015 08 China
Tachyon 2015 08 ChinaTachyon 2015 08 China
Tachyon 2015 08 China
 
Taobao图片存储与cdn系统到服务
Taobao图片存储与cdn系统到服务Taobao图片存储与cdn系统到服务
Taobao图片存储与cdn系统到服务
 
淘宝对象存储与Cdn系统到服务
淘宝对象存储与Cdn系统到服务淘宝对象存储与Cdn系统到服务
淘宝对象存储与Cdn系统到服务
 

More from FEG

Pytorch cnn netowork introduction 20240318
Pytorch cnn netowork introduction 20240318Pytorch cnn netowork introduction 20240318
Pytorch cnn netowork introduction 20240318FEG
 
2023 Decision Tree analysis in business practices
2023 Decision Tree analysis in business practices2023 Decision Tree analysis in business practices
2023 Decision Tree analysis in business practicesFEG
 
2023 Clustering analysis using Python from scratch
2023 Clustering analysis using Python from scratch2023 Clustering analysis using Python from scratch
2023 Clustering analysis using Python from scratchFEG
 
2023 Data visualization using Python from scratch
2023 Data visualization using Python from scratch2023 Data visualization using Python from scratch
2023 Data visualization using Python from scratchFEG
 
2023 Supervised Learning for Orange3 from scratch
2023 Supervised Learning for Orange3 from scratch2023 Supervised Learning for Orange3 from scratch
2023 Supervised Learning for Orange3 from scratchFEG
 
2023 Supervised_Learning_Association_Rules
2023 Supervised_Learning_Association_Rules2023 Supervised_Learning_Association_Rules
2023 Supervised_Learning_Association_RulesFEG
 
202312 Exploration Data Analysis Visualization (English version)
202312 Exploration Data Analysis Visualization (English version)202312 Exploration Data Analysis Visualization (English version)
202312 Exploration Data Analysis Visualization (English version)FEG
 
202312 Exploration of Data Analysis Visualization
202312 Exploration of Data Analysis Visualization202312 Exploration of Data Analysis Visualization
202312 Exploration of Data Analysis VisualizationFEG
 
Transfer Learning (20230516)
Transfer Learning (20230516)Transfer Learning (20230516)
Transfer Learning (20230516)FEG
 
Image Classification (20230411)
Image Classification (20230411)Image Classification (20230411)
Image Classification (20230411)FEG
 
Google CoLab (20230321)
Google CoLab (20230321)Google CoLab (20230321)
Google CoLab (20230321)FEG
 
Supervised Learning
Supervised LearningSupervised Learning
Supervised LearningFEG
 
UnSupervised Learning Clustering
UnSupervised Learning ClusteringUnSupervised Learning Clustering
UnSupervised Learning ClusteringFEG
 
Data Visualization in Excel
Data Visualization in ExcelData Visualization in Excel
Data Visualization in ExcelFEG
 
6_Association_rule_碩士班第六次.pdf
6_Association_rule_碩士班第六次.pdf6_Association_rule_碩士班第六次.pdf
6_Association_rule_碩士班第六次.pdfFEG
 
5_Neural_network_碩士班第五次.pdf
5_Neural_network_碩士班第五次.pdf5_Neural_network_碩士班第五次.pdf
5_Neural_network_碩士班第五次.pdfFEG
 
4_Regression_analysis.pdf
4_Regression_analysis.pdf4_Regression_analysis.pdf
4_Regression_analysis.pdfFEG
 
3_Decision_tree.pdf
3_Decision_tree.pdf3_Decision_tree.pdf
3_Decision_tree.pdfFEG
 
2_Clustering.pdf
2_Clustering.pdf2_Clustering.pdf
2_Clustering.pdfFEG
 
1_大二班_資料視覺化_20221028.pdf
1_大二班_資料視覺化_20221028.pdf1_大二班_資料視覺化_20221028.pdf
1_大二班_資料視覺化_20221028.pdfFEG
 

More from FEG (20)

Pytorch cnn netowork introduction 20240318
Pytorch cnn netowork introduction 20240318Pytorch cnn netowork introduction 20240318
Pytorch cnn netowork introduction 20240318
 
2023 Decision Tree analysis in business practices
2023 Decision Tree analysis in business practices2023 Decision Tree analysis in business practices
2023 Decision Tree analysis in business practices
 
2023 Clustering analysis using Python from scratch
2023 Clustering analysis using Python from scratch2023 Clustering analysis using Python from scratch
2023 Clustering analysis using Python from scratch
 
2023 Data visualization using Python from scratch
2023 Data visualization using Python from scratch2023 Data visualization using Python from scratch
2023 Data visualization using Python from scratch
 
2023 Supervised Learning for Orange3 from scratch
2023 Supervised Learning for Orange3 from scratch2023 Supervised Learning for Orange3 from scratch
2023 Supervised Learning for Orange3 from scratch
 
2023 Supervised_Learning_Association_Rules
2023 Supervised_Learning_Association_Rules2023 Supervised_Learning_Association_Rules
2023 Supervised_Learning_Association_Rules
 
202312 Exploration Data Analysis Visualization (English version)
202312 Exploration Data Analysis Visualization (English version)202312 Exploration Data Analysis Visualization (English version)
202312 Exploration Data Analysis Visualization (English version)
 
202312 Exploration of Data Analysis Visualization
202312 Exploration of Data Analysis Visualization202312 Exploration of Data Analysis Visualization
202312 Exploration of Data Analysis Visualization
 
Transfer Learning (20230516)
Transfer Learning (20230516)Transfer Learning (20230516)
Transfer Learning (20230516)
 
Image Classification (20230411)
Image Classification (20230411)Image Classification (20230411)
Image Classification (20230411)
 
Google CoLab (20230321)
Google CoLab (20230321)Google CoLab (20230321)
Google CoLab (20230321)
 
Supervised Learning
Supervised LearningSupervised Learning
Supervised Learning
 
UnSupervised Learning Clustering
UnSupervised Learning ClusteringUnSupervised Learning Clustering
UnSupervised Learning Clustering
 
Data Visualization in Excel
Data Visualization in ExcelData Visualization in Excel
Data Visualization in Excel
 
6_Association_rule_碩士班第六次.pdf
6_Association_rule_碩士班第六次.pdf6_Association_rule_碩士班第六次.pdf
6_Association_rule_碩士班第六次.pdf
 
5_Neural_network_碩士班第五次.pdf
5_Neural_network_碩士班第五次.pdf5_Neural_network_碩士班第五次.pdf
5_Neural_network_碩士班第五次.pdf
 
4_Regression_analysis.pdf
4_Regression_analysis.pdf4_Regression_analysis.pdf
4_Regression_analysis.pdf
 
3_Decision_tree.pdf
3_Decision_tree.pdf3_Decision_tree.pdf
3_Decision_tree.pdf
 
2_Clustering.pdf
2_Clustering.pdf2_Clustering.pdf
2_Clustering.pdf
 
1_大二班_資料視覺化_20221028.pdf
1_大二班_資料視覺化_20221028.pdf1_大二班_資料視覺化_20221028.pdf
1_大二班_資料視覺化_20221028.pdf
 

線上埋碼資料收集實作

  • 2. 關 於 我 • Education – NCU (MIS) – NCCU (CS) • Experience – 大數據平台、分析專案 • Teaching – III • Community – TW Spark User Group – TW Hadoop User Group – 台灣資料工程協會理事 Research III MIC (專欄作家) AI technology Big Data & Machine learning Team 慶騰資訊顧問、聯瞻資訊顧問
  • 3. 課 程 大 綱 • 資料工程 – 數據池(資料治理) – 資料流 • 資料分析 – 常見的資料分析 • 系統實作 – Docker 安裝與下載實作容器 – 視覺化資料查詢與分析實作
  • 4. 資 料 工 程 • 大數據分析 – 資料科學家、資料分析師 – 資料工程師、資料架構師 • 資料分析 – 得先蒐集各式各樣的資料 – 完成資料整理,才有辦法進行 • 資料工程 – 準備資料分析需要的資料, 透過各種平台技術,進行完 整系統整合性運作 • 台灣資料工程學會推動相 關大數據活動 – https://www.facebook.com/gro ups/hadoop.tw/ • DataCon.tw – http://2017.datacon.tw/agenda/
  • 5.
  • 7. 資 料 工 程 • 資料介接 – 了解資料庫與資料介接方式 • 資料架構 – 進行資料儲存架構設計 • 資料儲存 – 實作資料儲存 • 資料撈取 – 學習使用結構化查詢語言進行資料的撈取與組合
  • 10. 資 料 工 程 – 數據池
  • 11. 資 料 工 程 – 資料治理
  • 12. 資 料 工 程 – 資料治理 • Data stewardship – DBA – Data Lifecycle => Company’s data governance policies • Data quality – Accuracy, completeness and consistency – data linking tools, as well as version control, workflow and project management systems help organizations attain better data quality
  • 13. • Master data management – A discipline that establishes a master reference to ensure consistent use of data across large organizations – Using Metadata repositories to impose different product groups or lines of business in the company promote different views on how to best present data 資 料 工 程 – 資料治理
  • 14. • Data governance use cases – Business process management, legacy modernization, financial and regulatory compliance, credit risk management, analytics, business intelligence applications, data warehouses, and data lakes 資 料 工 程 – 資料治理
  • 15. • Apache Atlas – 可伸縮和可擴展的核心功 能資料治理服務,企業可 以利用它高效管理 Hadoop 及企業的資料管 理生態所需 • 核心功能 – Data stage、Mart、整合、 查詢、安全、策略引擎 資 料 工 程 – 資料治理
  • 16. 資 料 工 程 – 資料治理
  • 17. • OLTP: Online Transaction Processing (DBMS) • OLAP: Online Analytical Processing (Data Warehousing、NoSQL) • RTAP: (near) Real-Time Analytics Processing (Big Data Architecture & technology) 資 料 工 程 – 傳統、未來
  • 18. 資 料 工 程 – 資料溫度 • 依照用戶使用情境區別 – 總經理即時要看的銷售報表 – 每日銷售報表 – 每月結帳報表 • 依照系統模型建置區別 – 批次模型建置 – (近)即時模型評分
  • 19. 資 料 工 程 – 資料溫度
  • 20. 資 料 工 程 – 串流資料案例
  • 21. 資 料 工 程 – 串流資料案例
  • 22. 延 伸 閱 讀 • 何謂 Elasticsearch 與相關套件 ELK ? • 請舉例資料溫度的使用情境與相關套件 • 新版的 Hadoop3 支援 Erasure Coding,如何區 分資料溫度 ?
  • 23. 資 料 分
  • 24. 資 料 分
  • 25. 資 料 分 析 「80% 都在做加總與平均」 • 資料處理 (Data Munging) – 會點程式技巧不會吃虧 (Linux、SQL、Python) • 資料分析 (Data Analysis) – 最好來點線性代數的底 (Python、R、 OpenBLAS ) • 詮釋結果 (Interpret Result) – 要有說故事的功夫 (Shiny、 Bokeh、Tableau)
  • 27. 本 課 程 實 作 Weblog Generator HDFS MySQL Hive server driver Metastore File System Hive JDBC driver Hive Thrift Zeppelin Source channel Sink 前端使用者瀏覽行為 資料寫入 串流接收服務 寫回 Hive 表格 資料查詢
  • 28. • 開啟 VMware 程式 • New Virtual Machine – 選擇 Ubuntu 16.04 的 iso 檔 • 記憶體選 8192MB、空間設為 50GB • 網路設定選擇 NAT – 打勾 Virtual Intel VT-x/EPT or AMD-V/RVI 本 課 程 實 作
  • 30. sudo apt-get update sudo apt-get install -y curl curl –fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" • 安裝 Docker-ce 本 課 程 實 作
  • 31. • 安裝 Docker-ce sudo apt-get update sudo apt-get install -y docker-ce 本 課 程 實 作
  • 32. https://hub.docker.com/u/orozcohsu/ • 下載 docker container docker pull orozcohsu/ha-sp-ze-zo-hi-fl:v7 本 課 程 實 作
  • 33. 本 課 程 實 作 • 啟動 container docker run -h master -it --rm --name iii -e "NODE_TYPE=master" -e "AUTHORIZED_SSH_PUBLIC_KEY=$(cat ~/.ssh/id_rsa.pub)" -v /tmp/docker-cluster-hadoop-name/:/data/dfs/name/ -v /tmp/docker-cluster-hadoop-data/:/data/dfs/data/ -v /tmp/docker-cluster-hadoop-logs/:/usr/local/hadoop/logs/ -v /tmp/docker-cluster-zookeeper-logs/:/var/log/zookeeper/ -v /tmp/docker-cluster-zeppelin-logs/:/usr/local/zeppelin/log -p 8088:8088 -p 50070:50070 -p 9000:9000 -p 2222:22 -p 8080:8080 -p 18080:18080 -p 10000:10000 -p 10002:10002 -p 9083:9083 -p 3306:3306 orozcohsu/ha-sp-ze-zo-hi-fl:v7
  • 34. 本 課 程 實 作 • 檢查 container 是否啟動 docker ps -a ad5b10740147 orozcohsu/ha-sp-ze-zo-hi-fl:v7 "startup.sh" 5 minutes ago Up 5 minutes 5566/tcp, 8030-8033/tcp, 8040/tcp, 0.0.0.0:8080->8080/tcp, 0.0.0.0:8088->8088/tcp, 0.0.0.0:9000->9000/tcp, 0.0.0.0:9083->9083/tcp, 0.0.0.0:10000->10000/tcp, 0.0.0.0:10002->10002/tcp, 0.0.0.0:18080->18080/tcp, 8042/tcp, 0.0.0.0:50070->50070/tcp, 0.0.0.0:2222->22/tcp, 0.0.0.0:3307- >3306/tcp iii
  • 35. 本 系 統 實 作 • 進入 container • 查看服務 docker exec -it ad5b10740147 /bin/bash jps -m
  • 36. 本 系 統 實 作 • 將 weblog-map.csv 資料匯入 hive 表格 cat /tmp/weblog-map.csv | hadoop fs -put - /data/weblog-map.csv beeline -u jdbc:hive2://master:10000 CREATE TABLE WEBLOGMAP (BRAND STRING, TELEPHONE STRING, SALES STRING, QTY INT) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' STORED AS TEXTFILE ; LOAD DATA INPATH '/data/weblog-map.csv' OVERWRITE INTO TABLE WEBLOGMAP;
  • 37. 本 課 程 實 作 • 檢視 hive weblog 與 weblogmap 表格 show tables; select * from weblogmap; !q
  • 38. 本 課 程 實 作 • 檢視 log-weblog.log 亂數產生結果 cat /tmp/log-weblog.log 2017-11-22 14:10:02,www.pchome.com.tw/mobile.php?page=nokia,xAaBbCcDd
  • 39. 本 課 程 實 作 - Flume
  • 40. 本 課 程 實 作 - Flume
  • 41. 本 課 程 實 作 - Flume • 檢視 weblog flume 設定檔 vim /usr/local/flume/conf/agent.properties.weblog agent1.sources.source1.type = netcat agent1.sources.source1.bind = 127.0.0.1 agent1.sources.source1.port = 5566 agent1.sources.source1.interceptors = i1 agent1.sources.source1.interceptors.i1.type = timestamp agent1.sources.source1.interceptors.i1.preserveExisting = true agent1.sources.source1.channels = channel1
  • 42. 本 課 程 實 作 agent1.sinks.sink1.type = hive agent1.sinks.sink1.channel = channel1 agent1.sinks.sink1.hive.metastore = thrift://127.0.0.1:9083 agent1.sinks.sink1.hive.database = default agent1.sinks.sink1.hive.table = weblog agent1.sinks.sink1.useLocalTimeStamp = false agent1.sinks.sink1.round = true agent1.sinks.sink1.roundValue = 10 agent1.sinks.sink1.roundUnit = minute agent1.sinks.sink1.serializer = DELIMITED agent1.sinks.sink1.serializer.delimiter = "," agent1.sinks.sink1.serializer.serdeSeparator = ',' agent1.sinks.sink1.serializer.fieldnames = dt,url,uuid agent1.channels.channel1.type = FILE agent1.channels.channel1.transactionCapacity = 1000000 agent1.channels.channel1.checkpointInterval = 30000 agent1.channels.channel1.maxFileSize = 2146435071 agent1.channels.channel1.capacity = 10000000
  • 43. 本 課 程 實 作 • 手動執行 flume 串流程式 $FLUME_HOME/bin/flume-ng agent -conf-file $FLUME_CONF_DIR/agent.properties.weblog -name agent1 --classpath "/usr/local/hive/hcatalog/share/hcatalog/*":"/usr/local/hive/lib/*" &
  • 44. 本 課 程 實 作 • 灌入測試假資料 • 手動停止灌入程式 python /tmp/log-weblog.py | netcat localhost 5566 Ctrl + C
  • 45. 視覺化資料查詢與分析實作 • Toad Query • Data explorer – https://github.com/PatMartin/Dex • Jupyter • Drill explorer • Zeppelin
  • 50. 視覺化資料查詢與分析實作 • Interpreter 需要點時間下載相關檔案 • 找出對手機廠牌有高度興趣的用戶 %jdbc(hive) SELECT URL, UUID, COUNT(*) AS CNT FROM WEBLOG GROUP BY URL, UUID ORDER BY CNT DESC
  • 52. 視覺化資料查詢與分析實作 • 關注熱門商品的庫存量 %jdbc(hive) SELECT MOB,C.QTY, CNT, C.SALES,C.TELEPHONE FROM ( SELECT PARSE_URL(URL,'QUERY','page') AS MOB, CNT FROM ( SELECT URL, COUNT(*) CNT FROM WEBLOG GROUP BY URL ORDER BY CNT DESC )A LIMIT 5 )B LEFT JOIN ( SELECT * FROM WEBLOGMAP )C ON B.MOB=C.BRAND ORDER BY QTY DESC;
  • 53. 視覺化資料查詢與分析實作 • 將資料結果寫回 hive 表格 %jdbc(hive) CREATE TABLE RESULT AS SELECT MOB,C.QTY, CNT, C.SALES,C.TELEPHONE FROM ( SELECT PARSE_URL(URL,'QUERY','page') AS MOB, CNT FROM ( SELECT URL, COUNT(*) CNT FROM WEBLOG GROUP BY URL ORDER BY CNT DESC )A LIMIT 5 )B LEFT JOIN ( SELECT * FROM WEBLOGMAP )C ON B.MOB=C.BRAND;
  • 54. 延 伸 閱 讀 • 想想這些與大數據的關係? – 當你跑步時,你的手機馬上讀出你想聽什麼歌,立即挑 出與你腳步最「合拍」的音樂,還可以計算你的心跳 – 如何訂價?一瓶水,手機螢幕馬上跳出數10萬個行銷點 的訂價。哪家最便宜,要不要馬上調價,一目了然,還 告訴你哪裡賣出幾瓶、哪裡有特殊節慶需要大量進貨 – 旋轉盤上少了一盤蔥鮪,30 秒內師傅就會補上一盤;今 天雨下那麼大,客人少3成,備料馬上可以決定少3成 – 租房照片怎樣拍,下訂率比別人多5成?大數據算出訂房 的排名,一看照片果真有黃金角度
  • 55. 參 考 • https://www.managertoday.com.tw/articles/view/52306 • http://101.datascience.community/2014/07/08/data-scientist-vs-data- engineer/ • http://helicaltech.com/blogs/tag/jasper/page/2/ • https://www.slideshare.net/aprabhakar/data-aggregation-at-scale-using- apache-flume • https://blog.v-comply.com/data-governance-structure/ • http://searchdatamanagement.techtarget.com/definition/data-governance • https://www.javacodegeeks.com/wp-content/uploads/2014/05/elasticsearch- hadoop-hive.png • https://www.slideshare.net/BigdataMeetupKochi/hadoop-enhancements- using-next-gen-ia-technologies-70126797 • https://blogs.technet.microsoft.com/dynamics_taiwan/2014/11/06/39/ • https://www.slideshare.net/AmazonWebServices/aws-apac-webinar-week- launching-your-first-big-data-project-on-aws • https://www.informatica.com/products/data-integration/real-time- integration/vibe-data-stream.html#fbid=YyqoXTtkUfW