Students Save 30%! Learn & create with unlimited courses & creative assets Students Save 30%! Save Now
Advertisement
  1. Code
  2. Data Science
Code

Khoa học dữ liệu và phân tích cho doanh nghiệp: Thách thức và giải pháp

by
Length:LongLanguages:

Vietnamese (Tiếng Việt) translation by Andrea Ho (you can also view the original English article)

Khi nhiều công ty khám phá ra tầm quan trọng của khoa học dữ liệu và phân tích nâng cao cấp cho tình hình tài chính của họ, một cuộc xung đột lợi ích đã nảy sinh. Làm sao để các lĩnh vực phát triển nhanh chóng này trở thành một phần của hệ sinh thái của công ty, đặc biệt đối với các công ty đã thành lập và tồn tại hơn một thập kỷ trở lên?

Các nhà khoa học về dữ liệu và các chuyên gia ITcó nhu cầu khác nhau khi đề cập đến cơ sở hạ tầng. Ở đây, tôi sẽ trình bày một số yêu cầu đó và thảo luận cách làm sao để vượt qua chúng - và cùng nhau phát triển.

Quan điểm

Khi khởi động các chương trình khoa học dữ liệu trong các công ty, thường thì những vấn đề lớn nhất không phát sinh từ công nghệ, mà là từ sự hiểu lầm đơn giản. Quan niệm sai lệch liên ngành có thể dẫn đến nhiều mối hận thù giữa các nhóm khoa học dữ liệu non trẻ và các phòng CNTT.

Để chống lại điều này, chúng ta sẽ xem xét cả hai góc nhìn và cân nhắc từng nhu cầu của họ. Chúng ta sẽ bắt đầu bằng cách xác định điều gì mà một chuyên gia IT cần để duy trì một quy trình làm việc thành công, và sau đó sẽ xem xét điều mà một nhà khoa học dữ liệu cần để đạt hiệu quả tối đa. Sau cùng, chúng ta sẽ tìm nền tảng chung: làm sao để sử dụng nó để triển khai một cơ sở hạ tầng khoẻ mạnh để cả hai cùng phát triển.

Nhu cầu về IT

Hãy bắt đầu bằng cách cân nhắc một cơ sở hạ tầng dữ liệu điển hình cho IT và việc phát triển phần mềm.

Về dữ liệu, có ba điều kiện bắt buộc cần thiết mà bất kỳ bộ phận IT nào cũng sẽ tập trung vào:

  • dữ liệu phải an toàn
  • dữ liệu cần hiệu quả
  • dữ liệu cần nhất quán

Vì lý do này, nhiều IT tận dung các schema dựa trên table và thường sử dụng SQL (Structured Query Language) hoặc một trong các biến thể của nó.

Thiết lập này có nghĩa là có một số lượng lớn các table cho tất cả mục đích. Mỗi table trong số này tách biệt với nhau, với các foreign key kết nối chúng. Chính bởi thiết lập này, nên các truy vấn có thể được thực hiện nhanh chóng, hiệu quả và được bảo mật. Điều này rất quan trọng đối với việc phát triển phần mềm để duy trì tính bảo toàn và đáng tin của dữ liệu.

Với cấu trúc này, cần yêu cầu phần cứng tối thiểu khi so sánh với nhu cầu của khoa học dữ liệu. Dữ liệu lưu trữ được xác định rõ và nó tăng trưởng với tốc độ có thể dự đoán được. Có Ít dữ liệu bị lặp lại và quá trình truy vấn giảm bớt lượng tài nguyên cần thiết để xử lý.

Hãy xem khoa học dữ liệu khác biết thế nào.

Nhu cầu khoa học dữ liệu

Mặt khác, khoa học dữ liệu có một nhóm nhu cầu khác biệt. Các nhà khoa học dữ liệu cần thoải mái di chuyển dữ liệu của họ — và sửa đổi dữ liệu của họ linh hoạt và nhanh chóng. Họ cần khả năng di chuyển dữ liệu theo những cách phi tiêu chuẩn và xử lý lượng lớn dữ liệu từng lần một.

