Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion src/templates/finops-hub/.build.config
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,8 @@
"modules/Microsoft.FinOpsHubs/Analytics/scripts/IngestionSetup_HubInfra.kql",
"modules/Microsoft.FinOpsHubs/Analytics/scripts/IngestionSetup_RawTables.kql",
"modules/Microsoft.FinOpsHubs/Analytics/scripts/IngestionSetup_v1_0.kql",
"modules/Microsoft.FinOpsHubs/Analytics/scripts/IngestionSetup_v1_2.kql"
"modules/Microsoft.FinOpsHubs/Analytics/scripts/IngestionSetup_v1_2.kql",
"modules/Microsoft.FinOpsHubs/Analytics/scripts/IngestionSetup_v1_4.kql"
]
},
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -378,6 +378,7 @@ module ingestion_VersionedScripts '../../fx/hub-database.bicep' = if (useAzure)
scripts: {
v1_0: loadTextContent('scripts/IngestionSetup_v1_0.kql')
v1_2: loadTextContent('scripts/IngestionSetup_v1_2.kql')
v1_4: loadTextContent('scripts/IngestionSetup_v1_4.kql')
}
continueOnErrors: continueOnErrors
forceUpdateTag: forceUpdateTag
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -335,6 +335,102 @@
.alter table CommitmentDiscountUsage_raw policy streamingingestion disable


//===| Contract commitment |============================================================================================
// Supported versions:
// - FOCUS 1.3+ (no Cost Management export shipped yet)
//======================================================================================================================

// ContractCommitment_raw table -- Create the table if it doesn't exist
.create-merge table ContractCommitment_raw ( ignore: string )

// ContractCommitment_raw table -- Remove all columns to allow changing column types
.alter table ContractCommitment_raw ( ignore: string )

// ContractCommitment_raw table -- Redefine all columns
.alter table ContractCommitment_raw (
BenefitCategory: string, // FOCUS 1.4+
BillingCurrency: string, // FOCUS 1.3+
ContractCommitmentApplicability: string, // FOCUS 1.4+ (JSON)
ContractCommitmentCategory: string, // FOCUS 1.3+
ContractCommitmentCost: real, // FOCUS 1.3+
ContractCommitmentId: string, // FOCUS 1.3+
ContractCommitmentPeriodEnd: datetime, // FOCUS 1.3+
ContractCommitmentPeriodStart: datetime, // FOCUS 1.3+
ContractCommitmentQuantity: real, // FOCUS 1.3+
ContractCommitmentType: string, // FOCUS 1.3+
ContractCommitmentUnit: string, // FOCUS 1.3+
ContractId: string, // FOCUS 1.3+
ContractPeriodEnd: datetime, // FOCUS 1.3+
ContractPeriodStart: datetime, // FOCUS 1.3+
Created: datetime, // FOCUS 1.4+
DiscountPercentage: real, // FOCUS 1.4+
DurationType: string, // FOCUS 1.4+
FulfillmentInterval: string, // FOCUS 1.4+
InvoiceIssuerName: string, // FOCUS 1.3+
LastUpdated: datetime, // FOCUS 1.4+
LifecycleStatus: string, // FOCUS 1.4+
Model: string, // FOCUS 1.4+
OfferCategory: string, // FOCUS 1.4+
PaymentInterval: string, // FOCUS 1.4+
PaymentModel: string, // FOCUS 1.4+
PaymentUpfrontPercentage: real, // FOCUS 1.4+
PricingCurrency: string, // FOCUS 1.3+
PricingCurrencyContractCommitmentCost: real, // FOCUS 1.4+
x_SourceName: string, // Hubs v1_3+
x_SourceProvider: string, // Hubs v1_3+
x_SourceType: string, // Hubs v1_3+
x_SourceVersion: string // Hubs v1_3+
)

// ContractCommitment_raw ingestion mapping
.create-or-alter table ContractCommitment_raw ingestion parquet mapping "ContractCommitment_raw_mapping"
```
[
{ "Column": "BenefitCategory", "Properties": { "Field": "BenefitCategory" } },
{ "Column": "BillingCurrency", "Properties": { "Field": "BillingCurrency" } },
{ "Column": "ContractCommitmentApplicability", "Properties": { "Field": "ContractCommitmentApplicability" } },
{ "Column": "ContractCommitmentCategory", "Properties": { "Field": "ContractCommitmentCategory" } },
{ "Column": "ContractCommitmentCost", "Properties": { "Field": "ContractCommitmentCost" } },
{ "Column": "ContractCommitmentId", "Properties": { "Field": "ContractCommitmentId" } },
{ "Column": "ContractCommitmentPeriodEnd", "Properties": { "Field": "ContractCommitmentPeriodEnd" } },
{ "Column": "ContractCommitmentPeriodStart", "Properties": { "Field": "ContractCommitmentPeriodStart" } },
{ "Column": "ContractCommitmentQuantity", "Properties": { "Field": "ContractCommitmentQuantity" } },
{ "Column": "ContractCommitmentType", "Properties": { "Field": "ContractCommitmentType" } },
{ "Column": "ContractCommitmentUnit", "Properties": { "Field": "ContractCommitmentUnit" } },
{ "Column": "ContractId", "Properties": { "Field": "ContractId" } },
{ "Column": "ContractPeriodEnd", "Properties": { "Field": "ContractPeriodEnd" } },
{ "Column": "ContractPeriodStart", "Properties": { "Field": "ContractPeriodStart" } },
{ "Column": "Created", "Properties": { "Field": "Created" } },
{ "Column": "DiscountPercentage", "Properties": { "Field": "DiscountPercentage" } },
{ "Column": "DurationType", "Properties": { "Field": "DurationType" } },
{ "Column": "FulfillmentInterval", "Properties": { "Field": "FulfillmentInterval" } },
{ "Column": "InvoiceIssuerName", "Properties": { "Field": "InvoiceIssuerName" } },
{ "Column": "LastUpdated", "Properties": { "Field": "LastUpdated" } },
{ "Column": "LifecycleStatus", "Properties": { "Field": "LifecycleStatus" } },
{ "Column": "Model", "Properties": { "Field": "Model" } },
{ "Column": "OfferCategory", "Properties": { "Field": "OfferCategory" } },
{ "Column": "PaymentInterval", "Properties": { "Field": "PaymentInterval" } },
{ "Column": "PaymentModel", "Properties": { "Field": "PaymentModel" } },
{ "Column": "PaymentUpfrontPercentage", "Properties": { "Field": "PaymentUpfrontPercentage" } },
{ "Column": "PricingCurrency", "Properties": { "Field": "PricingCurrency" } },
{ "Column": "PricingCurrencyContractCommitmentCost", "Properties": { "Field": "PricingCurrencyContractCommitmentCost" } },
{ "Column": "x_SourceName", "Properties": { "Field": "x_SourceName" } },
{ "Column": "x_SourceProvider", "Properties": { "Field": "x_SourceProvider" } },
{ "Column": "x_SourceType", "Properties": { "Field": "x_SourceType" } },
{ "Column": "x_SourceVersion", "Properties": { "Field": "x_SourceVersion" } }
]
```

// ContractCommitment_raw retention policy (clear historical data)
.alter-merge table ContractCommitment_raw policy retention softdelete = 0d recoverability = disabled

// ContractCommitment_raw retention policy (set the user-defined retention period)
.alter-merge table ContractCommitment_raw policy retention softdelete = $$rawRetentionInDays$$d recoverability = disabled

// Disable ContractCommitment_raw streaming ingestion (required for Fabric)
.alter table ContractCommitment_raw policy streamingingestion disable


//===| Costs |==========================================================================================================
// Supported versions:
// - MS: 1.0, 1.0-preview(v1) -- See https://aka.ms/costmgmt/exports/focus
Expand All @@ -359,6 +455,11 @@

// Costs_raw table -- Redefine all columns
.alter table Costs_raw (
AllocatedMethodDetails: string, // FOCUS 1.3+ (JSON)
AllocatedMethodId: string, // FOCUS 1.3+
AllocatedResourceId: string, // FOCUS 1.3+
AllocatedResourceName: string, // FOCUS 1.3+
AllocatedTags: string, // FOCUS 1.3+ (JSON)
AvailabilityZone: string, // FOCUS 0.5+
BilledCost: real, // FOCUS 0.5+
BillingAccountId: string, // FOCUS 0.5+
Expand All @@ -385,9 +486,11 @@
CommitmentDiscountUnit: string, // FOCUS 1.1+
ConsumedQuantity: real, // FOCUS 1.0+
ConsumedUnit: string, // FOCUS 1.0+
ContractApplied: string, // FOCUS 1.3+ (JSON)
ContractedCost: real, // FOCUS 1.0+
ContractedUnitPrice: real, // FOCUS 1.0+
EffectiveCost: real, // FOCUS 1.0-preview+
HostProviderName: string, // FOCUS 1.3+
InvoiceId: string, // FOCUS 1.2+
InvoiceIssuerName: string, // FOCUS 0.5+
ListCost: real, // FOCUS 1.0-preview+
Expand All @@ -406,6 +509,7 @@
ResourceType: string, // FOCUS 1.0-preview+
ServiceCategory: string, // FOCUS 0.5+
ServiceName: string, // FOCUS 0.5+
ServiceProviderName: string, // FOCUS 1.3+
ServiceSubcategory: string, // FOCUS 1.1+
SkuId: string, // FOCUS 1.0-preview+
SkuMeter: string, // FOCUS 1.1+
Expand Down
Loading