Tin tức và phân tích của tất cả các thiết bị di động

Xây dựng Kho dữ liệu và Hồ dữ liệu tại AWS

Kho dữ liệu. Hồ dữ liệu. Một ngôi nhà bên hồ. Nếu không có từ nào trong số này gây ấn tượng với bạn ít nhất một chút thì công việc của bạn rõ ràng không liên quan đến dữ liệu.

Tuy nhiên, đây sẽ là một giả định khá phi thực tế, bởi vì ngày nay dường như mọi thứ đều liên quan đến dữ liệu. Hoặc như các nhà lãnh đạo công ty muốn mô tả:

  • Kinh doanh tập trung vào dữ liệu và định hướng dữ liệu.
  • Dữ liệu mọi lúc, mọi nơi.

Nguồn lực quan trọng nhất

Có vẻ như dữ liệu đã trở thành tài sản quý giá nhất của ngày càng nhiều công ty. Tôi nhớ rằng các tập đoàn lớn luôn tạo ra rất nhiều dữ liệu, tôi nghĩ là hàng terabyte dữ liệu mới mỗi tháng. Chuyện đó vẫn cách đây 10-15 năm. Nhưng bây giờ bạn có thể dễ dàng tạo ra lượng dữ liệu này trong vài ngày. Bạn có thể hỏi liệu nó có thực sự cần thiết hay không, ngay cả khi đó là loại nội dung mà mọi người sẽ sử dụng. Và vâng, chắc chắn là không 😃.

Không phải tất cả nội dung đều hữu ích và một số phần sẽ không hữu ích chút nào. Tôi thường chứng kiến ​​​​ở tuyến đầu cách các công ty tạo ra lượng dữ liệu khổng lồ mà sau khi tải lên thành công sẽ trở nên vô dụng.

Nhưng điều đó không còn đúng nữa. Lưu trữ dữ liệu – hiện trên đám mây – rẻ, nguồn dữ liệu tăng theo cấp số nhân và ngày nay không ai có thể dự đoán được họ sẽ cần gì trong một năm khi các dịch vụ mới được tích hợp vào hệ thống. Tại thời điểm này, ngay cả dữ liệu cũ cũng có thể trở nên có giá trị.

Vì vậy, chiến lược là lưu trữ càng nhiều dữ liệu càng tốt. Nhưng cũng ở dạng hiệu quả nhất. Nhờ đó, dữ liệu không chỉ có thể được lưu một cách hiệu quả mà còn có thể được tìm kiếm, tái sử dụng hoặc chuyển đổi và phổ biến thêm.

Hãy xem ba cách cơ bản để đạt được điều này trong AWS:

  • Cơ sở dữ liệu Athena – một cách rẻ tiền và hiệu quả nhưng đơn giản để tạo hồ dữ liệu trên đám mây.
  • Cơ sở dữ liệu Redshift – một phiên bản đám mây nghiêm túc của kho dữ liệu có thể thay thế hầu hết các giải pháp tại chỗ hiện tại, không theo kịp tốc độ tăng trưởng theo cấp số nhân của dữ liệu.
  • Databricks – sự kết hợp giữa hồ dữ liệu và kho dữ liệu thành một giải pháp, với một số phần thưởng cho tất cả.

Hồ dữ liệu từ AWS Athena

Nguồn: aws.amazon.com

Hồ dữ liệu là nơi bạn có thể nhanh chóng lưu trữ dữ liệu đến ở dạng không có cấu trúc, bán cấu trúc hoặc có cấu trúc. Đồng thời, bạn không mong đợi dữ liệu này sẽ bị sửa đổi sau khi được lưu. Thay vào đó, bạn muốn chúng nguyên tử và bất biến nhất có thể. Chỉ có điều này mới đảm bảo được tiềm năng tái sử dụng lớn nhất ở các giai đoạn sau. Nếu bạn mất thuộc tính nguyên tử này của dữ liệu ngay khi tải dữ liệu vào hồ dữ liệu lần đầu tiên thì không có cách nào để khôi phục thông tin bị mất này.

AWS Athena là cơ sở dữ liệu có bộ lưu trữ trực tiếp trong nhóm S3 và không có cụm máy chủ nào chạy ở chế độ nền. Điều này có nghĩa đây là một hồ dữ liệu thực sự rẻ. Các định dạng tệp có cấu trúc như tệp Parquet hoặc Tệp Giá trị được phân tách bằng dấu phẩy (CSV) cho phép bạn sắp xếp dữ liệu của mình. Bộ chứa S3 chứa các tệp và Athena tham chiếu chúng mỗi khi các quá trình truy cập dữ liệu từ cơ sở dữ liệu.

