Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.

Online Event - Bắt Đầu Nghiên Cứu Big Data Từ Đâu Và Như Thế Nào

7.321 visualizaciones

Publicado el

Tổ chức: TopDev
Địa điểm: Online Facebook live stream
Thời gian: 08/01/2018
Chủ đề: AI, Big Data, E-commerce

Publicado en: Tecnología
  • Sé el primero en comentar

Online Event - Bắt Đầu Nghiên Cứu Big Data Từ Đâu Và Như Thế Nào

  1. 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. 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. 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. 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. 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. 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. 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
  8. 8. Results Hình: Spark performance. Hong, Ong Xuan (Research Engineer) Bắt đầu với Big Data từ đâu và như thế nào? 08/01/2018 8 / 60
  9. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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

×