Skip to main content

על עלויות ב SQL Azure

זהו נושא מעניין ומיוחד רק לענן בניגוד ל SQL Server רגיל שאתה משלם על חומר ורישיון, פה אתה משלם על תעבורה ועל זיכרון.

חיוב ברמת ה SQL Azure מתחלק ל2 רמות של חיוב:
1.      עלות בסיסי נתונים שנרכשים.
2.      עלות תעבורה אל בסיס הנתונים וממנו (כאשר ממנו אל ה windows azure לא מחושב).

1.      עלות בסיסי נתונים שנרכשים.
ישנן 2 סוגי שרתים שאפשר לרכוש Web addition and Business addition כאשר השוני בניהם זה גודל הדיסק שאתה רוכש  (ניתן בכל רגע נתון לשדרג את הגודל של בסיס הנתונים – אם יגיע לקצה גבול הגודל ולא תדאגו להגדיל הוא פשוט יתקעלהלן טבלת העלויות:
  • Web Edition
    • $9.99 per database up to 1GB per month
    • $49.95 per database up to 5GB per month
  • Business Edition
    • $99.99 per database up to 10GB per month
    • $199.98 per database up to 20GB per month
    • $299.97 per database up to 30GB per month
    • $399.96 per database up to 40GB per month
    • $499.95 per database up to 50GB per month
רואים ברשימה שמה שקובע זה גודל בסיס הנתונים כך שאם כמשל לקחת גירסה של 1GB הרי ברמה יומית מדובר על 0.33$ וכך זה יחושב, לפי הימים שהיו לך בחודש. אם יש לך 2 בסיס נתונים זה יחושב לפי 0.66$.
כמה בסיסי נתונים יש לך כל יום?
select time,sku,quantity   from sys.database_usage 

דוגמא לתוצאת ריצה:
2.      לחישוב זה של עלות שרת מצטרפת עלות תעבורה אל בסיס הנתונים וממנו:
נתחיל מהשאילתא הבסיסית:
SELECT *
  FROM sys.bandwidth_usage
  WHERE time >= '20110501' 
המחזירה תוצאות מדהימות אלו:
Time – עמודה זו יש שעה למשל רשום 8:00:00:000 זה מסכם מידע מ 8 עד 9 לפי שעון שרת – תלוי באיזה מרכז נמצא השרת (על מיקום ואופי חוות השרתים – זה כבר נשאיר למאיר לדבר....)
Database_name – קשה לנחש... שם בסיס הנתונים עליו התבצע איסוף הנתונים
Direction – גם כאן קשה לנחש... הערכים האפשריים Egress/Ingress – המייצגים  Output\Input כלומר data הנכנס או יוצא מבסיס הנתונים ואליו.
Class – הערכים האפשריים Internal\External . כאשר זהו מידע פנימי (Internal) הוא לא נושא בעלויות... (יללה כולם למסור מידע פנימי). מידע פנימי פירושו מידע היוצא או הנכנס מה windows azure ל SQL Azure  ולא אל שאר העולם.
Time_period – הערכים האפשריים OffPeak\Peak – ופירושו הוא מתי אירע האירוע האם בשעות העומס או לא למשל אם זה שרת שיושב בצפון ארה"ב שעות העומס הן בין 10 בבוקר ל 6 בערב
Quantity – סכום של כמות מידע שעברה ב KB

עכשיו לשוס – איך מחשבים – יום לימודים ארוך – אבל לכן אני כותב כדי להקל....
מידע Internal לא מחוייב.

מידע הזורם פנימה Ingress בזמן OffPeak גם לא מחושב – וזה נכון עד סוף יוני 2011
עלויות תלויות היכן המרכז מחשבים שאתה מתחבר אליו :

בצפון אמריקה או אירופה למשל  -  $0.10 per GB in / $0.15 per GB out
אסיה -  $0.10 per GB in / $0.20 per GB out

נריץ את זה:

select direction,
    time_period,   
    sum(
        case when sys.bandwidth_usage.direction = 'Egress'
                then (0.15 * quantity/ (1024*1024) )    
            when sys.bandwidth_usage.direction = 'Ingress'
                then (0.10 * quantity/ (1024*1024))
        end ) as "cost"
        from sys.bandwidth_usage
        where datepart(yy,time) = datepart(yy, getutcdate()) and    
        datepart(mm,time) = datepart(mm, getutcdate()) and
        class = 'external'
        group by direction, time_period
נקבל את זה:

direction  time_period  cost
---------- ------------ ---------
Egress     OffPeak      0.000006
Ingress    OffPeak      0.000000
Egress     Peak         0.000575
Ingress    Peak         0.010554

מעולה – כל המידע לפנינו
ניסכום ונוריד מה שלא משלמים   (מה לא משלים - משתנה אחת לכמה זמן למשל היה שינוי בראשון ליולי) אפשר כמובן להוסיף פילטר לפי חודש...

select sum(
    case when sys.bandwidth_usage.direction = 'Egress'
            then (0.15 * quantity/ (1024*1024) ) 
        when sys.bandwidth_usage.direction = 'Ingress'
            then (0.10 * quantity/ (1024*1024)) 
    end
    ) as "cost"
 from sys.bandwidth_usage
 where
 class = 'external' and
(direction!='Ingress' and time_period!='offpeak')

והנה עלות התעבורה....

צרפו את עלות התעבורה לעלות השרת ויש לנו עלות ה SQL Azure, יש לזכור שהתנאים והעלויות יכולים להשתנות אולם זה מה שיש כרגע.


עידכון בגירסת יולי הורידו את כל מה שזורם אל הענן..... נעדכן בקרוב 


Comments

Popular posts from this blog

Extended Events in SQL Azure

Hi Everybody   Today an English post about 'Extended Events in SQL Azure', some of you shorten the name to 'EE' and some to 'XEvent'. I Love EE so this is how I will call it in this post.   This feature was introduce in SQL Server 2008 and its should help collecting DATA about what is running in the Server.   More Details about this SQL Server feature can be found in this Link: https://msdn.microsoft.com/library/bb630282.aspx?f=255&MSPPError=-2147217396   There are a few differences between EE in SQL Azure and regular SQL Server: In SQL Server versions the EE are on the Server level and therefore you create sessions on Server. In SQL Azure the server is a virtual entity - so the EE is in DB level and you create the session on DataBase. In SQL Server versions the EE can write to files on the server. SQL Azure does not have drives for files (SQL Azure is PAAS.....:-)). There is an option to write to blob storage, for this we need t...

How to restore deleted Azure Synapse dedicated SQL pool

  Existing dedicated pool can be easily restored from Azure portal or PowerShell command, but for now deleted pool could be restored from PowerShell only! Example: # Connect to Azure with system-assigned managed identity $AzureContext = (Connect-AzAccount -Identity).context # set and store context $AzureContext = Set-AzContext -SubscriptionName $AzureContext.Subscription -DefaultProfile $AzureContext # $AzureContext = Set-AzContext -SubscriptionName $SubscriptionName -DefaultProfile $AzureContext $SubscriptionName="Databases" $ResourceGroupName="stg-rg-we" $ServerName="stg-synapse-we"   $DatabaseName="sql_we_2023_11_07_13_42" $NewDatabaseName="sql_dp_we_deleted" ######################################## $token = (Get-AzAccessToken -ResourceUrl https://database.windows.net).Token $SubscriptionId = "ce088f9e-1111111a3914b" $DedicatedPoolEndPoint = "stg-synapse-we.sql.azuresynapse.net" $DedicatedPoolName = $DatabaseNam...

The journey to the Lakehouse

A long time has passed since the last post, we have gone through a long and tedious journey to adapt what Azure offers us, to our needs. Our needs were simple, the Current Datawarehouse (SQL Server on VM inazure) served the BI. ML teams worked on GCP, we want to let both teams to work on Azure in a platform that will have the ability to scale and will not fail every 2 days. We checked: Snowflake on azure Synapse analytics GCP We decided to go for the full Azure product for the reasons: Migration time support costs Synapse as a platform contains many components, and the challenge was to find what fits  us as an organization and as a group. The knowledge of the people and their abilities influenced the plans. Here's what we planned and what we did: We start to put everything in the Data Lake in parquet or delta format, build on top of Azure ADLS gen 2. We had to move some data to T-SQL compatible platform, so this involves setting up a dedicated Synapse pool , which is a fully man...