Những nhu cầu này khó triển khai khi sử dụng cơ sở dữ liệu được cấu trúc ở mức độ cao. Khoa học dữ liệu đòi hỏi một cơ sở hạ tầng khác, dựa vào dữ liệu phi cấu trúc và schema table-less.

Khi đề cập đến dữ liệu phi cấu trúc, chúng ta đang nói về dữ liệu không có sẵn định nghĩa. Điều này thật ngớ ngẩn cho đến khi một hình thái đã được một nhà khoa học dữ liệu đưa đến. Trong đa số việc phát triển, mỗi field cần phải thuộc về một kiểu dữ liệu xác định — chẳng hạn như integer hoặc string. Tuy nhiên, đối với khoa học dữ liệu, nó chỉ nói về việc hỗ trợ data point, không được định nghĩa rõ ràng.

Các schema không có table linh hoạt hơn cho thiết lập gần như không trật tự này, cũng cho phép tất cả thông tin được phép tồn tại cùng một nơi. Điều này đặc biệt hữu ích cho các nhà khoa học dữ liệu thường xuyên cần hợp nhất dữ liệu theo phương pháp sáng tạo và phi cấu trúc. Các lựa chọn phổ biến bao gồm các biến thể hoặc cấu trúc NoSQL, chẳng hạn như các khối OLAP.

Kết quả là phần cứng cần thiết cho khoa học dữ liệu thường đáng quan tâm hơn. Phần cứng sẽ cần phải giữ toàn bộ dữ liệu được sử dụng, cũng như tập con của dữ liệu đó (mặc dù việc này thường được dàn trải trong nhiều cấu trúc hoặc dịch vụ). Phần cứng cũng có cần tài nguyên đáng kể để xử lý khi số di chuyển và tổng hợp một lượng dữ liệu lớn.

Chắt lọc nhu cầu trở thành hành động

Với 2 nhóm nhu cầu này, chúng ta có thể thấy sự hiểu nhầm xảy ra như thế nào. Hãy xem xét những quan điểm này và sử dụng chúng để xác định những thay đổi mà chúng tôi đang tìm kiếm và cách thực hiện chúng. Những vấn đề cần phải được giải quyết khi đưa khoa học dữ liệu vào một môi trường IT truyền thống?

Thao tác dữ liệu dễ dàng

Trong một môi trường IT truyền thống, bất kỳ cơ sở dữ liệu nào của doanh nghiệp có thể theo một cấu trúc cứng nhắc, với các table được phân chia để phù hợp với nhu cầu cụ thể, một schema thích hợp để xác định từng phần dữ liệu và các foreign key để gắn chặt nó với nhau. Điều này tạo ra một hệ thống truy vấn dữ liệu hiệu quả. Bản chất khám phá của một số phương pháp khoa học dữ liệu có thể đẩy lên đến giới hạn của nó.

Khi một nhiệm vụ thông thường cần có sự tham gia của nhiều table, thì lợi ích của các cấu trúc table-based trở nên mờ nhạt hơn. Một cách thức phổ biến để xử lý vấn đề này là triển khai một cơ sở dữ liệu NoSQL thứ cấp hoặc một cơ sở dữ liệu đa chiều. Cơ sở dữ liệu thứ cấp này sử dụng các ETL phổ thông (Extract, Transform, Load) để giữ cho thông tin của nó luôn mới. Điều này gia tăng \ chi phí sử dụng phần cứng hoặc sử dụng thêm dịch vụ cloud, nhưng sẽ giảm bớt các hạn chế.

Hãy nhớ trong một số trường hợp, việc thêm một cơ sở dữ liệu riêng biệt cho khoa học dữ liệu có thể hợp lý hơn so với việc sử dụng cùng một cơ sở dữ liệu (đặc biệt là khi có sự hiện diện của các vấn đề phức tạp về việc cấp phép).

