Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Online Event - Bắt Đầu Nghiên Cứu Big Data Từ Đâu Và Như Thế Nào
1. Bắt đầu với Big Data từ đâu và như thế nào?
Hong, Ong Xuan
Research Engineer
08/01/2018
Hong, Ong Xuan (Research Engineer) Bắt đầu với Big Data từ đâu và như thế nào? 08/01/2018 1 / 60
2. Tôi đã làm gì?
Data Engineer/Analyst
Hong, Ong Xuan (Research Engineer) Bắt đầu với Big Data từ đâu và như thế nào? 08/01/2018 2 / 60
3. Bài toán tại Knorex
Xây dựng hệ thống tracking quảng cáo (page view, clicks)
Lưu trữ dữ liệu Big Data (page view: 20GB/day, clicks: 5GB/day)
Aggregate report cho hourly/daily/monthly.
Tích hợp dữ liệu từ 3rd party: Google, Facebook, etc.
Challange: mọi thông tin phải được tổng hợp chỉ trong 1 giờ.
Vấn đề gặp phải: Sử dụng MongoDB để lưu trữ, code python
stand-alone server. Thời gian aggregating: 1-2H (quá chậm). Script hay bị
lỗi, server hay bị quá tải và treo.
Hong, Ong Xuan (Research Engineer) Bắt đầu với Big Data từ đâu và như thế nào? 08/01/2018 3 / 60
4. First try
Tuning python script → 45-1H45, script ít lỗi hơn nhưng server vẫn bị quá
tải (still not good).
Hong, Ong Xuan (Research Engineer) Bắt đầu với Big Data từ đâu và như thế nào? 08/01/2018 4 / 60
5. Second attemp
Dùng Spark đọc dữ liệu từ MongoDB để aggregate dữ liệu và lưu lại vào
MongoDB → 30-40M (good point).
Nhưng thời gian đọc dữ liệu vào Spark chậm và không thể scale nếu
integrate các source từ 3rd.
Hong, Ong Xuan (Research Engineer) Bắt đầu với Big Data từ đâu và như thế nào? 08/01/2018 5 / 60
6. Final solution
Lưu trữ dữ liệu trên AWS S3 với định dạng binary (*.zip) và dùng Spark
1.6 để aggregate dữ liệu → 15-30M (well done).
Kích thước lưu trữ giảm xuống 40%.
Spark làm việc tốt với binary file.
Horizon scale thay vì vertical scale (Upgrade RAM/CPU): sử dụng 1
Master (RAM: 2GB, CPU: 2 cores), 2 Slave (RAM: 4GB, CPU: 2
cores)
Hong, Ong Xuan (Research Engineer) Bắt đầu với Big Data từ đâu và như thế nào? 08/01/2018 6 / 60
7. Hiện tại
Upgrade Spark 1.6 → Spark 2.0: aggregate dữ liệu mất 5-15M (very
impressive). Ta có thêm 45M để tích hợp thêm dữ liệu quan trọng.
Hong, Ong Xuan (Research Engineer) Bắt đầu với Big Data từ đâu và như thế nào? 08/01/2018 7 / 60
9. Contents
1 Bắt đầu từ đâu?
2 Thuật toán
3 Bắt đầu như thế nào?
4 Con đường sự nghiệp
Hong, Ong Xuan (Research Engineer) Bắt đầu với Big Data từ đâu và như thế nào? 08/01/2018 9 / 60
10. Contents
1 Bắt đầu từ đâu?
Giải quyết lưu trữ và tính toán
Các dịch vụ quản rị
2 Thuật toán
3 Bắt đầu như thế nào?
4 Con đường sự nghiệp
Hong, Ong Xuan (Research Engineer) Bắt đầu với Big Data từ đâu và như thế nào? 08/01/2018 10 / 60
11. Sự tiến hoá các giải pháp lưu trữ
Phương pháp lưu trữ truyền thống:
Giảm chi phí lưu trữ bằng cách số hoá văn bản.
Tính toán nhanh và thuận tiện thông qua bảng biểu.
Quản lý business hiệu quả bằng mô hình quan hệ.
Thống kê nhanh số liệu lớn hằng tháng, quí, năm.
Hong, Ong Xuan (Research Engineer) Bắt đầu với Big Data từ đâu và như thế nào? 08/01/2018 11 / 60
12. Bài toán lưu trữ
Tại sao cần công nghệ Big Data?
Hong, Ong Xuan (Research Engineer) Bắt đầu với Big Data từ đâu và như thế nào? 08/01/2018 12 / 60
13. Tại sao cần công nghệ Big Data?
Sự bùng nổ dữ liệu từ Internet: nhu cầu khai thác un-structured data
ngoài in-house data.
Cách giải quyết truyền thống không giải quyết được 3V (Velocity,
Volume, Variety).
RDBMS khó scale theo horizontal: dùng multi-DBMS thay vì upgrade
RAM/CPU.
Hong, Ong Xuan (Research Engineer) Bắt đầu với Big Data từ đâu và như thế nào? 08/01/2018 13 / 60
14. Yêu cầu cơ bản
Lưu trữ hiệu quả?
Không bị mất mát dữ liệu?
Đảm bảo tính sẵn sàng của hệ thống?
Dễ dàng mở rộng và bảo trì?
Hong, Ong Xuan (Research Engineer) Bắt đầu với Big Data từ đâu và như thế nào? 08/01/2018 14 / 60
15. Hai dạng lưu trữ
File distributed system
(Hadoop)
Semi-structure database
(NoSQL)
Hong, Ong Xuan (Research Engineer) Bắt đầu với Big Data từ đâu và như thế nào? 08/01/2018 15 / 60
16. Apache Hadoop
HDFS: Hadoop Distributed File
System
Hadoop sorts 1.8 TB trên 188
nodes trong 47.9 giờ (04/2006).
Các dịch vụ kế thừa: AWS S3
(2006), Dropbox (2007), Google
Drive, OneDrive, iCloud, ...
Hệ sinh thái: Apache Pig,
Apache Hive, Apache HBase,
Apache Phoenix, Apache
Spark, Apache ZooKeeper,
Cloudera Impala, Apache Flume,
Apache Sqoop, Apache Oozie,
và Apache Storm.
Hong, Ong Xuan (Research Engineer) Bắt đầu với Big Data từ đâu và như thế nào? 08/01/2018 16 / 60
17. Bài toán lưu trữ
Hadoop ra đời như thế nào?
Hong, Ong Xuan (Research Engineer) Bắt đầu với Big Data từ đâu và như thế nào? 08/01/2018 17 / 60
18. Truy vấn thông tin văn bản
Hong, Ong Xuan (Research Engineer) Bắt đầu với Big Data từ đâu và như thế nào? 08/01/2018 18 / 60
19. Cosine similarity
similarity = cos(θ) =
A.B
A 2. B 2
=
n
i=1 Ai Bi
n
i=1 A2
i
n
i=1 B2
i
Hong, Ong Xuan (Research Engineer) Bắt đầu với Big Data từ đâu và như thế nào? 08/01/2018 19 / 60
20. Tính vector TF-IDF
TF-IDF Term frequency-Inverse Document Frequency
TF − IDF = TFt × log
N
DFt
TFt (Term frequency): Từ khoá này xuất hiện bao nhiêu lần trong
văn bản?
DFt (Document frequency): Bao nhiêu văn bản chứa từ khoá này?
log N
DFt
: Inverse Document Frequency (IDF).
N: Tổng số văn bản trong ngữ liệu.
Hong, Ong Xuan (Research Engineer) Bắt đầu với Big Data từ đâu và như thế nào? 08/01/2018 20 / 60
21. Chuyển văn bản thành vector TF-IDF
Document 1
Word TF N DF IDF TF-IDF
Dog 1 2 1 0.3 0.3
run 1 2 1 0.3 0.3
behind 1 2 1 0.3 0.3
cat 1 2 1 0.3 0.3
Document 2
Word TF N DF IDF TF-IDF
This 1 2 2 0 0
is 1 2 2 0 0
a 1 2 2 0 0
document 1 2 2 0 0
on 1 2 2 0 0
Hadoop 1 2 1 0.3 0.3
Hong, Ong Xuan (Research Engineer) Bắt đầu với Big Data từ đâu và như thế nào? 08/01/2018 21 / 60
22. Google search engine
Hong, Ong Xuan (Research Engineer) Bắt đầu với Big Data từ đâu và như thế nào? 08/01/2018 22 / 60
23. Mô hình Map Reduce
Google File System (10/2003).
MapReduce: Simplified Data Processing on Large Clusters (12/2004).
Hong, Ong Xuan (Research Engineer) Bắt đầu với Big Data từ đâu và như thế nào? 08/01/2018 23 / 60
24. Apache Spark (05/2014) vs Hadoop
Hình: Logistic regression performance.
Tính toán song song trên RAM thay vì trên ổ đĩa.
Hỗ trợ nhiều ngôn ngữ: Java, Scala, R, Python
Có sẵn thư viện cần thiết: Spark streaming, SQL, MLlib, GraphX.
Hong, Ong Xuan (Research Engineer) Bắt đầu với Big Data từ đâu và như thế nào? 08/01/2018 24 / 60
25. Hai dạng lưu trữ
File distributed system
(Hadoop)
Semi-structure database
(NoSQL): tập trung vào
scalability và availability.
Hong, Ong Xuan (Research Engineer) Bắt đầu với Big Data từ đâu và như thế nào? 08/01/2018 25 / 60
26. NoSQL
NoSQL: Not Only SQL nghĩa là flexible
data structure.
Hong, Ong Xuan (Research Engineer) Bắt đầu với Big Data từ đâu và như thế nào? 08/01/2018 26 / 60
27. NoSQL
Hình: Danh sách các hệ quản trị NoSQL.
Hong, Ong Xuan (Research Engineer) Bắt đầu với Big Data từ đâu và như thế nào? 08/01/2018 27 / 60
28. NoSQL
Key-Value database (hash-table distributed on RAM): Redis,
DynamoDB, Riak, ...: dùng lưu clickstream data, application logs. Hỗ
trợ truy vấn nhanh nhưng không hỗ trợ các truy vấn phức tạp.
Document database (schema-less): MongoDB, CouchDB,
MarkLogic, ...: lưu dưới dạng JSON, dùng quản lý nội dung,
monitoring ứng dụng Web hay mobile. Hỗ trợ lưu trữ complex data
(Object), thường gặp lỗi mất dữ liệu và không đảm bảo ràng buộc
quan hệ.
Wide column database (store as sections of columns):
Cassandra, HBase, SimpleDB, ...: tối ưu tìm kiếm, tổng hợp dữ liệu
theo cột.
Graph database: Neo4J, IBM Graph, Allegrograph, ...: lưu dưới dạng
danh sách quan hệ giữa các node, dùng trong recommendation
system, phân tích địa lý. Thích hợp làm phân tích dữ liệu và nén dữ
liệu tốt hơn Row-oriented.
Hong, Ong Xuan (Research Engineer) Bắt đầu với Big Data từ đâu và như thế nào? 08/01/2018 28 / 60
29. Other NoSQL
XML databases.
OO databases.
Time series/Streaming events databases.
Geospatial databases: layers street, buildings, vegetation, integrated
data.
BayesDB truy vấn xác suất thống kê trên tập dữ liệu: sản phẩm nào
sẽ được customer X mua nhiều vào năm nay?
Hong, Ong Xuan (Research Engineer) Bắt đầu với Big Data từ đâu và như thế nào? 08/01/2018 29 / 60
30. NoSQL
Đánh giá: SQL databases vẫn là lựa chọn thích hợp cho nhiều ứng
dụng hiện nay (có nhiều nghiên cứu khoa học vững chắc, business
logic chặt chẽ hơn). Có thể kết hợp với NoSQL để tăng tốc độ
aggregate dữ liệu, nén dữ liệu dưới dạng Column-oriented, caching dữ
liệu để giảm tải truy vấn.
Các NoSQL vendors đang quay lại tập trung phát triển dựa trên tính
ổn định của các RDMBS truyền thống nhưng vẫn đảm bảo tính mở
rộng và flexibility vốn có của mình.
Hong, Ong Xuan (Research Engineer) Bắt đầu với Big Data từ đâu và như thế nào? 08/01/2018 30 / 60
31. Contents
1 Bắt đầu từ đâu?
Giải quyết lưu trữ và tính toán
Các dịch vụ quản rị
2 Thuật toán
3 Bắt đầu như thế nào?
4 Con đường sự nghiệp
Hong, Ong Xuan (Research Engineer) Bắt đầu với Big Data từ đâu và như thế nào? 08/01/2018 31 / 60
32. Quản trị Big Data
Cloud computing service
Amazon Web Service
Google Cloud Computing
Hadoop service
Cloudera
Hortonworks
Continuous integration
Jenkins (Free)
CicrleCI
TeamCity
Bamboo
Hong, Ong Xuan (Research Engineer) Bắt đầu với Big Data từ đâu và như thế nào? 08/01/2018 32 / 60
33. Bắt đầu từ đâu?
Message queue Processing Storage Management
Amazon Kinesis Apache Spark Hadoop HDFS Jenkins
Apache Kafka Apache Storm MongoDB AWS
Bảng: Công nghệ nên bắt đầu.
Hong, Ong Xuan (Research Engineer) Bắt đầu với Big Data từ đâu và như thế nào? 08/01/2018 33 / 60
34. Contents
1 Bắt đầu từ đâu?
2 Thuật toán
3 Bắt đầu như thế nào?
4 Con đường sự nghiệp
Hong, Ong Xuan (Research Engineer) Bắt đầu với Big Data từ đâu và như thế nào? 08/01/2018 34 / 60
35. Contents
1 Bắt đầu từ đâu?
2 Thuật toán
Deep Learning
Xử lý Big Data
3 Bắt đầu như thế nào?
4 Con đường sự nghiệp
Hong, Ong Xuan (Research Engineer) Bắt đầu với Big Data từ đâu và như thế nào? 08/01/2018 35 / 60
36. Tại sao Deep learning lại hot?
Hình: Độ chính xác cao khi dữ liệu càng lớn.
Hong, Ong Xuan (Research Engineer) Bắt đầu với Big Data từ đâu và như thế nào? 08/01/2018 36 / 60
37. Tại sao Deep learning lại hot?
Hình: Tự động hoá tác vụ feature extraction.
Hong, Ong Xuan (Research Engineer) Bắt đầu với Big Data từ đâu và như thế nào? 08/01/2018 37 / 60
38. CPU vs GPU
Hong, Ong Xuan (Research Engineer) Bắt đầu với Big Data từ đâu và như thế nào? 08/01/2018 38 / 60
39. CPU vs GPU
Tại sao tốc độ training trên GPU lại
nhanh hơn trên CPU?
Hong, Ong Xuan (Research Engineer) Bắt đầu với Big Data từ đâu và như thế nào? 08/01/2018 39 / 60
40. Deep learning Models
Hong, Ong Xuan (Research Engineer) Bắt đầu với Big Data từ đâu và như thế nào? 08/01/2018 40 / 60
41. Neural Network: Xử lý trên phép nhân ma trận
Hong, Ong Xuan (Research Engineer) Bắt đầu với Big Data từ đâu và như thế nào? 08/01/2018 41 / 60
42. 3D game: The witcher 3
Hong, Ong Xuan (Research Engineer) Bắt đầu với Big Data từ đâu và như thế nào? 08/01/2018 42 / 60
43. The witcher 3: Character modeling
Hong, Ong Xuan (Research Engineer) Bắt đầu với Big Data từ đâu và như thế nào? 08/01/2018 43 / 60
44. GPU: Geforce GTX
Hong, Ong Xuan (Research Engineer) Bắt đầu với Big Data từ đâu và như thế nào? 08/01/2018 44 / 60
45. Phép biến đổi Affine
Translation
1 0 0 Tx
0 1 0 Ty
0 0 1 Tz
0 0 0 1
Rotation
cosθ −sinθ 0 0
sinθ cosθ 0 0
0 0 1 1
0 0 1 1
Hong, Ong Xuan (Research Engineer) Bắt đầu với Big Data từ đâu và như thế nào? 08/01/2018 45 / 60
46. Phép biến đổi Affine
Scale
Sx 0 0 0
0 Sy 0 0
0 0 Sz 0
0 0 0 1
Shear
1 0 SHx 0
0 1 SHy 0
0 0 1 0
0 0 0 1
Hong, Ong Xuan (Research Engineer) Bắt đầu với Big Data từ đâu và như thế nào? 08/01/2018 46 / 60
47. Ví dụ dịch chuyển một điểm
1 0 0 Tx
0 1 0 Ty
0 0 1 Tz
0 0 0 1
Qx
Qy
Qz
1
=
Qx + Tx
Qy + Ty
Qz + Tz
1
=
Qx
Qy
Qz
1
Hong, Ong Xuan (Research Engineer) Bắt đầu với Big Data từ đâu và như thế nào? 08/01/2018 47 / 60
48. Lý do GPU train nhanh hơn CPU
Làm việc tốt trên floating number.
Tối ưu cho các thao tác: nhân ma trận, sliding-window, ...
Nhiều core xử lý hơn (820 cores vs 16 cores).
Tính toán song song hiệu quả hơn (multi-threading).
Hong, Ong Xuan (Research Engineer) Bắt đầu với Big Data từ đâu và như thế nào? 08/01/2018 48 / 60
49. Contents
1 Bắt đầu từ đâu?
2 Thuật toán
Deep Learning
Xử lý Big Data
3 Bắt đầu như thế nào?
4 Con đường sự nghiệp
Hong, Ong Xuan (Research Engineer) Bắt đầu với Big Data từ đâu và như thế nào? 08/01/2018 49 / 60
50. Xử lý Big Data
Các bài toán xấp xỉ:
Approximate count (đọc file lớn khi tài nguyên hạn hẹp).
Approximate search (matching pattern, information retrieval).
Dimension reduction approximation.
Compression algorithm (JPEG, Zip, HEVC - High Efficiency Video
Coding).
Các bài toán khai thác dữ liệu:
Locality-sensitive hashing.
Data streams analysis.
Frequent itemset analysis.
Clustering.
Social-network graphs.
Hong, Ong Xuan (Research Engineer) Bắt đầu với Big Data từ đâu và như thế nào? 08/01/2018 50 / 60
51. Mindset khi thiết kế giải thuật
Máy tính dù có mạnh đến đâu cũng
không cứu rỗi được một giải thuật tồi.
Hong, Ong Xuan (Research Engineer) Bắt đầu với Big Data từ đâu và như thế nào? 08/01/2018 51 / 60
52. Contents
1 Bắt đầu từ đâu?
2 Thuật toán
3 Bắt đầu như thế nào?
4 Con đường sự nghiệp
Hong, Ong Xuan (Research Engineer) Bắt đầu với Big Data từ đâu và như thế nào? 08/01/2018 52 / 60
53. Bắt đầu như thế nào?
Kiến thức: mạng máy tính, cơ sở dữ liệu → quản trị.
Lập trình: → tiết kiệm tài nguyên.
Hướng tiếp cận: chia để trị, quy hoạch động, xấp xỉ, độ phức tạp
không quá O(n2
).
Thu nhỏ dữ liệu để thực nghiệm (0.1% quần thể).
Kiến thức: toán rời rạc, xác suất thống kê, đại số tuyến tính, giải tích,
độ phức tạp thuật toán (NP-problem).
Học thông qua: thực hành, cheat sheet, side project.
Dành khoản đầu tư cho các khoá học chất lượng online, lấy chứng
chỉ quản trị các dịch vụ cloud computing.
Cần có cơ hội để làm việc với Big Data
Start-up: tự do lựa chọn công nghệ, thiết kế và triển khai.
Enterprise: migrate sang công nghệ mới, tối ưu và mở rộng quy mô hệ
thống.
Hong, Ong Xuan (Research Engineer) Bắt đầu với Big Data từ đâu và như thế nào? 08/01/2018 53 / 60
54. Contents
1 Bắt đầu từ đâu?
2 Thuật toán
3 Bắt đầu như thế nào?
4 Con đường sự nghiệp
Hong, Ong Xuan (Research Engineer) Bắt đầu với Big Data từ đâu và như thế nào? 08/01/2018 54 / 60
55. Con đường sự nghiệp
Data Engineer.
Data Analyst.
Data Scientist.
Hong, Ong Xuan (Research Engineer) Bắt đầu với Big Data từ đâu và như thế nào? 08/01/2018 55 / 60
56. Data Engineer
Vai trò: thiết kế, xây dựng, ETL, bảo trì, giám sát hệ thống Big Data.
Mục tiêu: hệ thống có khả năng co giãn hợp lý, tiết kiệm chi phí.
Thách thức: đảm bảo vấn đề lưu trữ dữ liệu, mang lại trải nghiệm
tốt cho người dùng.
Công nghệ: Apache Spark, Apache Hadoop, SQL, NoSQL, Docker,
Cloud services (AWS, Google, Microsoft).
Nhiệm vụ hằng ngày:
Setup hệ thống.
Tracking dữ liệu.
ETL dữ liệu.
Monitoring hệ thống.
Hong, Ong Xuan (Research Engineer) Bắt đầu với Big Data từ đâu và như thế nào? 08/01/2018 56 / 60
57. Data Analyst
Vai trò: thực hiện phân tích, tạo report trên Big Data.
Mục tiêu: các bản báo cáo đảm bảo tính chính xác, nhanh và ổn
định.
Thách thức: đảm bảo tính toàn vẹn của dữ liệu, lập kế hoạch và xử
lý nhanh những biến cố khi phát sinh dữ liệu.
Công nghệ: MySQL, MongoDB, Excel, Visualization tools.
Nhiệm vụ hằng ngày:
Thực hiện ETL khi cần thiết.
Phân tích và lập báo cáo dữ liệu.
Phân tích và tổng hợp dữ liệu từ nhiều nguồn khác (Web, APIs,
Logging, ...)
Hong, Ong Xuan (Research Engineer) Bắt đầu với Big Data từ đâu và như thế nào? 08/01/2018 57 / 60
58. Data Scientist
Vai trò: xác định vấn đề và đưa ra giải pháp ứng dụng AI, Machine
Learning cho tổ chức.
Mục tiêu: xây dựng pipeline cho giải pháp: ETL, feature engineering,
training, testing, deploy model.
Thách thức: xây dựng được hệ thống có độ chính xác cao.
Công nghệ: Apache Spark, Apache Hadoop, SQL, NoSQL, python,
notebook.
Nhiệm vụ hằng ngày:
Data exploration.
Handling missing data.
Feature engineering.
Train, validation, test model.
Reading papers for getting new idea.
Hong, Ong Xuan (Research Engineer) Bắt đầu với Big Data từ đâu và như thế nào? 08/01/2018 58 / 60
59. Tham khảo thêm
An Introduction to NoSQL Databases.
Why bother with NoSQL databases: Choose PostgreSQL for IoT.
IoT considerations: storage and database, SQL, NoSQL, historical
data
The Three Way Race to the Future of AI. Quantum vs. Neuromorphic
vs. High Performance Computing
The Three Ages of AI: Figuring Out Where We Are
Introduction to Algorithms, 3rd Edition (MIT Press)
Sketching algorithm for Big Data
Mining Massive Datasets (Stanford)
Get started with quantum development
Hong, Ong Xuan (Research Engineer) Bắt đầu với Big Data từ đâu và như thế nào? 08/01/2018 59 / 60
60. Xin cảm ơn
Hong, Ong Xuan (Research Engineer) Bắt đầu với Big Data từ đâu và như thế nào? 08/01/2018 60 / 60