Requesting help to understand short-running ADF activity billing

Janne Kujanpää 256 Reputation points
2023-04-27T07:55:36.5633333+00:00

We are trying to compare pricing for AzureIR and for SHIR and got a few issues with the pricing related information.

Pricing page(https://azure.microsoft.com/en-us/pricing/details/data-factory/data-pipeline/) mentions following Integration runtime charges are prorated by the minute and rounded up. but is kind of missing the information about which duration is used to calculate used DIU-hours or hours for data movement activities.

Our logs states that usedDataIntegrationUnits = 4 therefore the minimum billable amount should be 4 DIU * 1/60 hours = 0.066.... According to our logs we have huge number of data movement activities that are marked to have used only 0,016666 hours.

Kusto query:

ADFActivityRun
| where Status == "Succeeded" or Status == "Failed"
| extend Output_ = parse_json(Output)
| extend activityType = Output_.billingReference.activityType, billableDuration = Output_.billingReference.billableDuration, meterType = Output_.billingReference.billableDuration[0].meterType, unit = Output_.billingReference.billableDuration[0].unit, sessionType = Output_.billingReference.billableDuration[0].sessionType, duration = Output_.billingReference.billableDuration[0].duration, usedDataIntegrationUnits = Output_.usedDataIntegrationUnits, ex_usedDataIntegrationUnits = Output_.executionDetails[0].usedDataIntegrationUnits, ex_usedParallelCopies = Output_.executionDetails[0].usedParallelCopies, ex_duration = Output_.executionDetails[0].duration, ex_transferDuration = toint(Output_.executionDetails[0].detailedDurations.transferDuration), ex_queuingDuration = toint(Output_.executionDetails[0].detailedDurations.queuingDuration), ex_preCopyScriptDuration = toint(Output_.executionDetails[0].detailedDurations.preCopyScriptDuration), ex_timeToFirstByte = toint(Output_.executionDetails[0].detailedDurations.timeToFirstByte)
| project-reorder activityType, meterType, unit, duration, usedDataIntegrationUnits, ex_usedDataIntegrationUnits, ex_duration, ex_transferDuration, ex_queuingDuration, ex_preCopyScriptDuration, ex_timeToFirstByte, ex_usedParallelCopies, *
| where activityType == 'DataMovement'
| summarize count() by tostring(duration)

returns following information

User's image

We did some calculations and simply summing Output.billingReference.billableDuration[0].duration and multiplying with price given in the pricing table gives a same sum than in the cost management. Using

max_of(toint(Output_.billingReference.billableDuration[0].duration), 0.06666)

to simulate round up to 4*1/60 almost doubles calculated cost and the the result does not match with cost management anymore.

So the question is: What is the minimum amount of billable DIU-hours?

Azure Data Factory
Azure Data Factory
An Azure service for ingesting, preparing, and transforming data at scale.
11,637 questions
0 comments No comments
{count} votes

2 answers

Sort by: Most helpful
  1. Deleted

    This answer has been deleted due to a violation of our Code of Conduct. The answer was manually reported or identified through automated detection before action was taken. Please refer to our Code of Conduct for more information.


    Comments have been turned off. Learn more

  2. KranthiPakala-MSFT 46,642 Reputation points Microsoft Employee Moderator
    2023-04-29T01:21:26.97+00:00

    Hi @Janne Kujanpää ,

    Welcome to Microsoft Q&A forum and thanks for reaching out here.

    What is the minimum amount of billable DIU-hours?
    The minimum amount of billable Data Integration Unit (DIU)-hours for short-running activities in Azure Data Factory is 1/60th of an hour, or 0.0166667 hours. This means that if an activity runs for less than 1 minute, it will be billed for 0.0166667 hours of DIU usage.

    Kindly go through this document which demonstrates the Azure Data Factory pricing model with detailed examples and do a comparison with your numbers and use the Azure pricing calculator for analysis. Here is the document: Understanding Azure Data Factory pricing through examples

    If you still have questions, I recommend reaching out to billing department so that one of representative can walk you through a sample calculation based on your usage or you can open a support ticket as it is free for billing related questions.

    1. Get one-on-one guidance on Azure pricing
      User's image
    2. Azure provides unlimited support for subscription management, which includes billing, quota adjustments, and account transfers. Please feel free to file a free billing support request following this document: Create an Azure support request
      User's image

    Hope this info helps.


    Please don’t forget to Accept Answer and Yes for "was this answer helpful" wherever the information provided helps you, this can be beneficial to other community members.


Your answer

Answers can be marked as Accepted Answers by the question author, which helps users to know the answer solved the author's problem.