



















Preview text:
  lOMoAR cPSD| 58702377 Mục lục 
1. Introduction ............................................................................................................... 2 
2. Get to know Apache Spark and Azure Synapse Analytics .................................... 2 
2.1. Cấu trúc cụ thể của Azure Synapse Analytics .................................................. 2 
2.2. How Spark works ............................................................................................... 2 
2.4. Spark pool trong Azure Synapse Analytics: ..................................................... 2 
3. Use Spark in Azure Synapse Analytics .................................................................... 3 
3.1. Running Spark code in notebooks .................................................................... 3 
3.2. Accessing data from a Synapse Spark pool ...................................................... 3 
4. Cài đặt Azure Synapse Analytics ............................................................................. 3 
5. Analyze data with Spark ........................................................................................... 5 
5.1. Tạo Storage Account .......................................................................................... 6 
5.2. Tạo Synapse Workspace................................................................................... 10 
Loading data into a dataframe ............................................................................... 18 
Specifying a dataframe schema ............................................................................. 24 
5.4. Filtering and grouping dataframes ................................................................. 26 
5.5. Using SQL expressions in 
Spark....................................................................28 ................................................ 28 
Creating database objects in the Spark catalog ..................................................... 28 
Using the Spark SQL API to query data ............................................................... 29 
Using SQL code .................................................................................................... 30                  lOMoAR cPSD| 58702377  
AZURE SYNAPSE ANALYTICS  1. Introduction 
Azure Synapse Analytics là một dịch vụ phân tích dữ liệu tích hợp của Microsoft Azure, 
được thiết kế để xử lý khối lượng dữ liệu lớn, kết hợp giữa kho dữ liệu (data warehouse) 
và phân tích dữ liệu lớn (big data analytics). 
Apache Spark là nền tảng mã nguồn mở dùng để xử lý song song dữ liệu lớn, phổ biến 
trong các bài toán "big data". Spark có mặt trên nhiều nền tảng như Azure HDInsight, 
Azure Databricks và Azure Synapse Analytics. 
2. Get to know Apache Spark and Azure Synapse Analytics 
2.1. Cấu trúc cụ thể của Azure Synapse Analytics 
Azure Synapse Analytics kết hợp hai mô hình xử lý dữ liệu: 
+ Kho dữ liệu truyền thống (Data Warehousing): Sử dụng SQL Pools (trước đây gọi là 
Azure SQL Data Warehouse) để lưu trữ và xử lý dữ liệu có cấu trúc. 
+ Phân tích dữ liệu lớn (Big Data Analytics): Sử dụng Spark Pools để xử lý dữ liệu phi 
cấu trúc hoặc bán cấu trúc.  2.2. How Spark works 
Apache Spark là nền tảng xử lý dữ liệu phân tán, cho phép phân tích dữ liệu lớn bằng 
cách phân phối công việc qua nhiều nút trong cụm. 
Cách hoạt động của Spark: 
+ Ứng dụng Spark gồm nhiều tiến trình, được điều phối bởi SparkContext trong 
chương trình chính (driver). 
+ SparkContext kết nối với cluster manager (thường dùng Hadoop YARN) để xin tài 
nguyên và khởi tạo các executor trên các nút trong cụm. 
+ Dữ liệu được xử lý song song và lưu tạm bằng RDD (Resilient Distributed Dataset)  trong bộ nhớ. 
+ SparkContext chuyển ứng dụng thành DAG (directed acyclic graph) – gồm các tác 
vụ thực thi song song trong executor. 
2.4. Spark pool trong Azure Synapse Analytics: 
Spark pool là cụm Spark được triển khai sẵn, giúp chạy các tác vụ Spark. Có thể tạo 
qua Azure portal hoặc Synapse Studio.      lOMoAR cPSD| 58702377
3. Use Spark in Azure Synapse Analytics 
Azure Synapse Analytics hỗ trợ tích hợp Apache Spark. Spark có thể chạy nhiều loại 
ứng dụng khác nhau, bao gồm mã Python, Scala, Java (JAR), và các ngôn ngữ khác. 
3.1. Running Spark code in notebooks 
Azure Synapse Studio cung cấp giao diện notebook tích hợp, giống như Jupyter, giúp 
kết hợp mã và ghi chú Markdown 
3.2. Accessing data from a Synapse Spark pool 
Sử dụng Spark trong Azure Synapse Analytics để làm việc với dữ liệu từ nhiều nguồn  khác nhau như: 
1. Data Lake: Dữ liệu được lưu trữ trong tài khoản lưu trữ chính của Azure Synapse  Analytics workspace.  2. SQL Pools. 
3. Azure SQL hoặc SQL Server: Sử dụng Spark connector for SQL Server để kết nối 
và làm việc với cơ sở dữ liệu SQL. 
4. Azure Cosmos DB: Làm việc với cơ sở dữ liệu phân tích của Azure Cosmos DB 
thông qua Azure Synapse Link for Cosmos DB. 
5. Azure Data Explorer (Kusto): Kết nối với cơ sở dữ liệu Kusto được định nghĩa như 
một dịch vụ liên kết trong workspace. 
6. Hive Metastore: Kết nối với một Hive metastore bên ngoài được định nghĩa như 
một dịch vụ liên kết. 
4. Cài đặt Azure Synapse Analytics 
Đăng ký tài khoản sinh viên trong Azure:   Giao diện trang chủ:      lOMoAR cPSD| 58702377  
Vào access student benefits, tạo tài khoản sinh viên cho Azure   
Làm theo các bước, sau khi xác thực tài khoản sinh viên thành công:        lOMoAR cPSD| 58702377
Giao diện Home sau khi đăng nhập vào tài khoản sinh viên thành công:   
Đây là tài khoản sinh viên Azure liên kết với tài khoản onedrive 
nguyenthihongtho0128@gmail.com 
Mỗi tài khoản Education sẽ nhận được 100$.   
5. Analyze data with Spark 
Ngôn ngữ mặc định trong notebook của Azure Synapse là PySpark – phiên bản Python 
tối ưu cho Spark. Ngoài ra, cũng có thể dùng Scala, SQL, Java, và .NET.      lOMoAR cPSD| 58702377
5.1. Tạo Storage Account 
Trước khi tạo workspace phải tạo a storage account vì Workspace sử dụng một Data 
Lake. Synapse mặc định yêu cầu một Azure Data Lake Storage Gen2 để làm bộ lưu trữ 
chính. Workspace sẽ gắn kết với storage này để xử lý và quản lý dữ liệu. 
Tìm kiếm Storage account trên thanh tìm kiếm: 
Create a storage account tên hongthostorage, nhập các thông số:  
+ Subscription: Gói sử dụng Azure (Azure for Students). 
+ Resource group: Nhóm quản lý các tài nguyên liên quan. 
+ Storage account name: Tên tài khoản lưu trữ (phải duy nhất). 
+ Region: Khu vực địa lý (chọn Central US để sử dụng các dịch vụ tối ưu hơn). 
+ Primary service: chọn Gen2 do dùng với Synapse.   
Chọn Next, ấn tick vào Hierarchical Namespace, bật "Hierarchical Namespace" 
giúp tương thích với Synapse, dễ quản lý và xử lý dữ liệu dạng thư mục, nên rất cần 
thiết khi dùng cho phân tích dữ liệu lớn:      lOMoAR cPSD| 58702377  
Chọn Next, để các thông số ở các tab Networking, Data protection, Encryption  mặc định:        lOMoAR cPSD| 58702377  
Tạo tags: hongthostorage: hongthostorage    Review+Code:      lOMoAR cPSD| 58702377
Ấn Create, chờ deploy:      Tạo thành công:       lOMoAR cPSD| 58702377  
5.2. Tạo Synapse Workspace 
Điền các thông số để tạo workspace hongthoworkspace-spark: 
+ Subscription: Azure for Students + 
Resource group: AzureHongTho 
+ Managed resource group: Azure tự động tạo nhóm này để quản lý tài nguyên phụ trợ  cho workspace      lOMoAR cPSD| 58702377   Workspace details: 
+ Workspace name: Tên của Synapse workspace (hongthoworkspace-spark). 
+ Region: Khu vực triển khai dịch vụ (Central US) cùng Region với Storage Account. 
+ Select Data Lake Storage Gen2: From subscription - Chọn tài khoản lưu trữ đã tạo  sẵn trong subscription.      lOMoAR cPSD| 58702377  
Tạo tài khoản SQL Server Admin ở Tab security: đây là tài khoản quản trị chính cho 
SQL trong workspace, dùng để chạy các truy vấn trên dữ liệu:        lOMoAR cPSD| 58702377  
Giữ nguyên các thông số mặc định cho tabs Networking, tick chọn Allow 
connections from all IP addresses:      lOMoAR cPSD| 58702377  
Tạo tag hongthowp:hongthowp ở Tags:      lOMoAR cPSD| 58702377  
Tab Review+Create: Validation succeeded      lOMoAR cPSD| 58702377   Create, chờ deploy:    Deploy thành công:      lOMoAR cPSD| 58702377  
5.3. Exploring data with dataframes 
Vào Azure Synapse Analytics, chọn workspace hongthoworkspace-spark vừa tạo:   
Chọn Open Synapse Studio:      lOMoAR cPSD| 58702377
5 .3 .  Exploring data with dataframes   
Loading data into a dataframe 
Giả sử có tập dữ liệu product.csv: 
ProductID,ProductName,Category,ListPrice 
771,"Mountain-100 Silver, 38",Mountain Bikes,3399.9900 
772,"Mountain-100 Silver, 42",Mountain Bikes,3399.9900 
773,"Mountain-100 Silver, 44",Mountain Bikes,3399.9900  .... 
Tải file products.csv lên Data Lake Storage:        lOMoAR cPSD| 58702377
Vào properties sẽ thấy có đường dẫn ABFSS Path, ABFSS Path là đường dẫn truy cập 
đến file hoặc thư mục trong Azure Data Lake Storage Gen2 qua giao thức bảo mật  abfss://:   
Tạo Apache Spark Pool trước khi chạy mã, vì đây là cụm tài nguyên (cluster) Spark 
được tạo sẵn trong Synapse để xử lý mã PySpark, Scala, SQL... trên dữ liệu lớn. 
Vào Apache Spark pools, chọn New:   
Điền các thông số để tạo thosparkpool: 
+ Node size family: Loại máy – chọn Memory Optimized cho xử lý dữ liệu. 
+ Node size: Cỡ máy: Small: 4 core, 32 GB RAM. + 
Autoscale: Tự động tăng, giảm số node theo tải. 
+ Number of nodes: Số node tối thiểu, tối đa khi autoscale.      lOMoAR cPSD| 58702377  
Giữ các tham số mặc định cho các Tab Additional settings:   
Review+Code, Vavidation succeeded: