How Can We Help?

Search for answers or browse our knowledge base.

Table of Contents
< All Topics
Print

Giới thiệu Azure Data Factory

Giới thiệu về Azure Data Factory

Bài viết • 13/02/2025

ÁP DỤNG CHO: Azure Data Factory × Azure Synapse Analytics

Mẹo

Hãy thử Data Factory trong Microsoft Fabric, một giải pháp phân tích toàn diện (all-in-one analytics solution) cho các doanh nghiệp. Microsoft Fabric bao gồm mọi thứ từ di chuyển dữ liệu (data movement) đến khoa học dữ liệu (data science), phân tích thời gian thực (real-time analytics), trí tuệ kinh doanh (business intelligence) và báo cáo (reporting). Tìm hiểu cách bắt đầu một bản dùng thử miễn phí!

Trong thế giới của dữ liệu lớn (big data), dữ liệu thô, chưa được tổ chức thường được lưu trữ trong các hệ thống lưu trữ quan hệ (relational), không quan hệ (non-relational) và các hệ thống lưu trữ khác. Tuy nhiên, bản thân dữ liệu thô không có ngữ cảnh hoặc ý nghĩa phù hợp để cung cấp những hiểu biết có giá trị cho các nhà phân tích (analysts), nhà khoa học dữ liệu (data scientists) hoặc người ra quyết định kinh doanh (business decision makers).

Dữ liệu lớn (big data) yêu cầu một dịch vụ có thể điều phối (orchestrate) và vận hành (operationalize) các quy trình để tinh chỉnh các kho dữ liệu thô khổng lồ này thành những hiểu biết kinh doanh có thể hành động (actionable business insights). Azure Data Factory là một dịch vụ đám mây được quản lý (managed cloud service) được xây dựng cho các dự án tích hợp dữ liệu (data integration), trích xuất-chuyển đổi-tải (ETL – extract-transform-load), trích xuất-tải-chuyển đổi (ELT – extract-load-transform) phức tạp và hỗn hợp.

Các tính năng của Azure Data Factory

  • Nén dữ liệu (Data Compression): Trong hoạt động sao chép dữ liệu (Data Copy activity), có thể nén dữ liệu (compress the data) và ghi dữ liệu đã nén vào nguồn dữ liệu đích (target data source). Tính năng này giúp tối ưu hóa việc sử dụng băng thông (bandwidth usage) trong quá trình sao chép dữ liệu.
  • Hỗ trợ kết nối đa dạng cho các nguồn dữ liệu khác nhau (Extensive Connectivity Support for Different Data Sources): Azure Data Factory cung cấp hỗ trợ kết nối rộng rãi (broad connectivity support) để kết nối với các nguồn dữ liệu khác nhau (different data sources). Điều này hữu ích khi bạn muốn kéo (pull) hoặc ghi (write) dữ liệu từ các nguồn dữ liệu khác nhau.
  • Kích hoạt sự kiện tùy chỉnh (Custom Event Triggers): Azure Data Factory cho phép tự động hóa xử lý dữ liệu (automate data processing) bằng cách sử dụng các kích hoạt sự kiện tùy chỉnh (custom event triggers). Tính năng này cho phép tự động thực hiện một hành động nhất định khi một sự kiện cụ thể xảy ra.
  • Xem trước và xác thực dữ liệu (Data Preview and Validation): Trong hoạt động sao chép dữ liệu (Data Copy activity), các công cụ được cung cấp để xem trước (preview) và xác thực (validate) dữ liệu. Tính năng này giúp đảm bảo rằng dữ liệu được sao chép đúng và ghi vào nguồn dữ liệu đích (target data source) chính xác.
  • Luồng dữ liệu tùy chỉnh (Customizable Data Flows): Azure Data Factory cho phép tạo các luồng dữ liệu tùy chỉnh (customizable data flows). Tính năng này cho phép thêm các hành động hoặc bước tùy chỉnh (custom actions or steps) để xử lý dữ liệu.
  • Bảo mật tích hợp (Integrated Security): Azure Data Factory cung cấp các tính năng bảo mật tích hợp (integrated security features) như tích hợp Entra ID (Entra ID integration) và kiểm soát truy cập dựa trên vai trò (role-based access control) để kiểm soát truy cập vào các luồng dữ liệu (dataflows). Tính năng này tăng cường bảo mật trong xử lý dữ liệu (data processing) và bảo vệ dữ liệu của bạn.