Athena không hỗ trợ nhiều tính năng được coi là tiêu chuẩn, chẳng hạn như hướng dẫn cập nhật. Vì vậy, bạn cần xem Athena như một phương án rất đơn giản. Mặt khác, nó giúp ngăn hồ dữ liệu nguyên tử của bạn bị sửa đổi chỉ vì bạn không thể 😐.

Nó hỗ trợ lập chỉ mục và phân vùng, điều này giúp ích cho việc thực thi hiệu quả các câu lệnh chọn và tạo các khối dữ liệu riêng biệt về mặt logic (ví dụ: được phân tách bằng ngày hoặc cột chính). Việc mở rộng quy mô cũng rất dễ dàng vì việc này cũng phức tạp như việc thêm nhóm mới vào cơ sở hạ tầng của bạn.

Ưu và nhược điểm

Lợi ích cần xem xét:

  • Việc Athena có giá rẻ (chỉ bao gồm các phân đoạn S3 và chi phí sử dụng SQL cho mỗi lần sử dụng) là lợi thế lớn nhất. Nếu bạn muốn xây dựng một hồ dữ liệu rẻ tiền trong AWS thì đây chính là nó.
  • Là một dịch vụ gốc, Athena có thể dễ dàng tích hợp với các dịch vụ AWS hữu ích khác như Amazon QuickSight để trực quan hóa dữ liệu hoặc Danh mục dữ liệu AWS Glue để tạo siêu dữ liệu có cấu trúc ổn định.
  • Tốt nhất để chạy các truy vấn đặc biệt trên một lượng lớn dữ liệu có cấu trúc hoặc không cấu trúc mà không cần duy trì toàn bộ cơ sở hạ tầng xung quanh nó.

Nhược điểm cần xem xét:

  • Athena đặc biệt không hiệu quả trong việc trả về các truy vấn chọn phức tạp một cách nhanh chóng, đặc biệt nếu các truy vấn không khớp với các giả định của mô hình dữ liệu về cách thiết kế yêu cầu dữ liệu hồ dữ liệu.
  • Điều này cũng làm cho nó kém linh hoạt hơn đối với những thay đổi tiềm ẩn trong tương lai đối với mô hình dữ liệu.
  • Athena không hỗ trợ bất kỳ chức năng nâng cao bổ sung nào và nếu bạn muốn một chức năng cụ thể nào đó trở thành một phần của dịch vụ, bạn phải triển khai nó lên trên.
  • Nếu bạn muốn sử dụng hồ dữ liệu của mình trong một số lớp trình bày nâng cao hơn thì lựa chọn duy nhất thường là kết hợp hồ dữ liệu đó với một dịch vụ cơ sở dữ liệu khác phù hợp hơn cho mục đích này, chẳng hạn như AWS Aurora hoặc AWS Dynamo DB.

Mục đích và trường hợp sử dụng thực tế

Chọn Athena nếu mục tiêu của bạn là tạo hồ dữ liệu đơn giản không có các tính năng nâng cao giống như kho dữ liệu. Ví dụ: nếu bạn không mong đợi các truy vấn phân tích nghiêm túc, hiệu suất cao chạy thường xuyên trên hồ dữ liệu. Thay vào đó, ưu tiên là có một kho dữ liệu bất biến với khả năng mở rộng lưu trữ dữ liệu dễ dàng.

Bạn không còn phải lo lắng quá nhiều về việc thiếu không gian nữa. Ngay cả chi phí lưu trữ nhóm S3 cũng có thể giảm hơn nữa bằng cách triển khai chính sách vòng đời dữ liệu. Về cơ bản, điều này có nghĩa là di chuyển dữ liệu giữa các loại phân đoạn S3 khác nhau, hướng nhiều hơn đến mục đích lưu trữ với thời gian khôi phục chậm hơn nhưng chi phí thấp hơn.

Điều tuyệt vời ở Athena là nó tự động tạo một tệp bao gồm dữ liệu là một phần của kết quả truy vấn SQL. Sau đó, bạn có thể lấy tập tin đó và sử dụng nó cho bất cứ điều gì bạn muốn. Vì vậy, đây là một lựa chọn tốt nếu bạn có nhiều dịch vụ lambda xử lý thêm dữ liệu theo nhiều bước. Mỗi kết quả lambda sẽ tự động là kết quả ở định dạng tệp có cấu trúc làm đầu vào sẵn sàng để xử lý tiếp.

