iT邦幫忙

第 12 屆 iT 邦幫忙鐵人賽

DAY 27
0
Microsoft Azure

深入 Azure 雲端服務系列 第 26

Azure Retail Prices REST API 分析全 Azure 服務價格差異 - SQL Query版本

接著想要分析方式能支援 SQL

  • 能做到群組分析
  • 想要知道是否服務價格有變動,並差異多少,何時變動

概念 :
假如只想要自己做來分析,可以在 local db 或是 odbc csv 匯入 csv 就能支援 sql 分析功能
或是簡單粗暴的 JSON + LINQPad C# 做分析

void Main()
{
	var path = @"C:\Users\HanYang\Downloads\AzurePrices.json";
	var json = File.ReadAllText(path);
	var prices = JsonConvert.DeserializeObject<List<Price>>(json);

	var result = (
		from t1 in prices
		group t1 by new {t1.serviceName,t1.type} into g
		select new {
			g.Key,count=g.Count()
			,minUnitPrice = g.Min(_=>_.unitPrice),maxUnitPrice = g.Max(_=>_.unitPrice)
		}
	);
	Console.WriteLine(result);
}

public class Price
{
	public string currencyCode { get; set; }
	public double tierMinimumUnits { get; set; }
	public double retailPrice { get; set; }
	public double unitPrice { get; set; }
	public string armRegionName { get; set; }
	public string location { get; set; }
	public DateTime effectiveStartDate { get; set; }
	public string meterId { get; set; }
	public string meterName { get; set; }
	public string productId { get; set; }
	public string skuId { get; set; }
	public string productName { get; set; }
	public string skuName { get; set; }
	public string serviceName { get; set; }
	public string serviceId { get; set; }
	public string serviceFamily { get; set; }
	public string unitOfMeasure { get; set; }
	public string type { get; set; }
	public bool isPrimaryMeterRegion { get; set; }
	public string armSkuName { get; set; }
	public string reservationTerm { get; set; }
}

假如想長久自動化分析的話,會需要使用到排程器 + 數據庫 + SQL 作分析
在 Azure 可以用 Azure SQL 跟 Azure Data Factory
可以將 Azure API 轉成 Table 資料


上一篇
Azure Retail Prices REST API 分析全 Azure 服務價格差異 - JSON 轉 Excel版本
下一篇
Azure CLI 本質 Restful API
系列文
深入 Azure 雲端服務29

尚未有邦友留言

立即登入留言