Các kịch bản sử dụng

Ví dụ, hãy tưởng tượng một công ty trò chơi (gaming company) thu thập hàng petabyte nhật ký trò chơi (game logs) được tạo ra bởi các trò chơi trên đám mây (cloud). Công ty muốn phân tích các nhật ký này để hiểu rõ hơn về sở thích khách hàng (customer preferences), nhân khẩu học (demographics) và hành vi sử dụng (usage behavior). Công ty cũng muốn xác định các cơ hội bán thêm (up-sell) và bán chéo (cross-sell), phát triển các tính năng mới hấp dẫn (compelling new features), thúc đẩy tăng trưởng kinh doanh (drive business growth) và cung cấp trải nghiệm tốt hơn cho khách hàng.

Để phân tích các nhật ký này, công ty cần sử dụng dữ liệu tham chiếu (reference data) như thông tin khách hàng (customer information), thông tin trò chơi (game information) và thông tin chiến dịch tiếp thị (marketing campaign information) được lưu trữ trong một kho dữ liệu tại chỗ (on-premises data store). Công ty muốn sử dụng dữ liệu này từ kho dữ liệu tại chỗ, kết hợp với dữ liệu nhật ký bổ sung (additional log data) trong một kho dữ liệu đám mây (cloud data store).

Để trích xuất thông tin chi tiết (extract insights), công ty hy vọng xử lý dữ liệu được kết hợp (joined data) bằng cách sử dụng một cụm Spark (Spark cluster) trên đám mây (Azure HDInsight), và xuất bản dữ liệu đã chuyển đổi (transformed data) vào một kho dữ liệu đám mây (cloud data warehouse) như Azure Synapse Analytics để dễ dàng xây dựng báo cáo (build a report) trên đó. Họ muốn tự động hóa quy trình công việc này (automate this workflow), đồng thời giám sát (monitor) và quản lý (manage) nó theo lịch hàng ngày (daily schedule). Họ cũng muốn thực thi quy trình này khi các tệp được đưa vào một vùng chứa lưu trữ blob (blob store container).

Azure Data Factory là nền tảng giải quyết các kịch bản dữ liệu như vậy. Đây là dịch vụ tích hợp dữ liệu (data integration service) và ETL dựa trên đám mây (cloud-based) cho phép bạn tạo các quy trình công việc dựa trên dữ liệu (data-driven workflows) để điều phối việc di chuyển dữ liệu (data movement) và chuyển đổi dữ liệu (transforming data) ở quy mô lớn. Sử dụng Azure Data Factory, bạn có thể tạo và lập lịch (schedule) cho các quy trình công việc dựa trên dữ liệu (gọi là các đường ống – pipelines) có thể thu nhận dữ liệu (ingest data) từ các kho dữ liệu khác nhau (disparate data stores). Bạn có thể xây dựng các quy trình ETL phức tạp (complex ETL processes) để chuyển đổi dữ liệu trực quan (visually) bằng các luồng dữ liệu (data flows) hoặc bằng cách sử dụng các dịch vụ tính toán (compute services) như Azure HDInsight Hadoop, Azure Databricks và Azure SQL Database.

Ngoài ra, bạn có thể xuất bản dữ liệu đã chuyển đổi (transformed data) vào các kho dữ liệu như Azure Synapse Analytics để các ứng dụng trí tuệ kinh doanh (business intelligence – BI) sử dụng. Cuối cùng, thông qua Azure Data Factory, dữ liệu thô (raw data) có thể được tổ chức thành các kho dữ liệu (data stores) và hồ dữ liệu (data lakes) có ý nghĩa để đưa ra các quyết định kinh doanh tốt hơn.

Cách thức hoạt động

Data Factory chứa một loạt các hệ thống liên kết với nhau (interconnected systems) cung cấp một nền tảng hoàn chỉnh từ đầu đến cuối (end-to-end platform) cho các kỹ sư dữ liệu (data engineers).

ETL không cần mã (Code-Free ETL as a service)

