Home
%3CLINGO-SUB%20id%3D%22lingo-sub-901006%22%20slang%3D%22en-US%22%3ESupport%20for%20Azure%20Databricks%20Instance%20pool%20for%20operationalizing%20Databricks%20workloads%20in%20Data%20Factory%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-901006%22%20slang%3D%22en-US%22%3E%3CP%3EWe%20have%20added%20support%20for%20Azure%20Databricks%20%3CA%20href%3D%22https%3A%2F%2Fdocs.azuredatabricks.net%2Fclusters%2Finstance-pools%2Findex.html%22%20target%3D%22_self%22%20rel%3D%22nofollow%20noopener%20noreferrer%20noopener%20noreferrer%22%3Einstance%20pools%3C%2FA%3E%20in%20Azure%20Data%20Factory%20for%20orchestrating%20%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fazure%2Fdata-factory%2Ftransform-data-databricks-notebook%22%20target%3D%22_self%22%20rel%3D%22noopener%20noreferrer%20noopener%20noreferrer%22%3Enotebooks%3C%2FA%3E%2C%20%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fazure%2Fdata-factory%2Ftransform-data-databricks-jar%22%20target%3D%22_self%22%20rel%3D%22noopener%20noreferrer%20noopener%20noreferrer%22%3Ejars%3C%2FA%3E%20and%20%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fazure%2Fdata-factory%2Ftransform-data-databricks-python%22%20target%3D%22_self%22%20rel%3D%22noopener%20noreferrer%20noopener%20noreferrer%22%3Epython%3C%2FA%3E%20code%20(using%20%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fazure%2Fdata-factory%2Fcompute-linked-services%23azure-databricks-linked-service%22%20target%3D%22_self%22%20rel%3D%22noopener%20noreferrer%20noopener%20noreferrer%22%3Edatabricks%20activities%3C%2FA%3E%2C%20code-based%20ETL)%2C%20which%20in%20turn%20will%20leverage%20the%20pool%20feature%20for%20quicker%20job%20start-up.%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EThis%20remarkably%20helps%20if%20you%20have%20chained%20executions%20of%20databricks%20activities%20orchestrated%20through%20Azure%20Data%20Factory.%20You%20can%20also%20leverage%20a%20single%20pool%20through%20different%20pipelines%20as%20long%20as%20they%20share%20the%20same%20databricks%20linked%20service%20or%20pool%20id%20from%20another%20linked%20service%20%3CEM%3E(be%20mindful%20of%20databricks%20%3CA%20href%3D%22https%3A%2F%2Fdocs.azuredatabricks.net%2Fjobs.html%22%20target%3D%22_self%22%20rel%3D%22nofollow%20noopener%20noreferrer%20noopener%20noreferrer%22%3Econcurrency%20limits%3C%2FA%3E%20during%20planning%20so%20that%20you%20don't%20overload%20a%20single%20workspace%20causing%20job%20failures)%3C%2FEM%3E.%3C%2FP%3E%0A%3CP%3ELower%20start-up%20times%20would%20not%20only%20reduce%20the%20overall%20pipeline%20execution%20time%20but%20also%20reduce%20the%20total%20VM%20cost%20incurred%20during%20cluster%20start-ups.%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%3CEM%3E%3CU%3ENote%3A%3C%2FU%3E%20Instance%20Pools%20feature%20is%20currently%20in%20public%20preview.%20We%20do%20see%20the%20start-up%20latency%20coming%20down%20from%205-7%20mins.%20to%20around%202%20mins.%20This%20way%2C%20you%20can%20leverage%20job%20clusters%20(where%20each%20databricks%20activity%20creates%20a%20new%20job%20cluster)%20which%20are%20more%20reliable%20and%20cost-effective%20for%20running%20automated%20jobs%20and%20still%20cut%20down%20on%20the%20start-up%20latency%20of%20the%20job%20clusters.%3C%2FEM%3E%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%3CU%3E%3CSTRONG%3EPrerequisite%3C%2FSTRONG%3E%3C%2FU%3E%3A%20You%20should%20create%20a%20pool%20in%20your%20databricks%20workspace%20before%20leveraging%20it%20in%20Azure%20Data%20Factory.%20To%20create%20a%20pool%20refer%20to%20the%20%3CA%20href%3D%22https%3A%2F%2Fdocs.azuredatabricks.net%2Fclusters%2Finstance-pools%2Fcreate.html%22%20target%3D%22_self%22%20rel%3D%22nofollow%20noopener%20noreferrer%20noopener%20noreferrer%22%3Edocumentation%3C%2FA%3E.%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%3CU%3E%3CSTRONG%3EGetting%20started%20in%20Data%20Factory%3C%2FSTRONG%3E%3C%2FU%3E%3A%3C%2FP%3E%0A%3CUL%3E%0A%3CLI%3ECreate%20Databricks%20Linked%20Service%20and%20reference%20an%20existing%20instance%20pool.%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-left%22%20style%3D%22width%3A%20999px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Fgxcuf89792.i.lithium.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F136017i67FEFA36B75DD8D8%2Fimage-size%2Flarge%3Fv%3D1.0%26amp%3Bpx%3D999%22%20alt%3D%22linkedService_using_instancePools.png%22%20title%3D%22linkedService_using_instancePools.png%22%20%2F%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3EYou%20can%20create%20databricks%20activities%20just%20the%20way%20you%20earlier%20did%2C%20and%20reference%20the%20above-created%20databricks%20linked%20service%20to%20get%20started.%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-TEASER%20id%3D%22lingo-teaser-901006%22%20slang%3D%22en-US%22%3E%3CP%3E%3CSTRONG%3EThe%20Problem%3A%26nbsp%3B%3C%2FSTRONG%3EJob%20start-up%20latency%20of%205-7%20mins.%20when%20operationalizing%20databricks%20workloads%20from%20Azure%20Data%20Factory.%3C%2FP%3E%0A%3CP%3ENow%2C%20mitigate%20it%20using%20Instance%20Pool%20in%20Azure%20Databricks.%3C%2FP%3E%3C%2FLINGO-TEASER%3E%3CLINGO-LABS%20id%3D%22lingo-labs-901006%22%20slang%3D%22en-US%22%3E%3CLINGO-LABEL%3EAzure%20Data%20Factory%3C%2FLINGO-LABEL%3E%3CLINGO-LABEL%3EAzure%20ETL%3C%2FLINGO-LABEL%3E%3CLINGO-LABEL%3EBig%20Data%20Analytics%3C%2FLINGO-LABEL%3E%3C%2FLINGO-LABS%3E
Microsoft

We have added support for Azure Databricks instance pools in Azure Data Factory for orchestrating notebooks, jars and python code (using databricks activities, code-based ETL), which in turn will leverage the pool feature for quicker job start-up. 

 

This remarkably helps if you have chained executions of databricks activities orchestrated through Azure Data Factory. You can also leverage a single pool through different pipelines as long as they share the same databricks linked service or pool id from another linked service (be mindful of databricks concurrency limits during planning so that you don't overload a single workspace causing job failures).

Lower start-up times would not only reduce the overall pipeline execution time but also reduce the total VM cost incurred during cluster start-ups. 

 

Note: Instance Pools feature is currently in public preview. We do see the start-up latency coming down from 5-7 mins. to around 2 mins. This way, you can leverage job clusters (where each databricks activity creates a new job cluster) which are more reliable and cost-effective for running automated jobs and still cut down on the start-up latency of the job clusters.

 

Prerequisite: You should create a pool in your databricks workspace before leveraging it in Azure Data Factory. To create a pool refer to the documentation

 

Getting started in Data Factory:

  • Create Databricks Linked Service and reference an existing instance pool.

linkedService_using_instancePools.png

You can create databricks activities just the way you earlier did, and reference the above-created databricks linked service to get started.