Mở rộng dữ liệu dễ dàng

Vấn đề cụ thể này mang đền hai điều không phù hợp đã được nhắc đến:

  1. sự gia tăng thường xuyên của dự liệu từ procedure
  2. nảy sin nhu cầu về các kiểu dữ liệu phi cấu trúc

Trong IT truyền thống, kích cỡ của cơ sở dữ liệu của bạn được xác định rõ, hoặc giữ nguyên hoặc tăng trưởng với tốc độ chậm rãi. Khi sử dụng cơ sở dữ liệu cho khoa học dữ liệu, sự gia tăng đó có thể tính theo cấp số nhân. Việc bổ sung nhiều gigabyte dữ liệu mỗi ngày (hoặc nhiều hơn nữa) rất phổ biến. Với kích cỡ tuyệt đối của loại dữ liệu này, một doanh nghiệp sẽ cần phải kết hợp một kế hoạch để mở rộng kiến ​​trúc nội tại hoặc áp dụng một giải pháp đám mây phù hợp.

Đối với dữ liệu không có cấu trúc, nó có thể ngốn nhiều tài nguyên: dung lượng lưu trữ và sức mạnh xử lý, tùy thuộc vào cách dùng cụ thể của bạn. Chính vì điều này nên thường không hiệu quả để lưu giữ tất cả trong một cơ sở dữ liệu, để có thể được sử dụng cho các mục đích khác. Giải pháp này tương tự như việc mở rộng quy mô. Chúng ta sẽ cần một kế hoạch để mở rộng quy mô kiến ​​trúc nội tại của mình để đáp ứng những nhu cầu này hoặc sẽ phải tìm một giải pháp đám mây thích hợp.

Sử dụng tài nguyên

Sự khác biệt lớn cuối cùng mà chúng ta sẽ nói đến là sử dụng tài nguyên. Đối với IT, việc sử dụng tài nguyên thường hiệu quả, được xác định rõ và nhất quán. Nếu một cơ sở dữ liệu hỗ trợ cho một trang thương mại điện tử, thì sẽ có những ràng buộc phổ dụng. Một chuyên gia ITsẽ biết khoảng bao nhiêu người dùng sẽ có trong một khoảng thời gian nhất định, để họ có thể lập kế hoạch cung cấp phần cứng của họ dựa trên lượng thông tin cần thiết cho mỗi người dùng.

Với cơ sở hạ tầng IT truyền thống, sẽ không có bất kỳ sự cố nào xảy ra nếu dự án chỉ sử dụng vài trăm row từ một số ít table. Nhưng một dự án yêu cầu mỗi row từ hàng tá table sẽ nhanh chóng trở thành vấn đề. Trong khoa học dữ liệu, nhu cầu về xử lý và thay đổi lưu trữ khác biệt trong mỗi dự án - và sự khó dự đoán đó sẽ gây khó khi cần hỗ trợ.

Trong IT truyền thống, tài nguyên có thể được chia sẻ với các bên khác, có thể là website đang trực tuyến hoặc nhóm phát triển nội bộ. Rủi ro ở đây là khi chạy một dự án khoa học dữ liệu quy mô lớn có khả năng những người dùng khác bị chặn lại trong một khoảng thời gian. Một rủi ro khác là các máy chủ đang lưu giữ cơ sở dữ liệu có thể không xử lý được số lượng xử lý thực sự cần thiết. Gọi 200.000 row từ 15 table và yêu cầu tập hợp dữ liệu ở mức ưu tiên nhất sẽ trở thành một vấn đề. Mức độ của các truy vấn này có thể trở thành gánh nặng lớn cho một máy chủ để có thể xử lý một nghìn người dùng cùng lúc.

Các giải pháp lý tưởng là dựa vào xử lý của cloud. Việc này giải quyết hai yếu tố quan trọng. Đầu tiên là cho phép thực hiện truy vấn từ bất kỳ cơ sở dữ liệu quan trọng nào. Thứ hai là cung cấp các tài nguyên mở rộng có thể phù hợp với từng dự án.

Vậy danh sách cần có sau cùng cho cả hai là gì?

Bây giờ chúng ta đã bàn kỹ càng về các nhu cầu, hãy tóm tắt lại. Phòng IT và khoa học dữ liệu sẽ cần những điều sau đây cho các thành tựu lâu dài:

  • một cơ sở dữ liệu tách biệt để giảm thiểu tác động đến các bên liên quan khác
  • giải pháp lưu trữ mở rộng để điều chỉnh cho phù hợp với những thay đổi trong dữ liệu
  • giải pháp mở rộng xử lý để phù hợp với các kiểu dự án khác nhau
  • một cơ sở dữ liệu không có cấu trúc để cung cấp khả năng truy xuất hiệu quả và lưu trữ của dữ liệu có độ biến đổi cao.

Xây dựng một nghiên cứu cho khoa học dữ liệu

Hãy phân nhỏ mọi thứ thành những chi tiết kỹ thuật để chúng ta có thể xây dựng một giải pháp có lợi ích tương hỗ. Bây giờ, chúng ta sẽ xem xét làm sao để xác định các tài nguyên cụ thể cần có cho một tổ chức:

Thông số nghiên cứu

Từ phương diện CNTT, có ba định nghĩa chính cần có để tạo ra cơ sở hạ tầng cần thiết. Đó là:

  1. số lượng dữ liệu
  2. mức độ cần xử lý đến đâu
  3. dữ liệu sẽ tiếp cận giải pháp lưu trữ ra sao

Dưới đây là phương pháp bạn có thể xác định từng loại định nghĩa.

Nhu cầu lưu trữ dữ liệu

Bắt đầu với lượng dữ liệu ban đầu cần thiết và các dữ liệu bổ sung được ước tính hiện đang có.

Đối với nhu cầu dữ liệu ban đầu của bạn, hãy lấy quy mô đã xác định của cơ sở dữ liệu hiện tại. Bây giờ loại trừ bất kỳ column hoặc table nào mà bạn không cần trong các dự án về khoa học dữ liệu của mình. Hãy lấy con số này và cộng thêm vào quy mô dữ liệu của bất kỳ nguồn dữ liệu mới nào mà bạn sẽ giới thiệu. Các nguồn dữ liệu mới có thể gồm có dữ liệu Google Analytics hoặc thông tin từ hệ thống Point of Sales. Tổng số này sẽ là dung lượng lưu trữ dữ liệu mà chúng tôi sẽ tìm kiếm trước tiên.

Mặc dù nhu cầu lưu trữ ban đầu rất hữu ích, nhưng bạn vẫn phải cân nhắc các nhu cầu dữ liệu hiện có — vì bạn có thể sẽ thêm nhiều thông tin hơn vào cơ sở dữ liệu theo thời gian. Để tìm thông tin này, bạn có thể tính toán dữ liệu được bổ sung hàng ngày của mình từ dữ liệu hiện có. Hãy xem lượng thông tin đã được thêm vào cơ sở dữ liệu của bạn trong 30 ngày vừa qua và sau đó chia cho 30. Sau đó lặp lại phép tính này cho từng nguồn thông tin mà bạn sẽ sử dụng và thêm chúng lại với nhau.

Mặc dù điều này không chính xác nhưng có một ý tưởng phát triển cũ kỹ là bạn nên tăng gấp đôi ước tính của mình và chúng tôi sẽ áp dụng ở đây. Tại sao? Chúng tôi muốn tính đến những thay đổi không thể đoán trước, có thể ảnh hưởng đến nhu cầu lưu trữ dữ liệu của bạn — như nhu cầu tăng trưởng của công ty, nhu cầu cho mỗi dự án hoặc chỉ dành cho các lĩnh vực chung.