Luồng điều khiển (Control Flow)Luồng dữ liệu (Data Flow)Lập lịch (Schedule)Giám sát (Monitor)
Sao chép dữ liệu hỗn hợp đa đám mây và tại chỗ (multi-cloud and on-premise hybrid copy data)Hơn 100 đầu nối gốc (native connectors)Không cần máy chủ và tự động mở rộng (serverless and auto-scale)Sử dụng trình hướng dẫn (wizard) để thực hiện các công việc sao chép nhanh (quick copy jobs)Thiết kế các đường ống dữ liệu không cần mã (code-free data pipelines)Tạo đường ống thông qua SDK (generate pipelines via SDK)Sử dụng các cấu trúc luồng công việc (workflow constructs): vòng lặp (loops), nhánh (branches), thực thi bổ sung (additional execution), biến (variables), tham số (parameters),…Xây dựng và duy trì các lịch vận hành (operational schedules) cho các đường ống dữ liệu của bạnĐồng hồ treo tường (wall clock), dựa trên sự kiện (event-based), cửa sổ trượt (tumbling windows), liên kết (chained)Xem các lần thực thi đang hoạt động (active executions) và lịch sử đường ống (pipeline history)Chi tiết hoạt động (activity) và thực thi luồng dữ liệu (data flow executions)Thiết lập cảnh báo (alerts) và thông báo (notifications)

Hình ảnh: Hướng dẫn trực quan cung cấp cái nhìn chi tiết về kiến trúc hoàn chỉnh của Data Factory. Để xem chi tiết hơn, hãy chọn hình ảnh trên để phóng to, hoặc truy cập vào hình ảnh độ phân giải cao.

Kết nối và thu thập (Connect and collect)

Các doanh nghiệp có dữ liệu thuộc nhiều loại khác nhau (various types) được lưu trữ ở các nguồn khác nhau (disparate sources) tại chỗ (on-premises), trên đám mây (in the cloud), có cấu trúc (structured), không có cấu trúc (unstructured) và bán cấu trúc (semi-structured), tất cả đều đến với các khoảng thời gian và tốc độ khác nhau.

Bước đầu tiên trong việc xây dựng một hệ thống sản xuất thông tin (information production system) là kết nối với tất cả các nguồn dữ liệu (data sources) và xử lý (processing) cần thiết, chẳng hạn như các dịch vụ phần mềm dưới dạng dịch vụ (SaaS – software-as-a-service), cơ sở dữ liệu (databases), chia sẻ tệp (file shares) và dịch vụ web FTP. Bước tiếp theo là di chuyển dữ liệu (move the data) đến một vị trí tập trung (centralized location) để xử lý tiếp theo.

Nếu không có Data Factory, các doanh nghiệp phải xây dựng các thành phần di chuyển dữ liệu tùy chỉnh (custom data movement components) hoặc viết các dịch vụ tùy chỉnh (custom services) để tích hợp các nguồn dữ liệu và xử lý này. Việc này tốn kém và khó để tích hợp cũng như duy trì các hệ thống như vậy. Ngoài ra, chúng thường thiếu khả năng giám sát cấp doanh nghiệp (enterprise-grade monitoring), cảnh báo (alerting) và các kiểm soát (controls) mà một dịch vụ được quản lý hoàn toàn (fully managed service) có thể cung cấp.

Với Data Factory, bạn có thể sử dụng hoạt động sao chép (Copy Activity) trong một đường ống dữ liệu (data pipeline) để di chuyển dữ liệu từ các kho dữ liệu nguồn (source data stores) cả tại chỗ (on-premises) và trên đám mây (cloud) đến một kho dữ liệu tập trung (centralization data store) trên đám mây để phân tích tiếp theo. Ví dụ, bạn có thể thu thập dữ liệu trong Azure Data Lake Storage và chuyển đổi dữ liệu (transform the data) sau đó bằng cách sử dụng dịch vụ tính toán Azure Data Lake Analytics. Bạn cũng có thể thu thập dữ liệu trong Azure Blob Storage và chuyển đổi nó sau đó bằng cách sử dụng một cụm Hadoop Azure HDInsight.

Chuyển đổi và làm giàu (Transform and enrich)

