1. Xử lý khối lượng đơn hàng cao (200k/h)
Kiến trúc
- Database per Service:
OrderServiceDB(Azure SQL Managed Instance). - Partitioning: Bảng
Ordersđược partition theoOrderDate(monthly). - CDC + Azure Data Factory: CDC bật trên
Orders, ADF copy CDC sang Data Lake mỗi 5 phút. - Synapse DW: Đọc dữ liệu từ Data Lake, tạo view
vw_OrderStatsđể phân tích thời gian thực. - Backup: PITR + LTR (30 ngày) cho OLTP, weekly full + differential cho DW.
Kết quả
- Latency ghi < 30 ms, throughput > 10 k TPS.
- Analytic query trả về < 2 s nhờ partition và column‑store.
- RPO = 5 phút, RTO = 15 phút.
2. Multi‑tenant SaaS với cách ly dữ liệu
Kiến trúc
- Elastic Pool chứa nhiều database nhỏ, mỗi tenant có database riêng (
Tenant_123,Tenant_456). - Shared Schema: mỗi DB có cùng schema (
dbo.Customers,dbo.Orders). - Backup: Full backup cho từng DB hàng ngày, log backup mỗi 10 phút.
- Restore: Khi tenant yêu cầu khôi phục, dùng
RESTORE DATABASE Tenant_123 FROM DISK = ... WITH REPLACE. - Security: Managed Identity cho App Service, Role‑Based Access Control trên mỗi DB.
Kết quả
- Isolation mạnh, không có cross‑tenant lock.
- Chi phí tối ưu nhờ Elastic Pool.
- Thời gian restore < 3 phút cho mỗi tenant.
3. GDPR dữ liệu xóa an toàn
Kiến trúc
- Row‑Level Security (RLS) để chỉ cho phép truy cập dữ liệu của tenant.
- Soft‑Delete: Thêm cột
IsDeleted BIT,DeletedAt DATETIME2. - Scheduled Job (
SQL AgenthoặcAzure Automation) chạy mỗi ngày, xóa vĩnh viễn các bản ghiIsDeleted = 1vàDeletedAt < DATEADD(day, -30, GETUTCDATE()). - Backup Encryption: Sử dụng
WITH ENCRYPTIONvàTDE.
Kết quả
- Tuân thủ GDPR, dữ liệu được xóa hoàn toàn sau 30 ngày.
- Không ảnh hưởng tới hiệu năng truy vấn do index trên
IsDeleted.
4. Data Lake ingestion cho báo cáo lịch sử
Kiến trúc
- SQL Server (on‑prem) → Self‑hosted IR → ADF Copy sang ADLS raw (Parquet).
- Mapping Data Flow chuyển đổi, làm sạch, lưu vào curated layer.
- Synapse Serverless query trực tiếp từ curated layer để tạo báo cáo Power BI.
- Retention: raw giữ 30 ngày, curated 2 năm.
Kết quả
- Giảm tải trên OLTP DB 30 % nhờ offload báo cáo.
- Thời gian cập nhật báo cáo < 5 phút.
- Chi phí lưu trữ tối ưu bằng tiering.
File thuộc mục SQL Deep‑Dive của senior‑dotnet‑wiki.