Với con số đã xác định, nhân nó với 365. Đây là tăng trưởng dữ liệu dự kiến ​​của bạn trong một năm, con số này sẽ xác định dung lượng lưu trữ bạn nên có khi bổ sung vào số tiền ban đầu của bạn..

Nhu cầu xử lý tài nguyên

Không giống như nhu cầu lưu trữ dữ liệu, nhu cầu xử lý khó tính toán hơn rất nhiều. Mục tiêu chính ở đây là để quyết định xem bạn có muốn dành công việc khó khăn cho các truy vấn hay trên một máy tính cục bộ (hay một máy cloud). Hãy nhớ rằng khi tôi nói về một máy tính cục bộ, tôi không ý chỉ máy tính bạn thường sử dụng — bạn có thể cần một số workstation (máy trạm) được tối ưu cho các tính toán chuyên sâu hơn.

Để triển khai lựa chọn này, nó giúp suy nghĩ về dự án khoa học dữ liệu lớn nhất mà bạn có thể vận hành trong năm tiếp theo. Giải pháp dữ liệu của bạn có thể xử lý truy vấn có quy mô đó mà vẫn có thể truy xuất đến các bên liên quan khác không? Nếu có thể, bạn sẽ có thể không cần bổ sung thêm tài nguyên. Nếu không, thì bạn sẽ cần lập kế hoạch để mua về một workstation có quy mô phù hợp hoặc mở rộng các giải pháp cloud.

Quy trình ETL (Extract, Transform, Load)

Sau khi quyết định nơi lưu trữ và xử lý dữ liệu của bạn, quyết định tiếp theo là làm thế nào. Việc tạo một quy trình ETL sẽ duy trì trật tự và cập nhật cho cơ sở dữ liệu khoa học dữ liệu của bạn và ngăn không cho nó sử dụng các tài nguyên không cần thiết từ nơi khác.

Dưới đây là những gì bạn nên có trong tài liệu ETL của mình:

  • bất kỳ thủ tục sao lưu nào sẽ diễn ra
  • dữ liệu đến từ đâu và sẽ chuyển đến đâu
  • quy mô chính xác cần được di chuyển
  • tần suất sẽ diễn ra chuyển dữ liệu
  • liệu chuyển đổi cần phải được hoàn thành (ghi lại toàn bộ cơ sở dữ liệu) hoặc có thể được bổ sung (chỉ điều chỉnh những thay đổi mới)

Chuẩn bị một giải pháp

Với tất cả các điểm dữ liệu trong tay, đã đến lúc chọn ra giải pháp. Phần này sẽ mất một chút nghiên cứu và sẽ dựa nhiều vào nhu cầu cụ thể của bạn, như trên bề mặt họ có xu hướng có nhiều điểm tương đồng.

Ba trong số các giải pháp cloud lớn nhất — Amazon Web Services (AWS), Google Cloud Platform (GCP) và Microsoft Azure — đề xuất một số giá cả và tính năng tốt nhất. Cả ba đều có chi phí tương tương, mặc dù AWS đặc biệt khó tính toán chi phí hơn (do cấu trúc định giá theo kiểu a la carte).

Ngoài giá cả, mỗi dịch vụ đề xuất khả năng mở rộng lưu trữ dữ liệu và khả năng bổ sung các 'instances' xử lý, mặc dù mỗi dịch vụ gọi 'instance' của nó bằng tên gọi khác nhau. Khi nghiên cứu để sử dụng cho cơ sở hạ tầng của riêng bạn, hãy xem xét loại dự án nào bạn sẽ sử dụng nhiều nhất, vì điều đó có thể thay đổi giá trị của giá cả và nhóm tính năng của từng loại.