Sau khi dữ liệu có mặt trong một kho dữ liệu tập trung (centralized data store) trên đám mây, hãy xử lý (process) hoặc chuyển đổi (transform) dữ liệu đã thu thập bằng cách sử dụng các luồng dữ liệu ánh xạ ADF (ADF mapping data flows). Các luồng dữ liệu (data flows) cho phép các kỹ sư dữ liệu (data engineers) xây dựng và duy trì các biểu đồ chuyển đổi dữ liệu (data transformation graphs) thực thi trên Spark mà không cần hiểu về cụm Spark (Spark clusters) hoặc lập trình Spark (Spark programming).

Nếu bạn muốn tự viết mã chuyển đổi (code transformations by hand), ADF hỗ trợ các hoạt động bên ngoài (external activities) để thực thi các chuyển đổi của bạn trên các dịch vụ tính toán (compute services) như HDInsight Hadoop, Spark, Data Lake Analytics và Machine Learning.

CI/CD và xuất bản (CI/CD and publish)

Data Factory cung cấp hỗ trợ đầy đủ cho tích hợp liên tục/triển khai liên tục (CI/CD – Continuous Integration/Continuous Deployment) của các đường ống dữ liệu (data pipelines) bằng cách sử dụng Azure DevOps và GitHub. Điều này cho phép bạn phát triển (develop) và phân phối (deliver) các quy trình ETL của mình một cách tuần tự trước khi xuất bản sản phẩm hoàn chỉnh (finished product). Sau khi dữ liệu thô (raw data) đã được tinh chỉnh thành dạng sẵn sàng cho kinh doanh (business-ready consumable form), hãy tải dữ liệu (load the data) vào Azure Data Warehouse, Azure SQL Database, Azure Cosmos DB hoặc bất kỳ công cụ phân tích nào mà người dùng kinh doanh (business users) của bạn có thể sử dụng từ các công cụ trí tuệ kinh doanh (business intelligence tools).

Giám sát (Monitor)

Sau khi bạn đã xây dựng và triển khai thành công đường ống tích hợp dữ liệu (data integration pipeline), mang lại giá trị kinh doanh từ dữ liệu đã tinh chỉnh (refined data), hãy giám sát (monitor) các hoạt động (activities) và đường ống (pipelines) được lập lịch để biết tỷ lệ thành công (success rates) và thất bại (failure rates). Azure Data Factory có hỗ trợ tích hợp cho việc giám sát đường ống (pipeline monitoring) thông qua Azure Monitor, API, PowerShell, nhật ký Azure Monitor (Azure Monitor logs) và các bảng sức khỏe (health panels) trên cổng Azure (Azure portal).

Các khái niệm cấp cao (Top-level concepts)

Một đăng ký Azure (Azure subscription) có thể có một hoặc nhiều phiên bản Azure Data Factory (data factories). Azure Data Factory bao gồm các thành phần chính sau:

  • Đường ống (Pipelines)
  • Hoạt động (Activities)
  • Tập dữ liệu (Datasets)
  • Dịch vụ liên kết (Linked services)
  • Luồng dữ liệu (Data Flows)
  • Môi trường tích hợp (Integration Runtimes)

Các thành phần này hoạt động cùng nhau để cung cấp nền tảng mà bạn có thể tạo các quy trình công việc dựa trên dữ liệu (data-driven workflows) với các bước để di chuyển (move) và chuyển đổi dữ liệu (transform data).

Đường ống (Pipeline)

Một nhà máy dữ liệu (data factory) có thể có một hoặc nhiều đường ống (pipelines). Một đường ống (pipeline) là một nhóm logic (logical grouping) của các hoạt động (activities) thực hiện một đơn vị công việc (unit of work). Cùng nhau, các hoạt động trong một đường ống thực hiện một nhiệm vụ (task). Ví dụ, một đường ống có thể chứa một nhóm hoạt động thu nhận dữ liệu (ingests data) từ một blob Azure (Azure blob) và sau đó chạy một truy vấn Hive (Hive query) trên một cụm HDInsight (HDInsight cluster) để phân vùng dữ liệu (partition the data).

Lợi ích của việc này là đường ống (pipeline) cho phép bạn quản lý các hoạt động (activities) như một tập hợp (set) thay vì quản lý từng hoạt động riêng lẻ. Các hoạt động trong một đường ống có thể được liên kết với nhau (chained together) để hoạt động tuần tự (sequentially) hoặc có thể hoạt động độc lập song song (independently in parallel).