Athena là một lựa chọn tốt khi cơ sở hạ tầng đám mây của bạn nhận được một lượng lớn dữ liệu thô không cần xử lý tại thời điểm tải. Điều này có nghĩa là tất cả những gì bạn cần là lưu trữ đám mây nhanh chóng với cấu trúc dễ hiểu.

Một trường hợp sử dụng khác là tạo một không gian dành riêng để lưu trữ dữ liệu cho một trang web khác. Trong trường hợp đó, Athena DB sẽ trở thành bản sao lưu giá rẻ cho tất cả dữ liệu bạn không cần ngay bây giờ nhưng điều đó có thể thay đổi trong tương lai. Tại thời điểm này, bạn sẽ chỉ sử dụng dữ liệu và gửi nó đi.

Kho dữ liệu từ AWS Redshift

Nguồn: aws.amazon.com

Kho dữ liệu là nơi dữ liệu được lưu trữ theo cách rất có cấu trúc. Dễ dàng tải và gỡ bỏ. Mục đích là để chạy một số lượng lớn các truy vấn rất phức tạp, nối nhiều bảng bằng cách sử dụng các phép nối phức tạp. Nhiều chức năng phân tích khác nhau có sẵn để tính toán các số liệu thống kê khác nhau dựa trên dữ liệu hiện có. Mục tiêu cuối cùng là trích xuất các dự đoán và sự kiện trong tương lai có thể được sử dụng trong tương lai bằng cách sử dụng dữ liệu hiện có.

Redshift là một hệ thống kho dữ liệu chính thức. Với các máy chủ được phân cụm để điều chỉnh và mở rộng quy mô – theo chiều ngang và chiều dọc, đồng thời hệ thống lưu trữ cơ sở dữ liệu được tối ưu hóa để trả về nhanh các truy vấn phức tạp. Mặc dù ngày nay bạn cũng có thể chạy Redshift ở chế độ không có máy chủ. Không có tập tin nào trên S3 hoặc bất cứ thứ gì tương tự. Nó là một máy chủ cụm cơ sở dữ liệu tiêu chuẩn với định dạng lưu trữ riêng.

Nó có các công cụ giám sát hiệu suất dùng ngay cũng như các số liệu có thể tùy chỉnh trên bảng điều khiển mà bạn có thể sử dụng và quan sát để điều chỉnh hiệu suất cho phù hợp với trường hợp sử dụng của mình. Quản trị cũng có thể truy cập thông qua bảng điều khiển riêng biệt. Phải mất một chút nỗ lực để hiểu tất cả các tính năng và cài đặt có thể có cũng như cách chúng ảnh hưởng đến cụm của bạn. Nhưng không nơi nào lại phức tạp như việc quản trị máy chủ Oracle cho các giải pháp tại chỗ trước đây.

Mặc dù có nhiều giới hạn AWS khác nhau đối với Redshift đặt ra một số giới hạn cho việc sử dụng nó hàng ngày (ví dụ: giới hạn cứng về số lượng người dùng hoặc phiên hoạt động đồng thời trong một cụm cơ sở dữ liệu), nhưng thực tế là các hoạt động được thực hiện rất nhanh sẽ giúp ích rất nhiều. để phá vỡ những hạn chế này ở một mức độ nào đó.

Ưu và nhược điểm

Lợi ích cần xem xét:

  • Dịch vụ kho dữ liệu đám mây AWS gốc có thể dễ dàng tích hợp với các dịch vụ khác.
  • Một nơi trung tâm để lưu trữ, giám sát và truy xuất các loại nguồn dữ liệu khác nhau từ các hệ thống nguồn rất khác nhau.
  • Nếu bạn từng muốn có một kho dữ liệu không có máy chủ và không có cơ sở hạ tầng để duy trì thì giờ đây bạn có thể làm được.
  • Tối ưu hóa cho phân tích và báo cáo hiệu suất cao. Không giống như hồ dữ liệu, có một mô hình dữ liệu quan hệ mạnh mẽ để lưu trữ tất cả dữ liệu đến.
  • Công cụ cơ sở dữ liệu Redshift có nguồn gốc từ PostgreSQL, đảm bảo khả năng tương thích cao với các hệ thống cơ sở dữ liệu khác.
  • Hướng dẫn SAO CHÉP và UNLOAD rất hữu ích để tải và dỡ dữ liệu từ và sang bộ chứa S3.

