נבדק לאחרונה: מאי 2026
בנו את שירותי AWS של בחינת DP-900 עם Terraform פשוט — בלוק אחד בכל פעם, כאשר כל אחד מהם מקושר בחזרה לתחום במבחן. אותו הקוד עובד גם ב-OpenTofu.
עד סוף מעבדה זו, תספקו, באמצעות Terraform פשוט, את שלושת מבני פלטפורמת הנתונים שנבדקים ב-DP-900 — חשבון אחסון של Azure עבור נתוני בלוב/אנליטיקה עם מדיניות מחזור חיים, מסד נתונים יחסי של Azure SQL בשרת ברמת Basic, וחשבון Cosmos DB ללא שרת עבור JSON לא יחסי. ערימה אחת, שלושה בסיסים, כל אחד קשור לתחום DP-900.
כל משאב הוא Terraform פשוט. שחררו את הקטעים לקובץ main.tf יחיד, הפעילו terraform init, ולאחר מכן terraform apply צעד אחר צעד.
>= 1.5 או OpenTofu >= 1.6.az login).שק מעורב — שניים זולים, אחד עם חשבון ממשי:
הערימה כולה עולה כ-5-8$ לחודש בזמן ריצה. מחקו מיד כשתסיימו — מסד הנתונים של SQL הוא הפריט היחיד שחויב 24/7 ללא קשר אם אתם משתמשים בו.
פתיח Azure סטנדרטי מאוחד לבלוק אחד: הצמדת azurerm ~> 4.0, רישום ספקי random ו-random_password (נשתמש בשניהם — random_id למתן שמות ייחודיים למשאבים, random_password לסיסמת מנהל ה-SQL), ויצירת קבוצת המשאבים.
terraform {
required_version = ">= 1.5"
required_providers {
azurerm = {
source = "hashicorp/azurerm"
version = "~> 4.0"
}
random = {
source = "hashicorp/random"
version = "~> 3.6"
}
}
}
provider "azurerm" {
features {}
}
resource "random_id" "suffix" {
byte_length = 2
}
locals {
tags = {
Project = "certlabpro-dp-900"
ManagedBy = "terraform"
}
}
resource "azurerm_resource_group" "main" {
name = "certlabpro-dp-900-rg"
location = "eastus"
tags = local.tags
}Azure Storage הוא בסיס הנתונים האנליטי שכל שאלה ב-DP-900 מניחה (חלוקת שכבות Hot / Cool / Archive, מדיניות מחזור החיים המעבירה נתונים קרים אוטומטית). אנו מפעילים מרחב שמות היררכי (is_hns_enabled = true) אשר ממיר את החשבון ל-Azure Data Lake Storage Gen2 — הגרסה ש-Azure Synapse, Databricks ו-Fabric מצפים לה עבור עומסי עבודה אנליטיים.
מדיניות מחזור החיים היא מנגנון אופטימיזציית העלויות הנבדק ביותר ב-DP-900: שכבת Hot לנתונים פעילים, Cool לאחר 30 יום, Archive לאחר 90 יום. שלוש שכבות, שלושה חלונות שמירה — הבחינה תנקוב במספרים אלה בתרחישים.
resource "azurerm_storage_account" "analytics" {
name = "dp900data${random_id.suffix.hex}"
resource_group_name = azurerm_resource_group.main.name
location = azurerm_resource_group.main.location
account_tier = "Standard"
account_replication_type = "LRS"
account_kind = "StorageV2"
is_hns_enabled = true # Data Lake Storage Gen2
https_traffic_only_enabled = true
min_tls_version = "TLS1_2"
allow_nested_items_to_be_public = false
tags = local.tags
}
resource "azurerm_storage_management_policy" "analytics" {
storage_account_id = azurerm_storage_account.analytics.id
rule {
name = "tier-cold-data"
enabled = true
filters {
blob_types = ["blockBlob"]
prefix_match = ["raw/"]
}
actions {
base_blob {
tier_to_cool_after_days_since_modification_greater_than = 30
tier_to_archive_after_days_since_modification_greater_than = 90
}
}
}
}נתונים יחסיים ב-Azure משמעם Azure SQL Database (PaaS, מנוהל באופן מלא). DP-900 בודק את ההבחנה בין SQL Database (מסד נתונים יחיד, ללא שרת או מבוסס DTU, PaaS) לבין SQL Managed Instance (תאימות כמעט 100% ל-SQL Server, PaaS מופע גדול) לבין SQL Server על VM (IaaS, שליטה מלאה).
אנו מספקים מיכל לוגי של SQL Server (נקודת הקצה של מחרוזת החיבור) בתוספת מסד נתונים אחד תחתיו בשכבת Basic — ה-SKU בתשלום הזול ביותר. הצפנה תמיד במעבר (TLS 1.2) נאכפת. כלל חומת האש מאפשר לשירותי Azure להתחבר (השאלה הטיפוסית ב-DP-900 "איך App Service שלי מדבר עם ה-SQL שלי?" — כלל זה הוא התשובה).
resource "random_password" "sql_admin" {
length = 24
special = true
min_upper = 2
min_lower = 2
min_numeric = 2
}
resource "azurerm_mssql_server" "main" {
name = "certlabpro-dp-900-${random_id.suffix.hex}"
resource_group_name = azurerm_resource_group.main.name
location = azurerm_resource_group.main.location
version = "12.0"
administrator_login = "sqladmin"
administrator_login_password = random_password.sql_admin.result
minimum_tls_version = "1.2"
public_network_access_enabled = true
tags = local.tags
}
resource "azurerm_mssql_database" "main" {
name = "certlabpro-dp-900-db"
server_id = azurerm_mssql_server.main.id
sku_name = "Basic"
max_size_gb = 2
zone_redundant = false
tags = local.tags
}
resource "azurerm_mssql_firewall_rule" "allow_azure_services" {
name = "AllowAzureServices"
server_id = azurerm_mssql_server.main.id
start_ip_address = "0.0.0.0"
end_ip_address = "0.0.0.0" # 0.0.0.0/0.0.0.0 = "allow Azure services" sentinel
}נתונים לא יחסיים ב-Azure משמעם Azure Cosmos DB, מסד נתונים מרובה API מבוזר גלובלית. DP-900 בודק ספציפית את הבחנת ה-API — NoSQL (Core / SQL API, הנפוץ ביותר), MongoDB, Cassandra, Gremlin, ו-Table. אנו משתמשים ב-Core SQL API + מצב קיבולת ללא שרת (תשלום לפי בקשה, ללא חיוב במצב סרק — שאלת האנטי-תבנית של עלויות DP-900 עבור ללא-שרת לעומת מוקצה).
consistency_level = "Session" היא ברירת המחדל של Cosmos DB ורמת העקביות הנבדקת ביותר ב-DP-900: ליניאריזציה פר-הפעלה עם השהייה מצוינת. ארבעת האחרות — Strong, Bounded staleness, Eventual, Consistent prefix — הן נושאים תיאורטיים לבחינה.
עם שלושת בסיסי הנתונים במקום (בלוב בצעד 2, SQL בצעד 3, Cosmos בצעד 4), לתחום מושגי נתונים ליבה של DP-900 יש צורה מוחשית: "איזה שירות Azure לאיזה מבנה נתונים" נענה על ידי שלושת המשאבים הללו.
resource "azurerm_cosmosdb_account" "main" {
name = "certlabpro-dp-900-${random_id.suffix.hex}"
resource_group_name = azurerm_resource_group.main.name
location = azurerm_resource_group.main.location
offer_type = "Standard"
kind = "GlobalDocumentDB" # Core (SQL) API
capabilities {
name = "EnableServerless"
}
consistency_policy {
consistency_level = "Session"
}
geo_location {
location = azurerm_resource_group.main.location
failover_priority = 0
}
tags = local.tags
}פקודת terraform destroy סטנדרטית מפרקת את כל מה שבמעבדה זו. שתי הערות:
random_password — היא מאוחסנת במצב Terraform. אם אתם מבצעים קומיט למצב ל-git, ביצעתם קומיט לסיסמה. השתמשו ב-remote state backend (Azure Storage עם גרסאות + מחיקה רכה) בכל הגדרה לא טריוויאלית.DP-900 מכסה שירותי נתונים רבים שמעבדה זו אינה יכולה להכיל — Azure Synapse Analytics (מכוסה ב-DP-600/DP-700), Azure Databricks, Azure Data Factory, Microsoft Fabric, Azure Stream Analytics, Event Hubs, Azure SQL Managed Instance, Azure Database for PostgreSQL / MySQL / MariaDB, Power BI, ושירותי הניתוח של Azure שחויבים ביוקר בזמן סרק (Synapse dedicated SQL pools, dedicated Spark pools).
אנו נצמדים לשלוש צורות נתונים עיקריות (בלוב/אנליטי, יחסי, לא יחסי) מכיוון ש-DP-900 היא במהותה בחינה של איזה שירות לאיזו צורה. ברגע שתפנימו את שלושת הבסיסים שמעבדה זו מספקת, כל שאלה אחרת ב-DP-900 הופכת לשאלת שכבות מעליהם.
לכיסוי שירות-אחר-שירות, ראו את קטעי העיון, המדריך, והEditorial בדף אישור זה.