Luồng dữ liệu ánh xạ (Mapping data flows)

Tạo và quản lý các biểu đồ logic chuyển đổi dữ liệu (data transformation logic) mà bạn có thể sử dụng để chuyển đổi dữ liệu ở bất kỳ kích thước nào (any-sized data). Bạn có thể xây dựng một thư viện các quy trình chuyển đổi dữ liệu có thể tái sử dụng (reusable library of data transformation routines) và thực thi các quy trình này theo cách mở rộng (scaled-out manner) từ các đường ống ADF (ADF pipelines). Data Factory sẽ thực thi logic của bạn trên một cụm Spark (Spark cluster) tự động khởi tạo và tắt khi cần thiết. Bạn sẽ không bao giờ phải quản lý hoặc duy trì các cụm (clusters).

Hoạt động (Activity)

Các hoạt động (activities) đại diện cho một bước xử lý (processing step) trong một đường ống (pipeline). Ví dụ, bạn có thể sử dụng một hoạt động sao chép (copy activity) để sao chép dữ liệu từ một kho dữ liệu (data store) này sang kho dữ liệu khác. Tương tự, bạn có thể sử dụng một hoạt động Hive (Hive activity), chạy một truy vấn Hive (Hive query) trên một cụm HDInsight Hadoop (HDInsight Hadoop cluster), để chuyển đổi (transform) hoặc phân tích (analyze) dữ liệu của bạn. Data Factory hỗ trợ ba loại hoạt động: hoạt động di chuyển dữ liệu (data movement activities), hoạt động chuyển đổi dữ liệu (data transformation activities) và hoạt động điều khiển (control activities).

Tập dữ liệu (Datasets)

Các tập dữ liệu (datasets) đại diện cho các cấu trúc dữ liệu (data structures) trong các kho dữ liệu (data stores), chỉ đơn giản là trỏ đến (point to) hoặc tham chiếu (reference) dữ liệu bạn muốn sử dụng trong các hoạt động của mình làm đầu vào (inputs) hoặc đầu ra (outputs).

Dịch vụ liên kết (Linked services)

Các dịch vụ liên kết (linked services) giống như các chuỗi kết nối (connection strings), định nghĩa thông tin kết nối (connection information) cần thiết để Data Factory kết nối với các tài nguyên bên ngoài (external resources). Hãy nghĩ theo cách này: một dịch vụ liên kết định nghĩa kết nối đến nguồn dữ liệu (data source), và một tập dữ liệu (dataset) đại diện cho cấu trúc của dữ liệu (structure of the data). Ví dụ, một dịch vụ liên kết Azure Storage (Azure Storage-linked service) chỉ định một chuỗi kết nối (connection string) để kết nối với tài khoản Azure Storage (Azure Storage account). Ngoài ra, một tập dữ liệu blob Azure (Azure blob dataset) chỉ định vùng chứa blob (blob container) và thư mục (folder) chứa dữ liệu.

Các dịch vụ liên kết (linked services) được sử dụng cho hai mục đích trong Data Factory:

  • Để đại diện cho một kho dữ liệu (data store) bao gồm, nhưng không giới hạn ở, cơ sở dữ liệu SQL Server (SQL Server database), cơ sở dữ liệu Oracle (Oracle database), chia sẻ tệp (file share) hoặc tài khoản lưu trữ blob Azure (Azure blob storage account). Để biết danh sách các kho dữ liệu được hỗ trợ, xem bài viết copy activity.
  • Để đại diện cho một tài nguyên tính toán (compute resource) có thể lưu trữ việc thực thi một hoạt động (activity). Ví dụ, hoạt động HDInsightHive (HDInsightHive activity) chạy trên một cụm Hadoop HDInsight (HDInsight Hadoop cluster). Để biết danh sách các hoạt động chuyển đổi (transformation activities) và các môi trường tính toán được hỗ trợ (supported compute environments), xem bài viết transform data.

Môi trường tích hợp (Integration Runtime)