Nhược điểm cần xem xét:

  • Redshift không hỗ trợ nhiều phiên hoạt động đồng thời. Các phiên sẽ bị tạm dừng và xử lý tuần tự. Mặc dù điều này có thể không phải là vấn đề trong hầu hết các trường hợp vì thao tác thực hiện rất nhanh nhưng đây là yếu tố hạn chế trên các hệ thống có nhiều người dùng hoạt động.
  • Mặc dù Redshift hỗ trợ nhiều tính năng trước đây được biết đến từ các hệ thống Oracle trưởng thành nhưng nó vẫn không ở mức tương tự. Một số tính năng dự kiến ​​có thể không tồn tại (chẳng hạn như trình kích hoạt DB). Hoặc Redshift hỗ trợ chúng ở dạng khá hạn chế (như các chế độ xem cụ thể hóa).
  • Bất cứ khi nào bạn cần một công việc xử lý dữ liệu tùy chỉnh nâng cao hơn, bạn phải tạo nó từ đầu. Sử dụng Python hoặc JavaScript trong hầu hết các trường hợp. Nó không tự nhiên như PL/SQL đối với Oracle, nơi ngay cả hàm và thủ tục cũng sử dụng ngôn ngữ rất giống với các truy vấn SQL.

Mục đích và trường hợp sử dụng thực tế

Redshift có thể là kho lưu trữ trung tâm cho tất cả các nguồn dữ liệu khác nhau mà trước đây nằm ngoài đám mây. Nó là sự thay thế quan trọng cho các giải pháp kho dữ liệu trước đây của Oracle. Vì nó cũng là một cơ sở dữ liệu quan hệ nên việc di chuyển từ Oracle thậm chí còn là một thao tác khá đơn giản.

Nếu bạn hiện có bất kỳ giải pháp kho dữ liệu nhiều địa điểm nào chưa thực sự thống nhất về cách tiếp cận, cấu trúc hoặc một tập hợp các quy trình chung được xác định trước để chạy trên dữ liệu của mình thì Redshift là một lựa chọn tuyệt vời.

Nó chỉ đơn giản là cung cấp cho bạn khả năng kết hợp tất cả các hệ thống kho dữ liệu khác nhau từ các địa điểm và quốc gia khác nhau dưới một mái nhà. Bạn vẫn có thể tách chúng theo quốc gia để giữ cho dữ liệu của bạn an toàn và chỉ có sẵn cho những người cần nó. Nhưng đồng thời, nó sẽ cho phép bạn xây dựng một giải pháp lưu trữ thống nhất bao gồm tất cả dữ liệu của công ty.

Một trường hợp khác có thể là tình huống trong đó mục tiêu là xây dựng nền tảng kho dữ liệu với sự hỗ trợ tự phục vụ rộng rãi. Đây có thể được hiểu là một tập hợp xử lý mà người dùng cá nhân của hệ thống có thể xây dựng. Nhưng đồng thời, chúng không bao giờ là một phần của giải pháp nền tảng chung. Điều này có nghĩa là những dịch vụ như vậy sẽ chỉ được cung cấp cho người sáng tạo hoặc một nhóm người do người sáng tạo xác định. Chúng sẽ không ảnh hưởng đến người dùng khác dưới bất kỳ hình thức nào.

Kiểm tra so sánh của chúng tôi giữa Datalake và Datawarehouse.

Lakehouse của Databricks trên AWS

Nguồn: databricks.com

Lakehouse là một thuật ngữ thực sự liên quan đến dịch vụ databricks. Ngay cả khi đây không phải là dịch vụ AWS gốc, nó vẫn tồn tại và hoạt động rất tốt trong hệ sinh thái AWS, đồng thời cung cấp nhiều tùy chọn khác nhau để kết nối và tích hợp với các dịch vụ AWS khác.

Databricks được thiết kế để kết nối (trước đây) các khu vực rất khác nhau:

  • Một giải pháp lưu trữ hồ dữ liệu cho dữ liệu phi cấu trúc, bán cấu trúc và có cấu trúc.
  • Giải pháp kho dữ liệu có cấu trúc và dữ liệu truy vấn truy cập nhanh (còn gọi là Delta Lake).
  • Một giải pháp hỗ trợ phân tích và xử lý dựa trên máy học trong hồ dữ liệu.
  • Quản lý dữ liệu trong tất cả các lĩnh vực trên bằng quản trị tập trung và các công cụ được tạo sẵn để hỗ trợ năng suất của nhiều loại nhà phát triển và người dùng khác nhau.

Nó là một nền tảng chung có thể được sử dụng đồng thời bởi các kỹ sư dữ liệu, nhà phát triển SQL và các nhà khoa học máy học. Mỗi nhóm cũng có một bộ công cụ để thực hiện nhiệm vụ của mình.