Tuy nhiên, nhiều công ty đơn giản chỉ chọn điều phù hợp với các công nghệ hiện đang sử dụng của họ.

Có thể bạn cũng muốn thiết lập cơ sở hạ tầng của riêng mình, mặc dù điều này phức tạp hơn và không dành cho người ngại khó.

Lời khuyên giúp cho việc triển khai thuận lợi

Với tất cả sự chuẩn bị kỹ càng, bạn có thể bắt đầu triển khai! Để giúp bạn, dưới đây là một số lời khuyên quý báu để giúp dự án của bạn dễ dàng hơn — từ việc lên ý tưởng đến xử lý.

Kiểm tra quy trình ETL của bạn

Khi lần đầu tiên bạn tiên kết hợp quy trình ETL, đừng kiểm tra toàn bộ mọi thứ cùng một lúc! Điều này có thể gây quá tải nghiêm trọng cho tài nguyên của bạn và tăng đáng kể chi phí dành cho cloud, hoặc nếu có sai sót, hoặc nếu bạn phải cố gắng thực hiện quy trình này nhiều lần.

Thay vào đó, bạn nên chạy quy trình của mình bằng cách chỉ sử dụng 100 row hoặc tầm đó cho table gốc trước tiên. Sau đó, chạy chuyển đổi hoàn toàn một lần khi bạn biết nó sẽ hoạt động.

Đồng thời kiểm tra các câu truy vấn

Tương tự cho bất kỳ câu truy vấn lớn nào, bạn chạy trên một cloud instance. Gây ra một sai lầm sẽ kéo hàng triệu dữ liệu trở nên khó khăn hơn trên một hệ thống so với chỉ một ít dữ liệu — đặc biệt khi bạn trả tiền cho mỗi GB.

Xây dựng chiến lược sao lưu kho lưu trữ

Hầu hết các nhà vận hành cloud đều đề xuất tính năng này, vì vậy bạn không phải lo lắng về điều này. Đội ngũ của bạn vẫn nên thảo luận xem liệu họ có muốn tạo bản sao lưu dữ liệu thường xuyên của riêng họ hay không, hoặc nếu có thể hiệu quả hơn để tạo lại dữ liệu khi nhu cầu phát sinh.

Mối quan tâm về bảo mật và quyền riêng tư

Khi di chuyển dữ liệu khách hàng sang cloud, hãy đảm bảo rằng các bên liên quan đều biết về chính sách quản trị dữ liệu của công ty bạn để ngăn chặn vấn đề có thể xảy ra. Điều này cũng có thể giúp bạn tiết kiệm một số tiền trên lượng dữ liệu được lưu trữ trong đám mây.

Đặt tên cho dimension trong quá trình ETL

Khi triển khai ETL từ một cơ sở dữ liệu dựa trên table đến một cơ sở dữ liệu phi cấu trúc, hãy cẩn thận các thủ tục đặt tên. Nếu các tên gọi được chuyển qua theo số lượng lớn, bạn có thể sẽ có rất nhiều field từ các bảng khác nhau có cùng tên. Một cách dễ dàng để khắc phục chuyện này ban đầu là đặt tên cho đại lượng mới của bạn trong cơ sở dữ liệu chưa có cấu trúc như {oldtablename}_{columnname} và sau đó bắt đầu đổi tên chúng từ đây.

Hãy tạo hứng khởi cho bản thân!

Bây giờ bạn có thể lên kế hoạch cơ bản về phân tích và cơ sở hạ tầng khoa học dữ liệu của mình. Với nhiều câu hỏi quan trọng và câu trả lời được xác định, quá trình thực hiện và thực hiện quản lý mua hàng sẽ diễn ra suôn sẻ hơn nhiều.

Bạn đang gặp khó khăn trong việc tìm ra câu trả lời cho công ty của mình? Tôi có bỏ qua điều gì quan trọng không? Hãy cho tôi biết ở phần bình luận!

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.