Trong Data Factory, một hoạt động (activity) định nghĩa hành động cần thực hiện (action to be performed). Một dịch vụ liên kết (linked service) định nghĩa một kho dữ liệu đích (target data store) hoặc một dịch vụ tính toán (compute service). Một môi trường tích hợp (integration runtime) cung cấp cầu nối (bridge) giữa hoạt động (activity) và các dịch vụ liên kết (linked services). Nó được tham chiếu bởi dịch vụ liên kết hoặc hoạt động, và cung cấp môi trường tính toán (compute environment) nơi hoạt động được thực thi (runs on) hoặc được phân phối (dispatched from). Bằng cách này, hoạt động có thể được thực hiện ở khu vực gần nhất có thể (closest possible) với kho dữ liệu đích (target data store) hoặc dịch vụ tính toán (compute service) một cách hiệu quả nhất (most performant way) trong khi đáp ứng các nhu cầu bảo mật (security) và tuân thủ (compliance).

Kích hoạt (Triggers)

Các kích hoạt (triggers) đại diện cho đơn vị xử lý (unit of processing) xác định thời điểm một lần thực thi đường ống (pipeline execution) cần được khởi động (kicked off). Có nhiều loại kích hoạt (triggers) cho các loại sự kiện khác nhau (different types of events).

Lần thực thi đường ống (Pipeline runs)

Một lần thực thi đường ống (pipeline run) là một phiên bản (instance) của việc thực thi đường ống (pipeline execution). Các lần thực thi đường ống thường được khởi tạo (instantiated) bằng cách truyền các tham số (arguments) đến các tham số (parameters) được định nghĩa trong các đường ống (pipelines). Các tham số có thể được truyền thủ công (manually) hoặc trong định nghĩa kích hoạt (trigger definition).

Tham số (Parameters)

Các tham số (parameters) là các cặp khóa-giá trị (key-value pairs) của cấu hình chỉ đọc (read-only configuration). Các tham số được định nghĩa trong đường ống (pipeline). Các tham số cho các tham số được định nghĩa (defined parameters) được truyền trong quá trình thực thi (execution) từ ngữ cảnh chạy (run context) được tạo bởi một kích hoạt (trigger) hoặc một đường ống được thực thi thủ công (executed manually). Các hoạt động (activities) trong đường ống sử dụng các giá trị tham số (parameter values).

Một tập dữ liệu (dataset) là một tham số có kiểu mạnh (strongly typed parameter) và là một thực thể có thể tái sử dụng/tham chiếu (reusable/referenceable entity). Một hoạt động (activity) có thể tham chiếu các tập dữ liệu (datasets) và có thể sử dụng các thuộc tính được định nghĩa trong định nghĩa tập dữ liệu (dataset definition).

Một dịch vụ liên kết (linked service) cũng là một tham số có kiểu mạnh (strongly typed parameter) chứa thông tin kết nối (connection information) đến một kho dữ liệu (data store) hoặc một môi trường tính toán (compute environment). Nó cũng là một thực thể có thể tái sử dụng/tham chiếu (reusable/referenceable entity).

Luồng điều khiển (Control flow)

Luồng điều khiển (control flow) là một sự điều phối (orchestration) của các hoạt động đường ống (pipeline activities) bao gồm việc liên kết các hoạt động theo thứ tự (chaining activities in a sequence), phân nhánh (branching), định nghĩa các tham số ở cấp đường ống (parameters at the pipeline level) và truyền các tham số (passing arguments) trong khi gọi đường ống theo yêu cầu (on-demand) hoặc từ một kích hoạt (trigger). Nó cũng bao gồm việc truyền trạng thái tùy chỉnh (custom-state passing) và các bộ chứa vòng lặp (looping containers), tức là các vòng lặp For-each (For-each iterators).

Biến (Variables)

Các biến (variables) có thể được sử dụng bên trong các đường ống (pipelines) để lưu trữ các giá trị tạm thời (temporary values) và cũng có thể được sử dụng cùng với các tham số (parameters) để cho phép truyền giá trị (passing values) giữa các đường ống (pipelines), luồng dữ liệu (data flows) và các hoạt động khác (other activities).

Nội dung liên quan (Related content)

Dưới đây là các tài liệu tiếp theo quan trọng để khám phá:

Was this article helpful?
0 out of 5 stars
5 Stars 0%
4 Stars 0%
3 Stars 0%
2 Stars 0%
1 Stars 0%
5
Please Share Your Feedback
How Can We Improve This Article?