Do đó, Databricks hướng đến một giải pháp tổng thể, cố gắng kết hợp các ưu điểm của hồ dữ liệu và kho dữ liệu trong một giải pháp. Ngoài ra, nó còn cung cấp các công cụ để kiểm tra và chạy các mô hình học máy trực tiếp trên các kho dữ liệu đã được tạo.

Ưu và nhược điểm

Lợi ích cần xem xét:

  • Databricks là một nền tảng dữ liệu có khả năng mở rộng cao. Nó chia tỷ lệ tùy thuộc vào kích thước của tải và thậm chí thực hiện tự động.
  • Đây là môi trường hợp tác giữa các nhà khoa học dữ liệu, kỹ sư dữ liệu và nhà phân tích kinh doanh. Có thể làm tất cả trong cùng một không gian và cùng nhau là một lợi ích lớn. Không chỉ từ góc độ tổ chức mà còn giúp tiết kiệm một khoản chi phí khác cần thiết cho các môi trường riêng biệt.
  • AWS Databricks tích hợp liền mạch với các dịch vụ AWS khác như Amazon S3, Amazon dịch chuyển đỏ tôi Amazon EMR. Điều này cho phép người dùng dễ dàng di chuyển dữ liệu giữa các dịch vụ và tận dụng đầy đủ các dịch vụ đám mây AWS.

Nhược điểm cần xem xét:

  • Khối dữ liệu có thể phức tạp để thiết lập và quản lý, đặc biệt đối với những người dùng mới làm quen với việc xử lý dữ liệu lớn. Điều này đòi hỏi trình độ kiến ​​thức kỹ thuật đáng kể để tận dụng tối đa nền tảng.
  • Mặc dù Databricks có hiệu quả về mặt chi phí xét theo mô hình định giá trả theo nhu cầu sử dụng nhưng chúng vẫn có thể đắt đối với các dự án xử lý dữ liệu quy mô lớn. Chi phí sử dụng nền tảng có thể tăng lên nhanh chóng, đặc biệt nếu người dùng cần tăng tài nguyên của họ.
  • Databricks cung cấp một loạt các công cụ và mẫu dựng sẵn, nhưng đây cũng có thể là một hạn chế đối với những người dùng cần nhiều tùy chọn tùy chỉnh hơn. Nền tảng này có thể không phù hợp với những người dùng yêu cầu sự linh hoạt và kiểm soát cao hơn đối với quy trình làm việc dữ liệu lớn của họ.

Mục đích và trường hợp sử dụng thực tế

AWS Databricks phù hợp nhất với các tập đoàn lớn có lượng dữ liệu rất lớn. Trong trường hợp này, nó có thể đáp ứng yêu cầu tải và ngữ cảnh hóa các nguồn dữ liệu khác nhau từ các hệ thống bên ngoài khác nhau.

Cung cấp dữ liệu thời gian thực thường là một yêu cầu. Điều này có nghĩa là kể từ thời điểm dữ liệu xuất hiện trong hệ thống nguồn, các quy trình sẽ ngay lập tức tải xuống, xử lý và lưu trữ dữ liệu trong các khối dữ liệu hoặc với độ trễ tối thiểu. Nếu độ trễ vượt quá một phút thì quá trình xử lý được coi là gần thời gian thực. Trong mọi trường hợp, cả hai kịch bản đều có thể đạt được với nền tảng Databricks. Điều này chủ yếu là do số lượng lớn bộ điều hợp và giao diện thời gian thực kết nối với nhiều dịch vụ AWS gốc khác.

Databricks cũng tích hợp dễ dàng với hệ thống Informatica ETL. Bất cứ khi nào hệ thống của tổ chức sử dụng nhiều hệ sinh thái Informatica, Databricks có vẻ như là một sự bổ sung tương thích tốt cho nền tảng này.

những từ cuối

Khi lượng dữ liệu tăng lên theo cấp số nhân, thật tốt khi biết rằng luôn có những giải pháp để xử lý nó một cách hiệu quả. Những gì từng là cơn ác mộng để quản lý và duy trì giờ đây đòi hỏi rất ít công việc hành chính. Nhóm có thể tập trung vào việc tạo ra giá trị từ dữ liệu.

Tùy theo nhu cầu mà bạn chỉ cần lựa chọn dịch vụ có thể đáp ứng được. Mặc dù AWS Databricks có thể là thứ bạn sẽ phải gắn bó sau khi đã quyết định, nhưng các lựa chọn thay thế khác khá linh hoạt hơn ngay cả khi chúng có ít khả năng hơn, đặc biệt là chế độ không có máy chủ. Việc chuyển sang giải pháp khác sau này khá dễ dàng.