{"id":41517,"date":"2023-10-31T00:13:00","date_gmt":"2023-10-31T07:13:00","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/premier-developer\/?p=41517"},"modified":"2023-10-30T16:21:47","modified_gmt":"2023-10-30T23:21:47","slug":"part-5-unlock-the-power-of-azure-data-factory-a-guide-to-boosting-your-data-ingestion-process","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/premier-developer\/part-5-unlock-the-power-of-azure-data-factory-a-guide-to-boosting-your-data-ingestion-process\/","title":{"rendered":"Part 5 &#8211; Unlock the Power of Azure Data Factory: A Guide to Boosting Your Data Ingestion Process"},"content":{"rendered":"<p><a href=\"https:\/\/www.linkedin.com\/in\/john-folberth\/\" target=\"_blank\" rel=\"noopener\">John Folberth<\/a>\u00a0and\u00a0<a href=\"https:\/\/www.linkedin.com\/in\/joseph-t-fitzgerald\/\" target=\"_blank\" rel=\"noopener\">Joe Fitzgerald<\/a>\u00a0share sample guidance for developing and deploying an Azure Data Factory into multiple environments.<\/p>\n<hr \/>\n<h2 id=\"toc-hId-565626877\" aria-level=\"2\"><span data-contrast=\"none\">Introduction<\/span><span data-ccp-props=\"{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;201341983&quot;:0,&quot;335559738&quot;:40,&quot;335559739&quot;:0,&quot;335559740&quot;:259}\">\u00a0<\/span><\/h2>\n<p><a href=\"https:\/\/techcommunity.microsoft.com\/t5\/healthcare-and-life-sciences\/part-1-unlock-the-power-of-azure-data-factory-a-guide-to\/ba-p\/3824896\" target=\"_self\" rel=\"noopener\">Part 1<\/a><\/p>\n<ol class=\"lia-list-style-type-lower-alpha\">\n<li>Architecture and Scenario<\/li>\n<li>Creating resources in Azure<\/li>\n<li>Create Azure Storage Containers<\/li>\n<li>Create Azure Key Vaults<\/li>\n<li>Create Azure Data Factory: With Key Vault Access<\/li>\n<\/ol>\n<p data-unlink=\"true\"><a href=\"https:\/\/techcommunity.microsoft.com\/t5\/healthcare-and-life-sciences\/part-2-unlock-the-power-of-azure-data-factory-a-guide-to\/ba-p\/3838241\" target=\"_self\" rel=\"noopener\">Part 2\u00a0<\/a><\/p>\n<ol class=\"lia-list-style-type-lower-alpha\">\n<li>Configure Azure Data Factory Source Control<\/li>\n<li>Construct Azure Data Factory Data Pipeline<\/li>\n<li>Publishing Concept for Azure Data Factory<\/li>\n<li>Configure Deployed Azure Resources.<\/li>\n<\/ol>\n<p><a href=\"https:\/\/techcommunity.microsoft.com\/t5\/healthcare-and-life-sciences\/part-3-unlock-the-power-of-azure-data-factory-a-guide-to\/ba-p\/3852501\" target=\"_self\" rel=\"noopener\">Part 3<\/a><\/p>\n<ol class=\"lia-list-style-type-lower-alpha\">\n<li>The YAML Pipeline Structure<\/li>\n<li>The Publish Process<\/li>\n<li>ARM Template Parameterization<\/li>\n<li>ADF ARM Template Deployment<\/li>\n<\/ol>\n<p><a href=\"https:\/\/techcommunity.microsoft.com\/t5\/healthcare-and-life-sciences\/part-4-unlock-the-power-of-azure-data-factory-a-guide-to\/ba-p\/3872590\" target=\"_self\" rel=\"noopener\">Part 4<\/a><\/p>\n<ol class=\"lia-list-style-type-lower-alpha\">\n<li>How to use Azure DevOps Pipeline Templates<\/li>\n<\/ol>\n<p><span data-contrast=\"auto\">This section will build on that and include how to build\/deploy larger Data Factories which leverage\u00a0<\/span><a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/azure-resource-manager\/templates\/linked-templates?tabs=azure-powershell\" target=\"_blank\" rel=\"noopener noreferrer\"><span data-contrast=\"none\">Azure Resource Manager Linked Templates<\/span><\/a><span data-contrast=\"auto\">\u00a0for deployment.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/p>\n<p>&nbsp;<\/p>\n<h2 id=\"toc-hId--1241827586\" aria-level=\"2\"><span data-contrast=\"none\">When Linked Templates Are Required<\/span><span data-ccp-props=\"{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;201341983&quot;:0,&quot;335559738&quot;:40,&quot;335559739&quot;:0,&quot;335559740&quot;:259}\">\u00a0<\/span><\/h2>\n<p><span data-contrast=\"auto\">Typically, users will not desire to use linked templates; however, there are explicit limitations of a single ARM template which may require one to deploy their ARM template via Linked Templates. Specifically, when the ARM template.json file is &gt; 4MB is one such instance.<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><span data-contrast=\"auto\">Regardless of the Data Factory size the Data Factory build process will generate the necessary files and file structure to accommodate both a single template deployment and a linked ARM template deployment. The linked templates are only required if your main ARM template file is greater than &gt;4MB. (i.e. if you have a larger Data Factory).<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/p>\n<p>&nbsp;<\/p>\n<h2 id=\"toc-hId-1245685247\" aria-level=\"2\"><span data-contrast=\"none\">What is a Linked Template<\/span><span data-ccp-props=\"{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;201341983&quot;:0,&quot;335559738&quot;:40,&quot;335559739&quot;:0,&quot;335559740&quot;:259}\">\u00a0<\/span><\/h2>\n<p><span data-contrast=\"auto\">A linked template is a process by which the main deployment template will call additional files (\u2018linked\u2019). These files will need to stored in an Azure Storage Account. This will break up the single 4 MB file limitation of an ARM template as it will call multiple files whose size is &lt; 4MB. Now to be clear you will still be limited by limitation of an ARM template.\u00a0<\/span><a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/azure-resource-manager\/templates\/best-practices\" target=\"_blank\" rel=\"noopener noreferrer\"><span data-contrast=\"none\">As a reminder those are<\/span><\/a><span data-contrast=\"auto\">:<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/p>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"4\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"1\" data-aria-level=\"1\"><span data-contrast=\"none\">256 parameters<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:279}\">\u00a0<\/span><\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"4\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"2\" data-aria-level=\"1\"><span data-contrast=\"none\">256 variables<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:279}\">\u00a0<\/span><\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"4\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"3\" data-aria-level=\"1\"><span data-contrast=\"none\">800 resources (including\u00a0<\/span><a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/azure-resource-manager\/templates\/copy-resources\" target=\"_blank\" rel=\"noopener noreferrer\"><span data-contrast=\"none\">copy count<\/span><\/a><span data-contrast=\"none\">)<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:279}\">\u00a0<\/span><\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"4\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"4\" data-aria-level=\"1\"><span data-contrast=\"none\">64 output values<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:279}\">\u00a0<\/span><\/li>\n<\/ul>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"4\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"1\" data-aria-level=\"1\"><span data-contrast=\"none\">10 unique locations per subscription\/tenant\/management group scope<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:279}\">\u00a0<\/span><\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"4\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" aria-setsize=\"-1\" data-aria-posinset=\"2\" data-aria-level=\"1\"><span data-contrast=\"none\">24,576 characters in a template expression<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:279}\">\u00a0<\/span><\/li>\n<\/ul>\n<p>Check out full post (Part 5) and <a href=\"https:\/\/techcommunity.microsoft.com\/t5\/healthcare-and-life-sciences\/part-5-unlock-the-power-of-azure-data-factory-a-guide-to\/ba-p\/3877909\" target=\"_blank\" rel=\"noopener\">the series in the Healthcare and Life Sciences Tech Community here<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>John Folberth\u00a0and\u00a0Joe Fitzgerald\u00a0share sample guidance for developing and deploying an Azure Data Factory into multiple environments. Introduction\u00a0 Part 1 Architecture and Scenario Creating resources in Azure Create Azure Storage Containers Create Azure Key Vaults Create Azure Data Factory: With Key Vault Access Part 2\u00a0 Configure Azure Data Factory Source Control Construct Azure Data Factory Data [&hellip;]<\/p>\n","protected":false},"author":582,"featured_media":41518,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[154,2571],"class_list":["post-41517","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-permierdev","tag-azure-data-factory","tag-azure-devops"],"acf":[],"blog_post_summary":"<p>John Folberth\u00a0and\u00a0Joe Fitzgerald\u00a0share sample guidance for developing and deploying an Azure Data Factory into multiple environments. Introduction\u00a0 Part 1 Architecture and Scenario Creating resources in Azure Create Azure Storage Containers Create Azure Key Vaults Create Azure Data Factory: With Key Vault Access Part 2\u00a0 Configure Azure Data Factory Source Control Construct Azure Data Factory Data [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/premier-developer\/wp-json\/wp\/v2\/posts\/41517","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/premier-developer\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/premier-developer\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/premier-developer\/wp-json\/wp\/v2\/users\/582"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/premier-developer\/wp-json\/wp\/v2\/comments?post=41517"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/premier-developer\/wp-json\/wp\/v2\/posts\/41517\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/premier-developer\/wp-json\/wp\/v2\/media\/41518"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/premier-developer\/wp-json\/wp\/v2\/media?parent=41517"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/premier-developer\/wp-json\/wp\/v2\/categories?post=41517"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/premier-developer\/wp-json\/wp\/v2\/tags?post=41517"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}