{"id":93288,"date":"2025-11-28T15:21:17","date_gmt":"2025-11-28T08:21:17","guid":{"rendered":"https:\/\/itviec.com\/blog\/?p=93288"},"modified":"2025-11-28T15:21:20","modified_gmt":"2025-11-28T08:21:20","slug":"huong-dan-su-dung-azure-data-factory","status":"publish","type":"post","link":"https:\/\/itviec.com\/blog\/huong-dan-su-dung-azure-data-factory\/","title":{"rendered":"Azure Data Factory l\u00e0 g\u00ec: H\u01b0\u1edbng d\u1eabn thi\u1ebft l\u1eadp Azure Data Factory"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_85 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">N\u1ed9i dung b\u00e0i vi\u1ebft<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/itviec.com\/blog\/huong-dan-su-dung-azure-data-factory\/#Vi_sao_can_co_Azure_Data_Factory\" >V\u00ec sao c\u1ea7n c\u00f3 Azure Data Factory?&nbsp;<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/itviec.com\/blog\/huong-dan-su-dung-azure-data-factory\/#Cac_tinh_nang_Azure_Data_Factory_va_truong_hop_su_dung_pho_bien\" >C\u00e1c t\u00ednh n\u0103ng Azure Data Factory v\u00e0 tr\u01b0\u1eddng h\u1ee3p s\u1eed d\u1ee5ng ph\u1ed5 bi\u1ebfn<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/itviec.com\/blog\/huong-dan-su-dung-azure-data-factory\/#Thanh_phan_cot_loi_cua_Azure_Data_Factory\" >Th\u00e0nh ph\u1ea7n c\u1ed1t l\u00f5i c\u1ee7a Azure Data Factory<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/itviec.com\/blog\/huong-dan-su-dung-azure-data-factory\/#Azure_Data_Factory_hoat_dong_nhu_the_nao\" >Azure Data Factory ho\u1ea1t \u0111\u1ed9ng nh\u01b0 th\u1ebf n\u00e0o?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/itviec.com\/blog\/huong-dan-su-dung-azure-data-factory\/#Huong_dan_thiet_lap_Azure_Data_Factory\" >H\u01b0\u1edbng d\u1eabn thi\u1ebft l\u1eadp Azure Data Factory<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/itviec.com\/blog\/huong-dan-su-dung-azure-data-factory\/#Cach_xay_dung_Pipeline_co_ban_trong_Azure_Data_Factory\" >C\u00e1ch x\u00e2y d\u1ef1ng Pipeline c\u01a1 b\u1ea3n trong Azure Data Factory<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/itviec.com\/blog\/huong-dan-su-dung-azure-data-factory\/#Cac_cau_hoi_thuong_gap_ve_Azure_Calculator\" >C\u00e1c c\u00e2u h\u1ecfi th\u01b0\u1eddng g\u1eb7p v\u1ec1 Azure Calculator<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/itviec.com\/blog\/huong-dan-su-dung-azure-data-factory\/#Tong_ket\" >T\u1ed5ng k\u1ebft<\/a><\/li><\/ul><\/nav><\/div>\n\n<p><strong><em>Trong k\u1ef7 nguy\u00ean Big Data v\u00e0 \u0111i\u1ec7n to\u00e1n \u0111\u00e1m m\u00e2y, vi\u1ec7c di chuy\u1ec3n, bi\u1ebfn \u0111\u1ed5i v\u00e0 s\u1eafp x\u1ebfp d\u1eef li\u1ec7u t\u1eeb nhi\u1ec1u ngu\u1ed3n kh\u00e1c nhau l\u00e0 m\u1ed9t th\u00e1ch th\u1ee9c l\u1edbn. Azure Data Factory (ADF) ra \u0111\u1eddi nh\u01b0 m\u1ed9t gi\u1ea3i ph\u00e1p Platform as a Service (PaaS) \u0111\u01b0\u1ee3c qu\u1ea3n l\u00fd ho\u00e0n to\u00e0n tr\u00ean n\u1ec1n t\u1ea3ng Microsoft Azure. H\u00e3y t\u00ecm hi\u1ec3u k\u1ef9 h\u01a1n v\u1ec1 Azure Data Factory v\u00e0 kh\u00e1m ph\u00e1 c\u00e1c tr\u01b0\u1eddng h\u1ee3p s\u1eed d\u1ee5ng c\u00f4ng c\u1ee5 n\u00e0y qua b\u00e0i vi\u1ebft n\u00e0y.<\/em><\/strong><\/p>\n\n\n\n<p>\u0110\u1ecdc b\u00e0i vi\u1ebft sau \u0111\u1ec3 hi\u1ec3u r\u00f5:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Azure Data Factory l\u00e0 g\u00ec;<\/li>\n\n\n\n<li>Khi n\u00e0o n\u00ean s\u1eed d\u1ee5ng Azure Data Factory;<\/li>\n\n\n\n<li>L\u1ee3i \u00edch c\u1ee7a Azure Data Factory;<\/li>\n\n\n\n<li>C\u00e1c t\u00ednh n\u0103ng ch\u00ednh c\u1ee7a Azure Data Factory;<\/li>\n\n\n\n<li>Th\u00e0nh ph\u1ea7n c\u1ed1t l\u00f5i c\u1ee7a Azure Data Factory;<\/li>\n\n\n\n<li>H\u01b0\u1edbng d\u1eabn thi\u1ebft l\u1eadp Azure Data Factory;<\/li>\n\n\n\n<li>C\u00e1ch c\u00e1c th\u00e0nh ph\u1ea7n Azure Data Factory ho\u1ea1t \u0111\u1ed9ng c\u00f9ng nhau.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-vi-sao-c\u1ea7n-co-azure-data-factory-nbsp\"><span class=\"ez-toc-section\" id=\"Vi_sao_can_co_Azure_Data_Factory\"><\/span><strong>V\u00ec sao c\u1ea7n c\u00f3 Azure Data Factory?&nbsp;<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Trong th\u1ebf gi\u1edbi Big Data, d\u1eef li\u1ec7u th\u00f4, ch\u01b0a \u0111\u01b0\u1ee3c t\u1ed5 ch\u1ee9c th\u01b0\u1eddng \u0111\u01b0\u1ee3c l\u01b0u tr\u1eef trong c\u00e1c h\u1ec7 th\u1ed1ng l\u01b0u tr\u1eef quan h\u1ec7, phi quan h\u1ec7 v\u00e0 c\u00e1c h\u1ec7 th\u1ed1ng kh\u00e1c. Tuy nhi\u00ean, b\u1ea3n th\u00e2n d\u1eef li\u1ec7u th\u00f4 kh\u00f4ng c\u00f3 ng\u1eef c\u1ea3nh ho\u1eb7c \u00fd ngh\u0129a ph\u00f9 h\u1ee3p \u0111\u1ec3 cung c\u1ea5p nh\u1eefng hi\u1ec3u bi\u1ebft c\u00f3 \u00fd ngh\u0129a cho c\u00e1c nh\u00e0 ph\u00e2n t\u00edch, nh\u00e0 khoa h\u1ecdc d\u1eef li\u1ec7u ho\u1eb7c ng\u01b0\u1eddi ra quy\u1ebft \u0111\u1ecbnh kinh doanh.<\/p>\n\n\n\n<p>D\u1eef li\u1ec7u l\u1edbn \u0111\u00f2i h\u1ecfi m\u1ed9t d\u1ecbch v\u1ee5 c\u00f3 kh\u1ea3 n\u0103ng \u0111i\u1ec1u ph\u1ed1i v\u00e0 v\u1eadn h\u00e0nh c\u00e1c quy tr\u00ecnh \u0111\u1ec3 \u0111i\u1ec1u ch\u1ec9nh kho d\u1eef li\u1ec7u th\u00f4 kh\u1ed5ng l\u1ed3 n\u00e0y th\u00e0nh nh\u1eefng th\u00f4ng tin kinh doanh h\u1eefu \u00edch.&nbsp;<\/p>\n\n\n\n<p>Azure Data Factory (ADF) ch\u00ednh l\u00e0 d\u1ecbch v\u1ee5 \u0111\u00f3 \u2013 m\u1ed9t n\u1ec1n t\u1ea3ng \u0111\u00e1m m\u00e2y \u0111\u01b0\u1ee3c qu\u1ea3n l\u00fd ho\u00e0n to\u00e0n, ph\u1ee5c v\u1ee5 cho c\u00e1c d\u1ef1 \u00e1n extract-transform-load (ETL), extract-load-transform (ELT) v\u00e0 to\u00e0n b\u1ed9 qu\u00e1 tr\u00ecnh t\u00edch h\u1ee3p d\u1eef li\u1ec7u.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><em>\u0110\u1ecdc chi ti\u1ebft: <strong><a href=\"https:\/\/itviec.com\/blog\/azure-la-gi\/\" target=\"_blank\" rel=\"noreferrer noopener\">Azure l\u00e0 g\u00ec: H\u01b0\u1edbng d\u1eabn b\u1eaft \u0111\u1ea7u v\u1edbi Microsoft Azure<\/a><\/strong><\/em><\/p>\n<\/blockquote>\n\n\n\n<p>C\u00f9ng kh\u00e1m ph\u00e1 c\u00e1c tr\u01b0\u1eddng h\u1ee3p s\u1eed d\u1ee5ng c\u1ee5 th\u1ec3:<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-cac-tinh-nang-azure-data-factory-va-tr\u01b0\u1eddng-h\u1ee3p-s\u1eed-d\u1ee5ng-ph\u1ed5-bi\u1ebfn\"><span class=\"ez-toc-section\" id=\"Cac_tinh_nang_Azure_Data_Factory_va_truong_hop_su_dung_pho_bien\"><\/span><strong>C\u00e1c t\u00ednh n\u0103ng Azure Data Factory v\u00e0 tr\u01b0\u1eddng h\u1ee3p s\u1eed d\u1ee5ng ph\u1ed5 bi\u1ebfn<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Azure Data Factory \u0111\u00f3ng vai tr\u00f2 trung t\u00e2m trong vi\u1ec7c \u0111\u1ecbnh h\u00ecnh b\u1ed1i c\u1ea3nh d\u1eef li\u1ec7u v\u1edbi m\u1ed9t s\u1ed1 tr\u01b0\u1eddng h\u1ee3p s\u1eed d\u1ee5ng ph\u1ed5 bi\u1ebfn sau:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-di-chuy\u1ec3n-d\u1eef-li\u1ec7u-data-migration\"><strong>Di chuy\u1ec3n d\u1eef li\u1ec7u (Data migration)<\/strong><\/h3>\n\n\n\n<p>Azure Data Factory t\u1ef1 \u0111\u1ed9ng h\u00f3a vi\u1ec7c chuy\u1ec3n d\u1eef li\u1ec7u gi\u1eefa on-premises v\u00e0 cloud, \u0111\u1ea3m b\u1ea3o t\u00ednh to\u00e0n v\u1eb9n d\u1eef li\u1ec7u v\u00e0 gi\u1ea3m thi\u1ec3u th\u1eddi gian ng\u1eebng ho\u1ea1t \u0111\u1ed9ng.&nbsp;<\/p>\n\n\n\n<p>V\u00ed d\u1ee5: b\u1ea1n c\u00f3 th\u1ec3 s\u1eed d\u1ee5ng Azure Data Factory \u0111\u1ec3 di chuy\u1ec3n d\u1eef li\u1ec7u t\u1eeb SQL Server t\u1ea1i ch\u1ed7 sang Azure SQL Database v\u1edbi thao t\u00e1c th\u1ee7 c\u00f4ng t\u1ed1i thi\u1ec3u. B\u1eb1ng c\u00e1ch t\u1eadn d\u1ee5ng c\u00e1c tr\u00ecnh k\u1ebft n\u1ed1i t\u00edch h\u1ee3p v\u00e0 th\u1eddi gian ch\u1ea1y t\u00edch h\u1ee3p, Azure Data Factory \u0111\u1ea3m b\u1ea3o quy tr\u00ecnh di chuy\u1ec3n an to\u00e0n v\u00e0 hi\u1ec7u qu\u1ea3, h\u1ed7 tr\u1ee3 c\u1ea3 d\u1eef li\u1ec7u c\u00f3 c\u1ea5u tr\u00fac v\u00e0 phi c\u1ea5u tr\u00fac.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-xay-d\u1ef1ng-quy-trinh-etl-elt-cho-kho-d\u1eef-li\u1ec7u\"><strong>X\u00e2y d\u1ef1ng quy tr\u00ecnh ETL\/ELT cho kho d\u1eef li\u1ec7u<\/strong><\/h3>\n\n\n\n<p>C\u00e1c quy tr\u00ecnh extract-transform-load (ETL) l\u00e0 c\u1ed1t l\u00f5i c\u1ee7a kho d\u1eef li\u1ec7u hi\u1ec7n \u0111\u1ea1i. Azure Data Factory h\u1ee3p l\u00fd h\u00f3a c\u00e1c quy tr\u00ecnh c n\u00e0y b\u1eb1ng c\u00e1ch t\u00edch h\u1ee3p d\u1eef li\u1ec7u t\u1eeb nhi\u1ec1u ngu\u1ed3n, \u00e1p d\u1ee5ng logic chuy\u1ec3n \u0111\u1ed5i v\u00e0 t\u1ea3i d\u1eef li\u1ec7u v\u00e0o kho d\u1eef li\u1ec7u.&nbsp;<\/p>\n\n\n\n<p>V\u00ed d\u1ee5: Azure Data Factory c\u00f3 th\u1ec3 h\u1ee3p nh\u1ea5t d\u1eef li\u1ec7u b\u00e1n h\u00e0ng t\u1eeb c\u00e1c khu v\u1ef1c kh\u00e1c nhau, chuy\u1ec3n \u0111\u1ed5i sang \u0111\u1ecbnh d\u1ea1ng th\u1ed1ng nh\u1ea5t v\u00e0 t\u1ea3i l\u00ean Azure Synapse Analytics. Quy tr\u00ecnh n\u00e0y cho ph\u00e9p duy tr\u00ec d\u1eef li\u1ec7u ch\u1ea5t l\u01b0\u1ee3ng cao, c\u1eadp nh\u1eadt th\u01b0\u1eddng xuy\u00ean \u0111\u1ec3 ph\u1ee5c v\u1ee5 cho vi\u1ec7c b\u00e1o c\u00e1o v\u00e0 ra quy\u1ebft \u0111\u1ecbnh.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-tich-h\u1ee3p-d\u1eef-li\u1ec7u-cho-data-lake\"><strong>T\u00edch h\u1ee3p d\u1eef li\u1ec7u cho Data Lake<\/strong><\/h3>\n\n\n\n<p>Data lake \u0111\u00f3ng vai tr\u00f2 l\u00e0 kho l\u01b0u tr\u1eef trung t\u00e2m cho nhi\u1ec1u t\u1eadp d\u1eef li\u1ec7u kh\u00e1c nhau, cho ph\u00e9p ph\u00e2n t\u00edch n\u00e2ng cao v\u00e0 h\u1ecdc m\u00e1y. Azure Data Factory h\u1ed7 tr\u1ee3 vi\u1ec7c thu th\u1eadp d\u1eef li\u1ec7u t\u1eeb nhi\u1ec1u ngu\u1ed3n kh\u00e1c nhau v\u00e0o Azure Data Lake Storage, h\u1ed7 tr\u1ee3 c\u00e1c k\u1ecbch b\u1ea3n x\u1eed l\u00fd h\u00e0ng lo\u1ea1t v\u00e0 ph\u00e1t tr\u1ef1c tuy\u1ebfn.&nbsp;<\/p>\n\n\n\n<p>V\u00ed d\u1ee5: b\u1ea1n c\u00f3 th\u1ec3 s\u1eed d\u1ee5ng Azure Data Factory \u0111\u1ec3 thu th\u1eadp log files, social media feeds v\u00e0 d\u1eef li\u1ec7u c\u1ea3m bi\u1ebfn IoT v\u00e0o m\u1ed9t data lake duy nh\u1ea5t. B\u1eb1ng c\u00e1ch cung c\u1ea5p c\u00e1c c\u00f4ng c\u1ee5 chuy\u1ec3n \u0111\u1ed5i v\u00e0 t\u00edch h\u1ee3p d\u1eef li\u1ec7u, Azure Data Factory \u0111\u1ea3m b\u1ea3o data lake \u0111\u01b0\u1ee3c t\u1ed5 ch\u1ee9c t\u1ed1t v\u00e0 s\u1eb5n s\u00e0ng cho c\u00e1c ph\u00e2n t\u00edch downstream v\u00e0 kh\u1ed1i l\u01b0\u1ee3ng c\u00f4ng vi\u1ec7c AI.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-tich-h\u1ee3p-d\u1eef-li\u1ec7u-t\u1eeb-cac-erp-khac-nhau-vao-azure-synapse\"><strong>T\u00edch h\u1ee3p d\u1eef li\u1ec7u t\u1eeb c\u00e1c ERP kh\u00e1c nhau v\u00e0o Azure Synapse<\/strong><\/h3>\n\n\n\n<p>Vi\u1ec7c t\u00edch h\u1ee3p d\u1eef li\u1ec7u t\u1eeb c\u00e1c h\u1ec7 th\u1ed1ng ERP kh\u00e1c nhau v\u00e0o Azure Synapse Analytics bao g\u1ed3m h\u1ee3p nh\u1ea5t d\u1eef li\u1ec7u t\u1eeb c\u00e1c h\u1ec7 th\u1ed1ng ERP ri\u00eang bi\u1ec7t v\u00e0 \u0111\u1ed3ng b\u1ed9 h\u00f3a th\u00f4ng tin t\u1eeb c\u00e1c ngu\u1ed3n kh\u00e1c nhau v\u00e0o m\u1ed9t kho d\u1eef li\u1ec7u t\u1eadp trung.Azure Data Factory h\u1ee3p l\u00fd h\u00f3a quy tr\u00ecnh h\u1ee3p nh\u1ea5t v\u00e0 \u0111\u1ed3ng b\u1ed9 h\u00f3a d\u1eef li\u1ec7u, cung c\u1ea5p m\u1ed9t ph\u01b0\u01a1ng ph\u00e1p ti\u1ebfp c\u1eadn th\u1ed1ng nh\u1ea5t cho vi\u1ec7c ph\u00e2n t\u00edch v\u00e0 qu\u1ea3n l\u00fd d\u1eef li\u1ec7u.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-di\u1ec1u-ph\u1ed1i-quy-trinh-d\u1eef-li\u1ec7u-k\u1ebft-h\u1ee3p-azure-databricks\"><strong>\u0110i\u1ec1u ph\u1ed1i quy tr\u00ecnh d\u1eef li\u1ec7u k\u1ebft h\u1ee3p Azure Databricks<\/strong><\/h3>\n\n\n\n<p>ADF l\u00e0m nhi\u1ec7m v\u1ee5 orchestration, c\u00f2n Databricks x\u1eed l\u00fd d\u1eef li\u1ec7u n\u00e2ng cao. S\u1ef1 t\u00edch h\u1ee3p n\u00e0y cho ph\u00e9p ng\u01b0\u1eddi d\u00f9ng khai th\u00e1c s\u1ee9c m\u1ea1nh t\u1ed5ng h\u1ee3p c\u1ee7a c\u1ea3 hai n\u1ec1n t\u1ea3ng, m\u1edf kh\u00f3a c\u00e1c ph\u00e2n t\u00edch n\u00e2ng cao v\u00e0 th\u00f4ng tin chi ti\u1ebft v\u1ec1 h\u1ecdc m\u00e1y trong m\u1ed9t m\u00f4i tr\u01b0\u1eddng k\u1ef9 thu\u1eadt d\u1eef li\u1ec7u th\u1ed1ng nh\u1ea5t.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-qu\u1ea3n-ly-phien-b\u1ea3n-pipeline-v\u1edbi-github\"><strong>Qu\u1ea3n l\u00fd phi\u00ean b\u1ea3n pipeline v\u1edbi GitHub<\/strong><\/h3>\n\n\n\n<p>ADF k\u1ebft n\u1ed1i tr\u1ef1c ti\u1ebfp v\u1edbi GitHub \u0111\u1ec3 qu\u1ea3n l\u00fd phi\u00ean b\u1ea3n pipeline, cho ph\u00e9p c\u00e1c nh\u00f3m l\u00e0m vi\u1ec7c c\u1ed9ng t\u00e1c tr\u00ean c\u00e1c s\u00e1ng ki\u1ebfn \u200b\u200bk\u1ef9 thu\u1eadt d\u1eef li\u1ec7u, n\u00e2ng cao hi\u1ec7u qu\u1ea3 v\u00e0 \u0111\u1ea3m b\u1ea3o tr\u1ea3i nghi\u1ec7m ph\u00e1t tri\u1ec3n m\u01b0\u1ee3t m\u00e0 trong h\u1ec7 sinh th\u00e1i GitHub.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-x\u1eed-ly-big-data-va-kh\u1ed1i-l\u01b0\u1ee3ng-cong-vi\u1ec7c-quy-mo-dam-may\"><strong>X\u1eed l\u00fd Big Data v\u00e0 kh\u1ed1i l\u01b0\u1ee3ng c\u00f4ng vi\u1ec7c quy m\u00f4 \u0111\u00e1m m\u00e2y<\/strong><\/h3>\n\n\n\n<p>ADF h\u1ed7 tr\u1ee3 c\u00e1c k\u1ecbch b\u1ea3n x\u1eed l\u00fd Big Data (Hadoop, Spark\u2026), t\u1eadn d\u1ee5ng s\u1ee9c m\u1ea1nh m\u1edf r\u1ed9ng c\u1ee7a \u0111\u00e1m m\u00e2y \u0111\u1ec3 x\u1eed l\u00fd t\u1eadp d\u1eef li\u1ec7u l\u1edbn v\u1edbi hi\u1ec7u n\u0103ng cao.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-tuy-ch\u1ec9nh-pipeline-b\u1eb1ng-json-amp-t\u1ef1-d\u1ed9ng-hoa-b\u1eb1ng-powershell\"><strong>T\u00f9y ch\u1ec9nh pipeline b\u1eb1ng JSON &amp; t\u1ef1 \u0111\u1ed9ng h\u00f3a b\u1eb1ng PowerShell<\/strong><\/h3>\n\n\n\n<p>Vi\u1ec7c s\u1eed d\u1ee5ng hi\u1ec7u qu\u1ea3 JSON v\u00e0 PowerShell trong Azure Data Factory xoay quanh hai ch\u1ee9c n\u0103ng ch\u00ednh.&nbsp;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Azure Data Factory t\u00edch h\u1ee3p c\u1ea5u h\u00ecnh JSON \u0111\u1ec3 x\u00e1c \u0111\u1ecbnh c\u00e1c data pipeline m\u1ed9t c\u00e1ch linh ho\u1ea1t v\u00e0 c\u00f3 c\u1ea5u tr\u00fac. \u0110i\u1ec1u n\u00e0y c\u00f3 ngh\u0129a l\u00e0 ng\u01b0\u1eddi d\u00f9ng c\u00f3 th\u1ec3 t\u00f9y ch\u1ec9nh c\u00e1c pipeline c\u1ee7a m\u00ecnh theo nhu c\u1ea7u c\u1ee5 th\u1ec3, \u0111\u1ea3m b\u1ea3o lu\u1ed3ng d\u1eef li\u1ec7u li\u1ec1n m\u1ea1ch.&nbsp;<\/li>\n\n\n\n<li>Azure Data Factory t\u1eadn d\u1ee5ng s\u1ee9c m\u1ea1nh c\u1ee7a t\u1eadp l\u1ec7nh PowerShell \u0111\u1ec3 t\u1ef1 \u0111\u1ed9ng h\u00f3a n\u00e2ng cao v\u00e0 qu\u1ea3n l\u00fd to\u00e0n di\u1ec7n c\u00e1c data pipeline.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-sao-chep-ho\u1ea1t-d\u1ed9ng-va-sao-chep-d\u1eef-li\u1ec7u\"><strong>Sao ch\u00e9p ho\u1ea1t \u0111\u1ed9ng v\u00e0 sao ch\u00e9p d\u1eef li\u1ec7u<\/strong><\/h3>\n\n\n\n<p>Copy activity l\u00e0 m\u1ed9t t\u00ednh n\u0103ng m\u1ea1nh m\u1ebd c\u1ee7a ADF gi\u00fap sao ch\u00e9p d\u1eef li\u1ec7u gi\u1eefa c\u00e1c kho d\u1eef li\u1ec7u kh\u00e1c nhau d\u1ec5 d\u00e0ng, bao g\u1ed3m c\u1ea3 h\u1ed7 tr\u1ee3 cho Azure Blob Storage.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-tich-h\u1ee3p-v\u1edbi-azure-devops\"><strong>T\u00edch h\u1ee3p v\u1edbi Azure DevOps<\/strong><\/h3>\n\n\n\n<p>\u0110\u1ec3 t\u1ed1i \u0111a h\u00f3a ti\u1ec1m n\u0103ng c\u1ee7a Azure Data Factory, c\u1ea7n t\u00edch h\u1ee3p n\u00f3 v\u1edbi Azure DevOps \u0111\u1ec3 c\u00f3 tr\u1ea3i nghi\u1ec7m ph\u00e1t tri\u1ec3n v\u00e0 tri\u1ec3n khai th\u1ed1ng nh\u1ea5t. B\u1eb1ng c\u00e1ch c\u1ea5u h\u00ecnh t\u00edch h\u1ee3p n\u00e0y v\u00e0 t\u1eadn d\u1ee5ng c\u00e1c Azure DevOps pipelines, ng\u01b0\u1eddi d\u00f9ng c\u00f3 th\u1ec3 d\u1ec5 d\u00e0ng t\u1ef1 \u0111\u1ed9ng h\u00f3a c\u00e1c quy tr\u00ecnh CI\/CD \u0111\u01b0\u1ee3c thi\u1ebft k\u1ebf ri\u00eang cho data pipeline c\u1ee7a h\u1ecd.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-b\u1ea3o-m\u1eadt-tich-h\u1ee3p-nbsp\"><strong>B\u1ea3o m\u1eadt t\u00edch h\u1ee3p&nbsp;<\/strong><\/h3>\n\n\n\n<p>Azure Data Factory cung c\u1ea5p c\u00e1c t\u00ednh n\u0103ng b\u1ea3o m\u1eadt t\u00edch h\u1ee3p nh\u01b0 t\u00edch h\u1ee3p Entra ID v\u00e0 ki\u1ec3m so\u00e1t truy c\u1eadp d\u1ef1a tr\u00ean vai tr\u00f2 \u0111\u1ec3 ki\u1ec3m so\u00e1t quy\u1ec1n truy c\u1eadp v\u00e0o lu\u1ed3ng d\u1eef li\u1ec7u. T\u00ednh n\u0103ng n\u00e0y t\u0103ng c\u01b0\u1eddng b\u1ea3o m\u1eadt trong qu\u00e1 tr\u00ecnh x\u1eed l\u00fd d\u1eef li\u1ec7u v\u00e0 b\u1ea3o v\u1ec7 d\u1eef li\u1ec7u c\u1ee7a b\u1ea1n.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-tuy-ch\u1ec9nh-trinh-kich-ho\u1ea1t-s\u1ef1-ki\u1ec7n-event-based-triggers\"><strong>T\u00f9y ch\u1ec9nh tr\u00ecnh k\u00edch ho\u1ea1t s\u1ef1 ki\u1ec7n (Event-based triggers)<\/strong><\/h3>\n\n\n\n<p>Azure Data Factory cho ph\u00e9p b\u1ea1n t\u1ef1 \u0111\u1ed9ng h\u00f3a vi\u1ec7c x\u1eed l\u00fd d\u1eef li\u1ec7u b\u1eb1ng c\u00e1ch s\u1eed d\u1ee5ng tr\u00ecnh k\u00edch ho\u1ea1t s\u1ef1 ki\u1ec7n t\u00f9y ch\u1ec9nh, t\u1ef1 \u0111\u1ed9ng th\u1ef1c hi\u1ec7n m\u1ed9t h\u00e0nh \u0111\u1ed9ng nh\u1ea5t \u0111\u1ecbnh khi m\u1ed9t s\u1ef1 ki\u1ec7n nh\u1ea5t \u0111\u1ecbnh x\u1ea3y ra.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-nen-d\u1eef-li\u1ec7u-data-compression-nbsp\"><strong>N\u00e9n d\u1eef li\u1ec7u (Data Compression)&nbsp;<\/strong><\/h3>\n\n\n\n<p>Trong qu\u00e1 tr\u00ecnh Data Copy, d\u1eef li\u1ec7u c\u00f3 th\u1ec3 \u0111\u01b0\u1ee3c n\u00e9n v\u00e0 ghi v\u00e0o ngu\u1ed3n d\u1eef li\u1ec7u \u0111\u00edch. T\u00ednh n\u0103ng n\u00e0y gi\u00fap t\u1ed1i \u01b0u h\u00f3a vi\u1ec7c s\u1eed d\u1ee5ng bandwidth khi sao ch\u00e9p d\u1eef li\u1ec7u.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-xem-tr\u01b0\u1edbc-va-xac-th\u1ef1c-d\u1eef-li\u1ec7u\"><strong>Xem tr\u01b0\u1edbc v\u00e0 x\u00e1c th\u1ef1c d\u1eef li\u1ec7u<\/strong><\/h3>\n\n\n\n<p>Trong ho\u1ea1t \u0111\u1ed9ng Data Copy, c\u00e1c c\u00f4ng c\u1ee5 \u0111\u01b0\u1ee3c cung c\u1ea5p \u0111\u1ec3 xem tr\u01b0\u1edbc v\u00e0 x\u00e1c th\u1ef1c d\u1eef li\u1ec7u. T\u00ednh n\u0103ng n\u00e0y gi\u00fap b\u1ea1n \u0111\u1ea3m b\u1ea3o d\u1eef li\u1ec7u \u0111\u01b0\u1ee3c sao ch\u00e9p ch\u00ednh x\u00e1c v\u00e0 ghi v\u00e0o ngu\u1ed3n d\u1eef li\u1ec7u \u0111\u00edch ch\u00ednh x\u00e1c.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-lu\u1ed3ng-d\u1eef-li\u1ec7u-tuy-ch\u1ec9nh\"><strong>Lu\u1ed3ng d\u1eef li\u1ec7u t\u00f9y ch\u1ec9nh<\/strong><\/h3>\n\n\n\n<p>Azure Data Factory cho ph\u00e9p b\u1ea1n t\u1ea1o lu\u1ed3ng d\u1eef li\u1ec7u t\u00f9y ch\u1ec9nh, th\u00eam c\u00e1c h\u00e0nh \u0111\u1ed9ng ho\u1eb7c b\u01b0\u1edbc t\u00f9y ch\u1ec9nh \u0111\u1ec3 x\u1eed l\u00fd d\u1eef li\u1ec7u.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-thanh-ph\u1ea7n-c\u1ed1t-loi-c\u1ee7a-azure-data-factory\"><span class=\"ez-toc-section\" id=\"Thanh_phan_cot_loi_cua_Azure_Data_Factory\"><\/span><strong>Th\u00e0nh ph\u1ea7n c\u1ed1t l\u00f5i c\u1ee7a Azure Data Factory<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Azure Data Factory bao g\u1ed3m c\u00e1c th\u00e0nh ph\u1ea7n ch\u00ednh sau:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Pipeline<\/li>\n\n\n\n<li>Activity<\/li>\n\n\n\n<li>Datasets<\/li>\n\n\n\n<li>Linked services<\/li>\n\n\n\n<li>Data Flows<\/li>\n\n\n\n<li>Integration Runtime.<\/li>\n<\/ul>\n\n\n\n<p>C\u00e1c th\u00e0nh ph\u1ea7n n\u00e0y ho\u1ea1t \u0111\u1ed9ng c\u00f9ng nhau \u0111\u1ec3 cung c\u1ea5p n\u1ec1n t\u1ea3ng m\u00e0 tr\u00ean \u0111\u00f3 b\u1ea1n c\u00f3 th\u1ec3 x\u00e2y d\u1ef1ng workflows d\u1ef1a tr\u00ean d\u1eef li\u1ec7u.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-pipeline\"><strong>Pipeline<\/strong><\/h3>\n\n\n\n<p>M\u1ed9t Data Factory c\u00f3 th\u1ec3 c\u00f3 m\u1ed9t ho\u1eb7c nhi\u1ec1u pipeline. Pipeline l\u00e0 m\u1ed9t nh\u00f3m logic c\u00e1c ho\u1ea1t \u0111\u1ed9ng (activity) th\u1ef1c hi\u1ec7n m\u1ed9t \u0111\u01a1n v\u1ecb c\u00f4ng vi\u1ec7c. C\u00e1c ho\u1ea1t \u0111\u1ed9ng trong m\u1ed9t pipeline c\u00f9ng nhau th\u1ef1c hi\u1ec7n m\u1ed9t t\u00e1c v\u1ee5.&nbsp;<\/p>\n\n\n\n<p>V\u00ed d\u1ee5: 1 pipeline c\u00f3 th\u1ec3 ch\u1ee9a m\u1ed9t nh\u00f3m c\u00e1c ho\u1ea1t \u0111\u1ed9ng thu th\u1eadp d\u1eef li\u1ec7u t\u1eeb m\u1ed9t Azure blob, sau \u0111\u00f3 ch\u1ea1y truy v\u1ea5n Hive tr\u00ean HDInsight cluster \u0111\u1ec3 ph\u00e2n v\u00f9ng d\u1eef li\u1ec7u.<\/p>\n\n\n\n<p>L\u1ee3i \u00edch c\u1ee7a vi\u1ec7c n\u00e0y l\u00e0 pipeline cho ph\u00e9p b\u1ea1n qu\u1ea3n l\u00fd c\u00e1c ho\u1ea1t \u0111\u1ed9ng nh\u01b0 m\u1ed9t t\u1eadp h\u1ee3p thay v\u00ec qu\u1ea3n l\u00fd t\u1eebng ho\u1ea1t \u0111\u1ed9ng ri\u00eang l\u1ebb. C\u00e1c ho\u1ea1t \u0111\u1ed9ng trong pipeline c\u00f3 th\u1ec3 \u0111\u01b0\u1ee3c k\u1ebft n\u1ed1i v\u1edbi nhau \u0111\u1ec3 ho\u1ea1t \u0111\u1ed9ng tu\u1ea7n t\u1ef1, ho\u1eb7c ch\u00fang c\u00f3 th\u1ec3 ho\u1ea1t \u0111\u1ed9ng \u0111\u1ed9c l\u1eadp song song.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-activity\"><strong>Activity<\/strong><\/h3>\n\n\n\n<p>Activity l\u00e0 m\u1ed9t b\u01b0\u1edbc x\u1eed l\u00fd c\u1ee5 th\u1ec3 trong pipeline.&nbsp;<\/p>\n\n\n\n<p>V\u00ed d\u1ee5:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>B\u1ea1n c\u00f3 th\u1ec3 s\u1eed d\u1ee5ng m\u1ed9t Copy activity \u0111\u1ec3 sao ch\u00e9p d\u1eef li\u1ec7u t\u1eeb kho d\u1eef li\u1ec7u n\u00e0y sang kho d\u1eef li\u1ec7u kh\u00e1c.&nbsp;<\/li>\n\n\n\n<li>T\u01b0\u01a1ng t\u1ef1, b\u1ea1n c\u00f3 th\u1ec3 s\u1eed d\u1ee5ng m\u1ed9t Hive activity, ho\u1ea1t \u0111\u1ed9ng n\u00e0y ch\u1ea1y Hive query tr\u00ean m\u1ed9t Azure HDInsight cluster, \u0111\u1ec3 chuy\u1ec3n \u0111\u1ed5i ho\u1eb7c ph\u00e2n t\u00edch d\u1eef li\u1ec7u.&nbsp;<\/li>\n<\/ul>\n\n\n\n<p>Data Factory h\u1ed7 tr\u1ee3 ba lo\u1ea1i activity:&nbsp;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Data movement<\/strong>: sao ch\u00e9p d\u1eef li\u1ec7u (Copy activity)<br><strong>Data transformation<\/strong>: x\u1eed l\u00fd d\u1eef li\u1ec7u b\u1eb1ng Hive, Spark, Data Flow\u2026<\/li>\n\n\n\n<li><strong>Control activities<\/strong>: \u0111i\u1ec1u ki\u1ec7n (If), l\u1eb7p (ForEach), g\u1ecdi pipeline kh\u00e1c<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-mapping-data-flows\"><strong>Mapping data flows<\/strong><\/h3>\n\n\n\n<p>Mapping Data Flows cho ph\u00e9p b\u1ea1n t\u1ea1o c\u00e1c bi\u1ec3u \u0111\u1ed3 logic chuy\u1ec3n \u0111\u1ed5i d\u1eef li\u1ec7u v\u1edbi m\u1ecdi quy m\u00f4. B\u1ea1n c\u00f3 th\u1ec3 x\u00e2y d\u1ef1ng th\u01b0 vi\u1ec7n transform t\u00e1i s\u1eed d\u1ee5ng v\u00e0 th\u1ef1c thi ch\u00fang \u1edf quy m\u00f4 l\u1edbn t\u1eeb pipeline.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-datasets\"><strong>Datasets<\/strong><\/h3>\n\n\n\n<p>Dataset m\u00f4 t\u1ea3 c\u1ea5u tr\u00fac v\u00e0 v\u1ecb tr\u00ed c\u1ee7a d\u1eef li\u1ec7u m\u00e0 pipeline s\u1ebd \u0111\u1ecdc ho\u1eb7c ghi, \u0111\u00f3ng vai tr\u00f2 nh\u01b0 input\/output c\u1ee7a activity.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-linked-services\"><strong>Linked services<\/strong><\/h3>\n\n\n\n<p>Linked services kh\u00e1 gi\u1ed1ng v\u1edbi connection strings, \u0111\u1ecbnh ngh\u0129a th\u00f4ng tin k\u1ebft n\u1ed1i c\u1ea7n thi\u1ebft \u0111\u1ec3 Data Factory k\u1ebft n\u1ed1i v\u1edbi c\u00e1c t\u00e0i nguy\u00ean b\u00ean ngo\u00e0i.&nbsp;<\/p>\n\n\n\n<p>H\u00e3y h\u00ecnh dung th\u1ebf n\u00e0y: m\u1ed9t linked service \u0111\u1ecbnh ngh\u0129a k\u1ebft n\u1ed1i \u0111\u1ebfn ngu\u1ed3n d\u1eef li\u1ec7u, c\u00f2n m\u1ed9t dataset \u0111\u1ea1i di\u1ec7n cho c\u1ea5u tr\u00fac c\u1ee7a d\u1eef li\u1ec7u. V\u00ed d\u1ee5: m\u1ed9t linked service c\u1ee7a Azure Storage s\u1ebd ch\u1ec9 \u0111\u1ecbnh m\u1ed9t chu\u1ed7i k\u1ebft n\u1ed1i \u0111\u1ec3 k\u1ebft n\u1ed1i t\u1edbi t\u00e0i kho\u1ea3n Azure Storage \u0111\u00f3. Th\u00eam v\u00e0o \u0111\u00f3, m\u1ed9t Azure blob dataset s\u1ebd ch\u1ec9 \u0111\u1ecbnh container blob v\u00e0 folder ch\u1ee9a d\u1eef li\u1ec7u.<\/p>\n\n\n\n<p>Trong Data Factory, linked services \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng cho hai m\u1ee5c \u0111\u00edch ch\u00ednh:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u0110\u1ea1i di\u1ec7n cho m\u1ed9t Data Store: Bao g\u1ed3m, nh\u01b0ng kh\u00f4ng gi\u1edbi h\u1ea1n \u1edf, c\u00e1c h\u1ec7 qu\u1ea3n tr\u1ecb nh\u01b0 SQL Server database, Oracle database, file share ho\u1eb7c t\u00e0i kho\u1ea3n Azure blob storage.<\/li>\n\n\n\n<li>\u0110\u1ea1i di\u1ec7n cho m\u1ed9t Compute Resource: T\u00e0i nguy\u00ean n\u00e0y c\u00f3 th\u1ec3 host vi\u1ec7c th\u1ef1c thi c\u1ee7a m\u1ed9t activity. V\u00ed d\u1ee5: HDInsight Hive activity s\u1ebd ch\u1ea1y tr\u00ean m\u1ed9t HDInsight Hadoop cluster.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-integration-runtime\"><strong>Integration Runtime<\/strong><\/h3>\n\n\n\n<p>Trong Data Factory, m\u1ed9t ho\u1ea1t \u0111\u1ed9ng x\u00e1c \u0111\u1ecbnh h\u00e0nh \u0111\u1ed9ng c\u1ea7n th\u1ef1c hi\u1ec7n. M\u1ed9t linked service x\u00e1c \u0111\u1ecbnh m\u1ed9t kho d\u1eef li\u1ec7u \u0111\u00edch ho\u1eb7c 1 compute service. M\u1ed9t integration runtime cung c\u1ea5p c\u1ea7u n\u1ed1i gi\u1eefa activity v\u00e0 c\u00e1c linked services.&nbsp;<\/p>\n\n\n\n<p>Integration Runtime \u0111\u01b0\u1ee3c tham chi\u1ebfu b\u1edfi linked service ho\u1eb7c activity v\u00e0 cung c\u1ea5p m\u00f4i tr\u01b0\u1eddng compute &#8211; n\u01a1i activity \u0111\u01b0\u1ee3c ch\u1ea1y ho\u1eb7c \u0111\u01b0\u1ee3c \u0111i\u1ec1u ph\u1ed1i. B\u1eb1ng c\u00e1ch n\u00e0y, activity c\u00f3 th\u1ec3 \u0111\u01b0\u1ee3c th\u1ef1c hi\u1ec7n \u1edf khu v\u1ef1c g\u1ea7n nh\u1ea5t c\u00f3 th\u1ec3 v\u1edbi kho d\u1eef li\u1ec7u \u0111\u00edch ho\u1eb7c compute service, \u0111\u1ea3m b\u1ea3o hi\u1ec7u su\u1ea5t cao nh\u1ea5t \u0111\u1ed3ng th\u1eddi \u0111\u00e1p \u1ee9ng c\u00e1c y\u00eau c\u1ea7u v\u1ec1 b\u1ea3o m\u1eadt v\u00e0 tu\u00e2n th\u1ee7.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-azure-data-factory-ho\u1ea1t-d\u1ed9ng-nh\u01b0-th\u1ebf-nao\"><span class=\"ez-toc-section\" id=\"Azure_Data_Factory_hoat_dong_nhu_the_nao\"><\/span><strong>Azure Data Factory ho\u1ea1t \u0111\u1ed9ng nh\u01b0 th\u1ebf n\u00e0o?<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Data Factory bao g\u1ed3m m\u1ed9t lo\u1ea1t c\u00e1c h\u1ec7 th\u1ed1ng \u0111\u01b0\u1ee3c k\u1ebft n\u1ed1i v\u1edbi nhau, cung c\u1ea5p n\u1ec1n t\u1ea3ng to\u00e0n di\u1ec7n cho c\u00e1c k\u1ef9 s\u01b0 d\u1eef li\u1ec7u.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-k\u1ebft-n\u1ed1i-va-thu-th\u1eadp-d\u1eef-li\u1ec7u\"><strong>K\u1ebft n\u1ed1i v\u00e0 thu th\u1eadp d\u1eef li\u1ec7u<\/strong><\/h3>\n\n\n\n<p>C\u00f3 nhi\u1ec1u lo\u1ea1i d\u1eef li\u1ec7u kh\u00e1c nhau n\u1eb1m \u1edf nhi\u1ec1u ngu\u1ed3n kh\u00e1c nhau t\u1ea1i ch\u1ed7, tr\u00ean \u0111\u00e1m m\u00e2y, c\u00f3 c\u1ea5u tr\u00fac, kh\u00f4ng c\u00f3 c\u1ea5u tr\u00fac v\u00e0 b\u00e1n c\u1ea5u tr\u00fac, t\u1ea5t c\u1ea3 \u0111\u1ec1u \u0111\u1ebfn theo c\u00e1c kho\u1ea3ng th\u1eddi gian v\u00e0 t\u1ed1c \u0111\u1ed9 kh\u00e1c nhau.<\/p>\n\n\n\n<p>B\u01b0\u1edbc \u0111\u1ea7u ti\u00ean trong vi\u1ec7c x\u00e2y d\u1ef1ng h\u1ec7 th\u1ed1ng s\u1ea3n xu\u1ea5t th\u00f4ng tin l\u00e0 k\u1ebft n\u1ed1i v\u1edbi t\u1ea5t c\u1ea3 c\u00e1c ngu\u1ed3n d\u1eef li\u1ec7u v\u00e0 x\u1eed l\u00fd c\u1ea7n thi\u1ebft, ch\u1eb3ng h\u1ea1n nh\u01b0 software-as-a-service (SaaS), c\u01a1 s\u1edf d\u1eef li\u1ec7u, chia s\u1ebb t\u1ec7p v\u00e0 d\u1ecbch v\u1ee5 web FTP.&nbsp;<\/p>\n\n\n\n<p>B\u01b0\u1edbc ti\u1ebfp theo l\u00e0 di chuy\u1ec3n d\u1eef li\u1ec7u khi c\u1ea7n \u0111\u1ebfn m\u1ed9t v\u1ecb tr\u00ed t\u1eadp trung \u0111\u1ec3 x\u1eed l\u00fd ti\u1ebfp theo.<\/p>\n\n\n\n<p>V\u1edbi Data Factory, b\u1ea1n c\u00f3 th\u1ec3 s\u1eed d\u1ee5ng <strong>Copy activity<\/strong> trong data pipeline \u0111\u1ec3 di chuy\u1ec3n d\u1eef li\u1ec7u t\u1eeb c\u1ea3 kho d\u1eef li\u1ec7u t\u1ea1i ch\u1ed7 v\u00e0 ngu\u1ed3n \u0111\u00e1m m\u00e2y \u0111\u1ebfn kho d\u1eef li\u1ec7u t\u1eadp trung tr\u00ean \u0111\u00e1m m\u00e2y \u0111\u1ec3 ph\u00e2n t\u00edch s\u00e2u h\u01a1n.&nbsp;<\/p>\n\n\n\n<p>V\u00ed d\u1ee5: b\u1ea1n c\u00f3 th\u1ec3 thu th\u1eadp d\u1eef li\u1ec7u trong Azure Data Lake Storage v\u00e0 chuy\u1ec3n \u0111\u1ed5i d\u1eef li\u1ec7u sau b\u1eb1ng c\u00e1ch s\u1eed d\u1ee5ng d\u1ecbch v\u1ee5 Azure Data Lake Analytics. B\u1ea1n c\u0169ng c\u00f3 th\u1ec3 thu th\u1eadp d\u1eef li\u1ec7u trong kho l\u01b0u tr\u1eef Azure Blob v\u00e0 chuy\u1ec3n \u0111\u1ed5i sau b\u1eb1ng c\u00e1ch s\u1eed d\u1ee5ng Hadoop Azure HDInsight cluster.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-chuy\u1ec3n-d\u1ed5i-va-lam-giau-d\u1eef-li\u1ec7u\"><strong>Chuy\u1ec3n \u0111\u1ed5i v\u00e0 l\u00e0m gi\u00e0u d\u1eef li\u1ec7u<\/strong><\/h3>\n\n\n\n<p>Sau khi d\u1eef li\u1ec7u \u0111\u01b0\u1ee3c l\u01b0u tr\u1eef trong kho d\u1eef li\u1ec7u t\u1eadp trung tr\u00ean \u0111\u00e1m m\u00e2y, h\u00e3y x\u1eed l\u00fd ho\u1eb7c chuy\u1ec3n \u0111\u1ed5i d\u1eef li\u1ec7u \u0111\u00e3 thu th\u1eadp b\u1eb1ng c\u00e1ch s\u1eed d\u1ee5ng Azure Data Factory mapping data flows. Data flow cho ph\u00e9p c\u00e1c k\u1ef9 s\u01b0 d\u1eef li\u1ec7u x\u00e2y d\u1ef1ng v\u00e0 duy tr\u00ec bi\u1ec3u \u0111\u1ed3 chuy\u1ec3n \u0111\u1ed5i d\u1eef li\u1ec7u ch\u1ea1y tr\u00ean Spark m\u00e0 kh\u00f4ng c\u1ea7n hi\u1ec3u v\u1ec1 Spark cluster hay l\u1eadp tr\u00ecnh Spark.<\/p>\n\n\n\n<p>N\u1ebfu b\u1ea1n mu\u1ed1n vi\u1ebft m\u00e3 chuy\u1ec3n \u0111\u1ed5i theo c\u00e1ch th\u1ee7 c\u00f4ng, ADF h\u1ed7 tr\u1ee3 c\u00e1c ho\u1ea1t \u0111\u1ed9ng b\u00ean ngo\u00e0i \u0111\u1ec3 th\u1ef1c hi\u1ec7n chuy\u1ec3n \u0111\u1ed5i tr\u00ean c\u00e1c d\u1ecbch v\u1ee5 compute nh\u01b0 HDInsight Hadoop, Spark, Data Lake Analytics v\u00e0 Machine Learning.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-ci-cd-va-publish\"><strong>CI\/CD v\u00e0 publish<\/strong><\/h3>\n\n\n\n<p>Data Factory cung c\u1ea5p h\u1ed7 tr\u1ee3 to\u00e0n di\u1ec7n cho CI\/CD c\u1ee7a c\u00e1c quy tr\u00ecnh d\u1eef li\u1ec7u c\u1ee7a b\u1ea1n b\u1eb1ng Azure DevOps v\u00e0 GitHub. \u0110i\u1ec1u n\u00e0y cho ph\u00e9p b\u1ea1n t\u1eebng b\u01b0\u1edbc ph\u00e1t tri\u1ec3n v\u00e0 tri\u1ec3n khai c\u00e1c quy tr\u00ecnh ETL tr\u01b0\u1edbc khi publish s\u1ea3n ph\u1ea9m ho\u00e0n ch\u1ec9nh.&nbsp;<\/p>\n\n\n\n<p>Sau khi d\u1eef li\u1ec7u th\u00f4 \u0111\u01b0\u1ee3c tinh ch\u1ec9nh th\u00e0nh d\u1ea1ng d\u1eef li\u1ec7u business-ready cho doanh nghi\u1ec7p, h\u00e3y t\u1ea3i d\u1eef li\u1ec7u v\u00e0o Azure Data Warehouse, Azure SQL Database, Azure Cosmos DB ho\u1eb7c b\u1ea5t k\u1ef3 c\u00f4ng c\u1ee5 ph\u00e2n t\u00edch n\u00e0o m\u00e0 ng\u01b0\u1eddi d\u00f9ng c\u1ee7a b\u1ea1n c\u00f3 th\u1ec3 tham chi\u1ebfu t\u1eeb c\u00e1c c\u00f4ng c\u1ee5 kinh doanh th\u00f4ng minh c\u1ee7a h\u1ecd.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-giam-sat-monitor\"><strong>Gi\u00e1m s\u00e1t (Monitor)<\/strong><\/h3>\n\n\n\n<p>Sau khi \u0111\u00e3 x\u00e2y d\u1ef1ng v\u00e0 tri\u1ec3n khai pipeline th\u00e0nh c\u00f4ng, h\u00e3y theo d\u00f5i c\u00e1c ho\u1ea1t \u0111\u1ed9ng v\u00e0 quy tr\u00ecnh \u0111\u00e3 l\u00ean l\u1ecbch \u0111\u1ec3 bi\u1ebft t\u1ef7 l\u1ec7 th\u00e0nh c\u00f4ng v\u00e0 th\u1ea5t b\u1ea1i.&nbsp;<\/p>\n\n\n\n<p>ADF cung c\u1ea5p h\u1ec7 th\u1ed1ng gi\u00e1m s\u00e1t t\u00edch h\u1ee3p:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Azure Monitor<\/li>\n\n\n\n<li>API<\/li>\n\n\n\n<li>PowerShell<\/li>\n\n\n\n<li>Log Analytics<\/li>\n\n\n\n<li>Dashboard tr\u00ean Azure Portal<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-h\u01b0\u1edbng-d\u1eabn-thi\u1ebft-l\u1eadp-azure-data-factory\"><span class=\"ez-toc-section\" id=\"Huong_dan_thiet_lap_Azure_Data_Factory\"><\/span><strong>H\u01b0\u1edbng d\u1eabn thi\u1ebft l\u1eadp Azure Data Factory<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p><strong><em>\u0110i\u1ec1u ki\u1ec7n c\u1ea7n c\u00f3<\/em><\/strong><\/p>\n\n\n\n<p>Tr\u01b0\u1edbc khi b\u1eaft \u0111\u1ea7u, b\u1ea1n c\u1ea7n:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>M\u1ed9t Azure subscription \u0111ang ho\u1ea1t \u0111\u1ed9ng.<\/li>\n\n\n\n<li>M\u1ed9t resource group \u0111\u1ec3 qu\u1ea3n l\u00fd c\u00e1c t\u00e0i nguy\u00ean li\u00ean quan.<\/li>\n<\/ul>\n\n\n\n<p><strong><em>T\u1ea1o phi\u00ean b\u1ea3n Azure Data Factory<\/em><\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u0110\u0103ng nh\u1eadp v\u00e0o <a href=\"https:\/\/azure.microsoft.com\/en-us\/\" target=\"_blank\" rel=\"noreferrer noopener\">Azure portal<\/a>.<\/li>\n\n\n\n<li>\u0110i\u1ec1u h\u01b0\u1edbng \u0111\u1ebfn Create a resource v\u00e0 ch\u1ecdn Data Factory.<\/li>\n\n\n\n<li>\u0110i\u1ec1n v\u00e0o c\u00e1c tr\u01b0\u1eddng b\u1eaft bu\u1ed9c, bao g\u1ed3m subscription, resource group v\u00e0 region..<\/li>\n\n\n\n<li>Ki\u1ec3m tra l\u1ea1i v\u00e0 nh\u1ea5n Create \u0111\u1ec3 kh\u1edfi t\u1ea1o.<\/li>\n<\/ul>\n\n\n\n<p><strong><em>L\u00e0m quen v\u1edbi giao di\u1ec7n Azure Data Factory<\/em><\/strong><\/p>\n\n\n\n<p>Giao di\u1ec7n Azure Data Factory bao g\u1ed3m c\u00e1c ph\u1ea7n ch\u00ednh sau (c\u00f3 th\u1ec3 truy c\u1eadp th\u00f4ng qua menu \u0111i\u1ec1u h\u01b0\u1edbng b\u00ean tr\u00e1i)<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Author: \u0110\u1ec3 t\u1ea1o v\u00e0 qu\u1ea3n l\u00fd pipeline.<\/li>\n\n\n\n<li>Monitor: Theo d\u00f5i ho\u1ea1t \u0111\u1ed9ng c\u1ee7a pipeline v\u00e0 kh\u1eafc ph\u1ee5c s\u1ef1 c\u1ed1.<\/li>\n\n\n\n<li>Manager: \u0110\u1ec3 c\u1ea5u h\u00ecnh c\u00e1c linked services v\u00e0 integration runtime.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-cach-xay-d\u1ef1ng-pipeline-c\u01a1-b\u1ea3n-trong-azure-data-factory\"><span class=\"ez-toc-section\" id=\"Cach_xay_dung_Pipeline_co_ban_trong_Azure_Data_Factory\"><\/span><strong>C\u00e1ch x\u00e2y d\u1ef1ng Pipeline c\u01a1 b\u1ea3n trong Azure Data Factory<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-b\u01b0\u1edbc-1-t\u1ea1o-cac-linked-services\"><strong>B\u01b0\u1edbc 1: T\u1ea1o c\u00e1c linked services<\/strong><\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-1-m\u1edf-tab-manage\"><strong>1. M\u1edf tab Manage<\/strong><\/h4>\n\n\n\n<p>M\u1edf phi\u00ean b\u1ea3n Azure Data Factory c\u1ee7a b\u1ea1n v\u00e0 chuy\u1ec3n \u0111\u1ebfn tab <strong>Manage <\/strong>trong giao di\u1ec7n ADF. \u0110\u00e2y l\u00e0 n\u01a1i b\u1ea1n x\u00e1c \u0111\u1ecbnh c\u00e1c linked services, k\u1ebft n\u1ed1i c\u00e1c ngu\u1ed3n d\u1eef li\u1ec7u v\u00e0 destinations c\u1ee7a b\u1ea1n.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-2-them-linked-services-cho-ngu\u1ed3n-d\u1eef-li\u1ec7u\"><strong>2. Th\u00eam linked services cho ngu\u1ed3n d\u1eef li\u1ec7u<\/strong><\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Nh\u1ea5p v\u00e0o <strong>Linked services<\/strong> trong tab <strong>Manage<\/strong>.<\/li>\n\n\n\n<li>Ch\u1ecdn <strong>+ New<\/strong> \u0111\u1ec3 t\u1ea1o linked service.<\/li>\n\n\n\n<li>T\u1eeb danh s\u00e1ch c\u00e1c t\u00f9y ch\u1ecdn c\u00f3 s\u1eb5n, h\u00e3y ch\u1ecdn ngu\u1ed3n d\u1eef li\u1ec7u b\u1ea1n mu\u1ed1n k\u1ebft n\u1ed1i, ch\u1eb3ng h\u1ea1n nh\u01b0 <strong>Azure Blob Storage<\/strong>.&nbsp;<\/li>\n\n\n\n<li>Cung c\u1ea5p th\u00f4ng tin k\u1ebft n\u1ed1i c\u1ea7n thi\u1ebft, ch\u1eb3ng h\u1ea1n nh\u01b0 t\u00ean t\u00e0i kho\u1ea3n l\u01b0u tr\u1eef v\u00e0 ph\u01b0\u01a1ng th\u1ee9c x\u00e1c th\u1ef1c (v\u00ed d\u1ee5: kh\u00f3a t\u00e0i kho\u1ea3n ho\u1eb7c danh t\u00ednh \u0111\u01b0\u1ee3c qu\u1ea3n l\u00fd).<\/li>\n\n\n\n<li>Ki\u1ec3m tra k\u1ebft n\u1ed1i \u0111\u1ec3 \u0111\u1ea3m b\u1ea3o m\u1ecdi th\u1ee9 \u0111\u01b0\u1ee3c thi\u1ebft l\u1eadp ch\u00ednh x\u00e1c v\u00e0 click v\u00e0o <strong>Create<\/strong>.<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-3-them-linked-services-cho-data-destination\"><strong>3. Th\u00eam linked services cho data destination<\/strong><\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>L\u1eb7p l\u1ea1i quy tr\u00ecnh cho data destination, ch\u1eb3ng h\u1ea1n nh\u01b0 Azure SQL Database.<\/li>\n\n\n\n<li>Ch\u1ecdn lo\u1ea1i destination th\u00edch h\u1ee3p, c\u1ea5u h\u00ecnh c\u00e0i \u0111\u1eb7t k\u1ebft n\u1ed1i (v\u00ed d\u1ee5: t\u00ean m\u00e1y ch\u1ee7, t\u00ean c\u01a1 s\u1edf d\u1eef li\u1ec7u v\u00e0 ph\u01b0\u01a1ng th\u1ee9c x\u00e1c th\u1ef1c) v\u00e0 ki\u1ec3m tra k\u1ebft n\u1ed1i.<\/li>\n\n\n\n<li>Sau khi x\u00e1c minh, h\u00e3y l\u01b0u linked service.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-b\u01b0\u1edbc-2-t\u1ea1o-dataset\"><strong>B\u01b0\u1edbc 2: T\u1ea1o dataset<\/strong><\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-1-m\u1edf-tab-author\"><strong>1. M\u1edf tab Author<\/strong><\/h4>\n\n\n\n<p>M\u1edf tab <strong>Author <\/strong>trong giao di\u1ec7n Azure Data Factory c\u1ee7a b\u1ea1n. \u0110\u00e2y l\u00e0 n\u01a1i b\u1ea1n thi\u1ebft k\u1ebf v\u00e0 qu\u1ea3n l\u00fd c\u00e1c quy tr\u00ecnh, dataset v\u00e0 c\u00e1c th\u00e0nh ph\u1ea7n quy tr\u00ecnh l\u00e0m vi\u1ec7c kh\u00e1c.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-2-them-m\u1ed9t-dataset-cho-ngu\u1ed3n\"><strong>2. Th\u00eam m\u1ed9t dataset cho ngu\u1ed3n<\/strong><\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Nh\u1ea5p v\u00e0o n\u00fat<strong> + <\/strong>v\u00e0 ch\u1ecdn <strong>Dataset <\/strong>t\u1eeb menu th\u1ea3 xu\u1ed1ng.<\/li>\n\n\n\n<li>Ch\u1ecdn lo\u1ea1i data store ph\u00f9 h\u1ee3p v\u1edbi source linked service c\u1ee7a b\u1ea1n. V\u00ed d\u1ee5: n\u1ebfu source c\u1ee7a b\u1ea1n l\u00e0 Azure Blob Storage, h\u00e3y ch\u1ecdn lo\u1ea1i data store t\u01b0\u01a1ng \u1ee9ng, ch\u1eb3ng h\u1ea1n nh\u01b0 Delimited Text, Parquet ho\u1eb7c t\u00f9y ch\u1ecdn li\u00ean quan kh\u00e1c.<\/li>\n\n\n\n<li>C\u1ea5u h\u00ecnh dataset:\n<ul class=\"wp-block-list\">\n<li>Linked service: Ch\u1ecdn linked service m\u00e0 b\u1ea1n \u0111\u00e3 t\u1ea1o tr\u01b0\u1edbc \u0111\u00f3 cho ngu\u1ed3n d\u1eef li\u1ec7u.<\/li>\n\n\n\n<li>File path: Ch\u1ec9 \u0111\u1ecbnh path ho\u1eb7c container d\u1eef li\u1ec7u ngu\u1ed3n c\u1ee7a b\u1ea1n.<\/li>\n\n\n\n<li>Schema v\u00e0 format: X\u00e1c \u0111\u1ecbnh \u0111\u1ecbnh d\u1ea1ng d\u1eef li\u1ec7u (v\u00ed d\u1ee5: CSV, JSON ) v\u00e0 nh\u1eadp s\u01a1 \u0111\u1ed3 n\u1ebfu c\u00f3. \u0110i\u1ec1u n\u00e0y cho ph\u00e9p Azure Data Factory hi\u1ec3u c\u1ea5u tr\u00fac d\u1eef li\u1ec7u c\u1ee7a b\u1ea1n.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Nh\u1ea5p v\u00e0o <strong>OK <\/strong>\u0111\u1ec3 l\u01b0u dataset.<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-3-them-dataset-cho-destination\"><strong>3. Th\u00eam dataset cho destination<\/strong><\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>L\u1eb7p l\u1ea1i quy tr\u00ecnh cho dataset \u0111\u00edch.<\/li>\n\n\n\n<li>Ch\u1ecdn lo\u1ea1i kho d\u1eef li\u1ec7u ph\u00f9 h\u1ee3p v\u1edbi linked service \u0111\u00edch c\u1ee7a b\u1ea1n. V\u00ed d\u1ee5: n\u1ebfu \u0111\u00edch c\u1ee7a b\u1ea1n l\u00e0 Azure SQL Database, h\u00e3y ch\u1ecdn lo\u1ea1i ph\u00f9 h\u1ee3p nh\u01b0 Table.<\/li>\n\n\n\n<li>C\u1ea5u h\u00ecnh t\u1eadp d\u1eef li\u1ec7u:\n<ul class=\"wp-block-list\">\n<li>Linked service: Ch\u1ecdn linked service m\u00e0 b\u1ea1n \u0111\u00e3 t\u1ea1o cho \u0111\u00edch \u0111\u1ebfn.<\/li>\n\n\n\n<li>T\u00ean table ho\u1eb7c path: Ch\u1ec9 \u0111\u1ecbnh table ho\u1eb7c path \u0111\u00edch n\u01a1i d\u1eef li\u1ec7u s\u1ebd \u0111\u01b0\u1ee3c ghi.<\/li>\n\n\n\n<li>Schema: T\u00f9y ch\u1ecdn x\u00e1c \u0111\u1ecbnh ho\u1eb7c nh\u1eadp schema cho dataset \u0111\u00edch \u0111\u1ec3 \u0111\u1ea3m b\u1ea3o kh\u1ea3 n\u0103ng t\u01b0\u01a1ng th\u00edch v\u1edbi d\u1eef li\u1ec7u ngu\u1ed3n.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>L\u01b0u dataset.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-b\u01b0\u1edbc-3-them-activities\"><strong>B\u01b0\u1edbc 3: Th\u00eam activities<\/strong><\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-1-m\u1edf-pipeline-editor\"><strong>1. M\u1edf Pipeline editor<\/strong><\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Trong tab <strong>Author<\/strong>, h\u00e3y t\u1ea1o m\u1ed9t pipeline m\u1edbi b\u1eb1ng c\u00e1ch nh\u1ea5p v\u00e0o <strong>+<\/strong> v\u00e0 ch\u1ecdn <strong>Pipeline<\/strong>.<\/li>\n\n\n\n<li>Thao t\u00e1c n\u00e0y s\u1ebd m\u1edf tr\u00ecnh pipeline editor &#8211; m\u1ed9t giao di\u1ec7n tr\u1ef1c quan n\u01a1i b\u1ea1n c\u00f3 th\u1ec3 thi\u1ebft k\u1ebf quy tr\u00ecnh l\u00e0m vi\u1ec7c d\u1eef li\u1ec7u c\u1ee7a m\u00ecnh.<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-2-them-copy-data-activity\"><strong>2. Th\u00eam copy data activity<\/strong><\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>T\u1eeb toolbox b\u00ean tr\u00e1i, h\u00e3y t\u00ecm <strong>Copy data<\/strong> activity trong danh m\u1ee5c <strong>Move &amp; Transform<\/strong>.<\/li>\n\n\n\n<li>K\u00e9o <strong>Copy data <\/strong>activity v\u00e0o canvas. Ho\u1ea1t \u0111\u1ed9ng n\u00e0y di chuy\u1ec3n d\u1eef li\u1ec7u t\u1eeb ngu\u1ed3n \u0111\u1ebfn \u0111\u00edch.<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-3-c\u1ea5u-hinh-copy-data-activity\"><strong>3. C\u1ea5u h\u00ecnh copy data activity<\/strong><\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Nh\u1ea5p v\u00e0o <strong>Copy data <\/strong>activity \u0111\u1ec3 m\u1edf c\u00e0i \u0111\u1eb7t.<\/li>\n\n\n\n<li>Trong tab <strong>Source<\/strong>:\n<ul class=\"wp-block-list\">\n<li>Ch\u1ecdn source dataset m\u00e0 b\u1ea1n \u0111\u00e3 t\u1ea1o tr\u01b0\u1edbc \u0111\u00f3.<\/li>\n\n\n\n<li>C\u1ea5u h\u00ecnh c\u00e1c t\u00f9y ch\u1ecdn b\u1ed5 sung nh\u01b0 b\u1ed9 l\u1ecdc file ho\u1eb7c folder n\u1ebfu c\u1ea7n.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Trong tab <strong>Sink<\/strong>:\n<ul class=\"wp-block-list\">\n<li>Ch\u1ecdn destination dataset.<\/li>\n\n\n\n<li>Ch\u1ec9 \u0111\u1ecbnh b\u1ea5t k\u1ef3 c\u00e0i \u0111\u1eb7t b\u1ed5 sung n\u00e0o, ch\u1eb3ng h\u1ea1n nh\u01b0 c\u00e1ch x\u1eed l\u00fd d\u1eef li\u1ec7u hi\u1ec7n c\u00f3 trong destination (v\u00ed d\u1ee5: <strong>overwrite <\/strong>ho\u1eb7c <strong>append<\/strong>).<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>S\u1eed d\u1ee5ng tab <strong>Mapping <\/strong>\u0111\u1ec3 c\u0103n ch\u1ec9nh c\u00e1c tr\u01b0\u1eddng ho\u1eb7c c\u1ed9t t\u1eeb ngu\u1ed3n \u0111\u1ebfn \u0111\u00edch, \u0111\u1ea3m b\u1ea3o t\u00ednh t\u01b0\u01a1ng th\u00edch c\u1ee7a d\u1eef li\u1ec7u.<\/li>\n\n\n\n<li>L\u01b0u c\u1ea5u h\u00ecnh c\u1ee7a b\u1ea1n.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-b\u01b0\u1edbc-4-publish-va-ch\u1ea1y-pipeline\"><strong>B\u01b0\u1edbc 4: Publish v\u00e0 ch\u1ea1y pipeline<\/strong><\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-1-publish-pipeline-c\u1ee7a-b\u1ea1n\"><strong>1. Publish pipeline c\u1ee7a b\u1ea1n<\/strong><\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Sau khi c\u1ea5u h\u00ecnh xong pipeline, h\u00e3y nh\u1ea5p v\u00e0o <strong>Publish <\/strong>tr\u00ean thanh c\u00f4ng c\u1ee5.<\/li>\n\n\n\n<li>Thao t\u00e1c n\u00e0y s\u1ebd l\u01b0u pipeline c\u1ee7a b\u1ea1n v\u00e0 s\u1eb5n s\u00e0ng \u0111\u1ec3 th\u1ef1c thi. N\u1ebfu kh\u00f4ng publish, c\u00e1c thay \u0111\u1ed5i \u0111\u01b0\u1ee3c th\u1ef1c hi\u1ec7n tr\u00ean pipeline s\u1ebd v\u1eabn \u1edf d\u1ea1ng b\u1ea3n nh\u00e1p v\u00e0 kh\u00f4ng th\u1ec3 ch\u1ea1y \u0111\u01b0\u1ee3c.<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-2-ch\u1ea1y-pipeline\"><strong>2. Ch\u1ea1y pipeline<\/strong><\/h4>\n\n\n\n<p>\u0110\u1ec3 ki\u1ec3m tra pipeline c\u1ee7a b\u1ea1n, h\u00e3y nh\u1ea5p v\u00e0o <strong>Add Trigger <\/strong>\u1edf tr\u00ean c\u00f9ng v\u00e0 ch\u1ecdn <strong>Trigger Now<\/strong> \u0111\u1ec3 ch\u1ea1y th\u1ee7 c\u00f4ng. Thao t\u00e1c n\u00e0y cho ph\u00e9p b\u1ea1n x\u00e1c minh xem pipeline c\u00f3 ho\u1ea1t \u0111\u1ed9ng nh\u01b0 mong \u0111\u1ee3i hay kh\u00f4ng.<\/p>\n\n\n\n<p>Ngo\u00e0i ra, b\u1ea1n c\u00f3 th\u1ec3 thi\u1ebft l\u1eadp l\u1ecbch tr\u00ecnh t\u1ef1 \u0111\u1ed9ng:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>V\u00e0o tab <strong>Triggers <\/strong>v\u00e0 t\u1ea1o m\u1ed9t trigger m\u1edbi.<\/li>\n\n\n\n<li>X\u00e1c \u0111\u1ecbnh c\u00e1c \u0111i\u1ec1u ki\u1ec7n k\u00edch ho\u1ea1t, ch\u1eb3ng h\u1ea1n nh\u01b0 l\u1ecbch tr\u00ecnh theo th\u1eddi gian (v\u00ed d\u1ee5: h\u00e0ng ng\u00e0y l\u00fac 8:00 s\u00e1ng) ho\u1eb7c \u0111i\u1ec1u ki\u1ec7n theo s\u1ef1 ki\u1ec7n (v\u00ed d\u1ee5: t\u1ec7p \u0111\u1ebfn Azure Blob Storage).<\/li>\n\n\n\n<li>Li\u00ean k\u1ebft tr\u00ecnh k\u00edch ho\u1ea1t v\u1edbi pipeline c\u1ee7a b\u1ea1n \u0111\u1ec3 k\u00edch ho\u1ea1t t\u1ef1 \u0111\u1ed9ng h\u00f3a.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-cac-cau-h\u1ecfi-th\u01b0\u1eddng-g\u1eb7p-v\u1ec1-azure-calculator\"><span class=\"ez-toc-section\" id=\"Cac_cau_hoi_thuong_gap_ve_Azure_Calculator\"><\/span><strong>C\u00e1c c\u00e2u h\u1ecfi th\u01b0\u1eddng g\u1eb7p v\u1ec1 Azure Calculator<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-cac-k\u1ebft-n\u1ed1i-azure-data-factory-d\u01b0\u1ee3c-s\u1eed-d\u1ee5ng-nhi\u1ec1u-nh\u1ea5t-la-gi\"><strong>C\u00e1c k\u1ebft n\u1ed1i Azure Data Factory \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng nhi\u1ec1u nh\u1ea5t l\u00e0 g\u00ec?<\/strong><\/h3>\n\n\n\n<p>Azure Data Factory h\u1ed7 tr\u1ee3 h\u01a1n 100 tr\u00ecnh k\u1ebft n\u1ed1i c\u00f9ng v\u1edbi c\u00e1c t\u00e0i nguy\u00ean m\u1ea1nh m\u1ebd cho c\u1ea3 ng\u01b0\u1eddi d\u00f9ng code-based v\u00e0 non-code-based \u0111\u1ec3 \u0111\u00e1p \u1ee9ng nhu c\u1ea7u chuy\u1ec3n \u0111\u1ed5i v\u00e0 di chuy\u1ec3n d\u1eef li\u1ec7u. Trong \u0111\u00f3, c\u00e1c lo\u1ea1i k\u1ebft n\u1ed1i \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng ph\u1ed5 bi\u1ebfn nh\u1ea5t l\u00e0:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>K\u1ebft n\u1ed1i v\u1edbi c\u00e1c c\u01a1 s\u1edf d\u1eef li\u1ec7u quan h\u1ec7 (Relational Databases):<\/strong> Azure Data Factory cung c\u1ea5p nhi\u1ec1u tr\u00ecnh k\u1ebft n\u1ed1i (SQL Server, Oracle, MySQL) cho ph\u00e9p tr\u00edch xu\u1ea5t d\u1eef li\u1ec7u, th\u1ef1c thi truy v\u1ea5n v\u00e0 c\u00e1c thao t\u00e1c CRUD. \u0110i\u1ec1u n\u00e0y cho ph\u00e9p t\u1ef1 \u0111\u1ed9ng h\u00f3a vi\u1ec7c l\u1ea5y d\u1eef li\u1ec7u t\u1eeb c\u01a1 s\u1edf d\u1eef li\u1ec7u ngu\u1ed3n v\u00e0 t\u1ea3i ch\u00fang v\u00e0o c\u00e1c kho d\u1eef li\u1ec7u l\u1edbn nh\u01b0 Azure SQL Data Warehouse \u0111\u1ec3 ph\u00e2n t\u00edch.<\/li>\n\n\n\n<li><strong>H\u1ec7 th\u1ed1ng l\u01b0u tr\u1eef t\u1ec7p (file storage)<\/strong> nh\u01b0 Azure Blob Storage, Azure Data Lake Storage v\u00e0 c\u1ea3 h\u1ec7 th\u1ed1ng t\u1ec7p c\u1ee5c b\u1ed9. Kh\u1ea3 n\u0103ng n\u00e0y gi\u00fap x\u1eed l\u00fd c\u1ea3 d\u1eef li\u1ec7u c\u00f3 c\u1ea5u tr\u00fac v\u00e0 phi c\u1ea5u tr\u00fac th\u00f4ng qua c\u00e1c quy tr\u00ecnh \u0111\u1ecdc v\u00e0 ghi t\u1ec7p. V\u00ed d\u1ee5, Azure Data Factory c\u00f3 th\u1ec3 \u0111\u1ecdc, h\u1ee3p nh\u1ea5t c\u00e1c t\u1ec7p CSV t\u1eeb Blob Storage r\u1ed3i t\u1ea3i ch\u00fang l\u00ean Azure SQL Database.<\/li>\n\n\n\n<li><strong>C\u00e1c d\u1ecbch v\u1ee5 trong h\u1ec7 sinh th\u00e1i Azure: <\/strong>Azure Data Factory c\u00f3 t\u00edch h\u1ee3p s\u1eb5n v\u1edbi d\u1ecbch v\u1ee5 Azure nh\u01b0 Azure SQL Database v\u00e0 Azure Cosmos DB (NoSQL). \u0110i\u1ec1u n\u00e0y cho ph\u00e9p chuy\u1ec3n giao d\u1eef li\u1ec7u v\u00e0 x\u1eed l\u00fd \u0111\u1ecbnh k\u1ef3 gi\u1eefa c\u00e1c d\u1ecbch v\u1ee5. V\u00ed d\u1ee5 \u0111i\u1ec3n h\u00ecnh l\u00e0 tr\u00edch xu\u1ea5t d\u1eef li\u1ec7u t\u1eeb Cosmos DB, sau \u0111\u00f3 chuy\u1ec3n \u0111\u1ed5i v\u00e0 t\u1ea3i ch\u00fang l\u00ean n\u1ec1n t\u1ea3ng ph\u00e2n t\u00edch nh\u01b0 Azure Synapse Analytics.<\/li>\n\n\n\n<li><strong>\u1ee8ng d\u1ee5ng ph\u1ea7n m\u1ec1m qua API<\/strong>: Azure Data Factory cung c\u1ea5p tr\u00ecnh k\u1ebft n\u1ed1i cho nhi\u1ec1u \u1ee9ng d\u1ee5ng ph\u1ea7n m\u1ec1m ph\u1ed5 bi\u1ebfn nh\u01b0 Salesforce, Google Analytics v\u00e0 Dynamics 365. \u0110i\u1ec1u n\u00e0y gi\u00fap tr\u00edch xu\u1ea5t v\u00e0 \u0111\u1ed3ng b\u1ed9 h\u00f3a d\u1eef li\u1ec7u tr\u1ef1c ti\u1ebfp, lo\u1ea1i b\u1ecf nhu c\u1ea7u ph\u00e1t tri\u1ec3n gi\u1ea3i ph\u00e1p k\u1ebft n\u1ed1i t\u00f9y ch\u1ec9nh. Azure Data Factory c\u00f3 th\u1ec3 \u0111\u1ecbnh ngh\u0129a workflow \u0111\u1ec3 t\u1ef1 \u0111\u1ed9ng l\u1ea5y d\u1eef li\u1ec7u t\u1eeb c\u00e1c h\u1ec7 th\u1ed1ng CRM v\u00e0 t\u1ea3i v\u00e0o Azure Data Lake.<\/li>\n\n\n\n<li><strong>Data Transfer Protocols<\/strong>: Azure Data Factory h\u1ed7 tr\u1ee3 nhi\u1ec1u giao th\u1ee9c truy\u1ec1n d\u1eef li\u1ec7u ti\u00eau chu\u1ea9n bao g\u1ed3m FTP, SFTP v\u00e0 HTTP. Kh\u1ea3 n\u0103ng n\u00e0y cho ph\u00e9p truy\u1ec1n d\u1eef li\u1ec7u an to\u00e0n \u0111\u1ebfn v\u00e0 \u0111i t\u1eeb c\u00e1c h\u1ec7 th\u1ed1ng b\u00ean ngo\u00e0i ho\u1eb7c c\u00e1c m\u00e1y ch\u1ee7 SFTP c\u1ee7a b\u00ean th\u1ee9 ba. Nh\u1edd \u0111\u00f3, Azure Data Factory c\u00f3 th\u1ec3 t\u1ef1 \u0111\u1ed9ng truy xu\u1ea5t t\u1ec7p, x\u1eed l\u00fd v\u00e0 t\u1ea3i ch\u00fang v\u00e0o h\u1ec7 th\u1ed1ng Business Intelligence (BI).<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-azure-data-factory-mang-l\u1ea1i-nh\u1eefng-l\u1ee3i-ich-gi\"><strong>Azure Data Factory mang l\u1ea1i nh\u1eefng l\u1ee3i \u00edch g\u00ec?<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>T\u00edch h\u1ee3p d\u1eef li\u1ec7u d\u1ec5 d\u00e0ng<\/strong><\/li>\n<\/ul>\n\n\n\n<p>Azure Data Factory cung c\u1ea5p h\u01a1n 100 connectors \u0111\u1ec3 t\u00edch h\u1ee3p d\u1eef li\u1ec7u t\u1eeb nhi\u1ec1u h\u1ec7 th\u1ed1ng kh\u00e1c nhau l\u01b0u tr\u1eef t\u1ea1i ch\u1ed7 ho\u1eb7c tr\u00ean \u0111\u00e1m m\u00e2y. Azure Data Factory cho ph\u00e9p b\u1ea1n d\u1ec5 d\u00e0ng di chuy\u1ec3n v\u00e0 n\u00e2ng c\u1ea5p kh\u1ed1i l\u01b0\u1ee3ng c\u00f4ng vi\u1ec7c ETL. \u0110i\u1ec1u n\u00e0y \u00e1p d\u1ee5ng cho c\u00e1c g\u00f3i SQL Server Integration Services v\u00e0 c\u00e1c kh\u1ed1i l\u01b0\u1ee3ng c\u00f4ng vi\u1ec7c t\u1ea1i ch\u1ed7 kh\u00e1c m\u00e0 b\u1ea1n mu\u1ed1n chuy\u1ec3n l\u00ean \u0111\u00e1m m\u00e2y.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>H\u1ed7 tr\u1ee3 k\u1ebft n\u1ed1i m\u1edf r\u1ed9ng cho nhi\u1ec1u ngu\u1ed3n d\u1eef li\u1ec7u kh\u00e1c nhau<\/strong><\/li>\n<\/ul>\n\n\n\n<p>Azure Data Factory cung c\u1ea5p h\u1ed7 tr\u1ee3 k\u1ebft n\u1ed1i m\u1edf r\u1ed9ng \u0111\u1ec3 k\u1ebft n\u1ed1i v\u1edbi nhi\u1ec1u ngu\u1ed3n d\u1eef li\u1ec7u kh\u00e1c nhau. \u0110i\u1ec1u n\u00e0y h\u1eefu \u00edch khi b\u1ea1n mu\u1ed1n l\u1ea5y ho\u1eb7c ghi d\u1eef li\u1ec7u t\u1eeb nhi\u1ec1u ngu\u1ed3n d\u1eef li\u1ec7u kh\u00e1c nhau.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Chuy\u1ec3n \u0111\u1ed5i d\u1eef li\u1ec7u kh\u00f4ng c\u1ea7n m\u00e3<\/strong><\/li>\n<\/ul>\n\n\n\n<p>V\u1edbi giao di\u1ec7n ng\u01b0\u1eddi d\u00f9ng tr\u1ef1c quan, Azure Data Factory cho ph\u00e9p d\u1ec5 d\u00e0ng nh\u1eadp v\u00e0 chuy\u1ec3n \u0111\u1ed5i d\u1eef li\u1ec7u m\u00e0 kh\u00f4ng c\u1ea7n vi\u1ebft b\u1ea5t k\u1ef3 m\u00e3 n\u00e0o. Chuy\u1ec3n \u0111\u1ed5i d\u1eef li\u1ec7u th\u01b0\u1eddng l\u00e0 m\u1ed9t nhi\u1ec7m v\u1ee5 ph\u1ee9c t\u1ea1p \u0111\u00f2i h\u1ecfi k\u1ef9 n\u0103ng coding, scripting v\u00e0 ph\u00e2n t\u00edch chuy\u00ean s\u00e2u. Tuy nhi\u00ean, Azure Data Factory c\u00f3 th\u1ec3 x\u1eed l\u00fd c\u00e1c d\u1ef1 \u00e1n t\u00edch h\u1ee3p d\u1eef li\u1ec7u ph\u1ee9c t\u1ea1p m\u1ed9t c\u00e1ch li\u1ec1n m\u1ea1ch.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Kh\u1ea3 n\u0103ng m\u1edf r\u1ed9ng<\/strong><\/li>\n<\/ul>\n\n\n\n<p>Azure Data Factory c\u00f3 th\u1ec3 v\u01b0\u1ee3t tr\u1ed9i h\u01a1n m\u1ed9t s\u1ed1 gi\u1ea3i ph\u00e1p ETL truy\u1ec1n th\u1ed1ng v\u1ed1n b\u1ecb gi\u1edbi h\u1ea1n v\u1ec1 s\u1ed1 l\u01b0\u1ee3ng v\u00e0 lo\u1ea1i d\u1eef li\u1ec7u b\u1ea1n c\u00f3 th\u1ec3 x\u1eed l\u00fd. V\u1edbi kh\u1ea3 n\u0103ng ph\u00e2n chia th\u1eddi gian v\u00e0 ki\u1ec3m so\u00e1t lu\u1ed3ng, Azure Data Factory c\u00f3 th\u1ec3 di chuy\u1ec3n kh\u1ed1i l\u01b0\u1ee3ng l\u1edbn d\u1eef li\u1ec7u ch\u1ec9 trong v\u00e0i ph\u00fat.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Hi\u1ec7u qu\u1ea3 chi ph\u00ed<\/strong><\/li>\n<\/ul>\n\n\n\n<p>Azure Data Factory cung c\u1ea5p d\u1ecbch v\u1ee5 ETL b\u00ean c\u1ea1nh kh\u1ea3 n\u0103ng t\u00edch h\u1ee3p d\u1eef li\u1ec7u. Do \u0111\u00f3, b\u1ea1n kh\u00f4ng ph\u1ea3i tr\u1ea3 ph\u00ed c\u1ea5p ph\u00e9p li\u00ean quan \u0111\u1ebfn c\u00e1c gi\u1ea3i ph\u00e1p ETL truy\u1ec1n th\u1ed1ng. H\u01a1n n\u1eefa, Azure Data Factory c\u00f3 m\u00f4 h\u00ecnh tr\u1ea3 ti\u1ec1n theo m\u1ee9c s\u1eed d\u1ee5ng, gi\u00fap gi\u1ea3m thi\u1ec3u chi ph\u00ed c\u01a1 s\u1edf h\u1ea1 t\u1ea7ng ban \u0111\u1ea7u l\u1edbn.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>H\u1ed7 tr\u1ee3 h\u1ec7 sinh th\u00e1i downstream c\u1ee7a Azure<\/strong><\/li>\n<\/ul>\n\n\n\n<p>V\u00ec Azure Data Factory thu\u1ed9c h\u1ec7 sinh th\u00e1i Azure c\u1ee7a Microsoft, b\u1ea1n c\u00f3 th\u1ec3 d\u1ec5 d\u00e0ng t\u00edch h\u1ee3p v\u1edbi c\u00e1c downstream services nh\u01b0 Azure HDInsight, t\u00e0i kho\u1ea3n l\u01b0u tr\u1eef Azure Blob ho\u1eb7c d\u1ecbch v\u1ee5 ph\u00e2n t\u00edch Azure Data Lake. Ngo\u00e0i vi\u1ec7c t\u00edch h\u1ee3p li\u1ec1n m\u1ea1ch v\u1edbi c\u00e1c d\u1ecbch v\u1ee5 Azure, Azure Data Factory c\u00f2n cung c\u1ea5p c\u00e1c b\u1ea3n c\u1eadp nh\u1eadt b\u1ea3o m\u1eadt v\u00e0 h\u1ed7 tr\u1ee3 k\u1ef9 thu\u1eadt th\u01b0\u1eddng xuy\u00ean.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-cac-best-practice-d\u1ec3-s\u1eed-d\u1ee5ng-azure-data-factory-la-gi\"><strong>C\u00e1c best practice \u0111\u1ec3 s\u1eed d\u1ee5ng Azure Data Factory l\u00e0 g\u00ec?<\/strong><\/h3>\n\n\n\n<p><strong>1. Thi\u1ebft k\u1ebf module pipeline<\/strong><\/p>\n\n\n\n<p>\u0110\u1ec3 t\u1ea1o ra c\u00e1c quy tr\u00ecnh l\u00e0m vi\u1ec7c c\u00f3 th\u1ec3 b\u1ea3o tr\u00ec v\u00e0 m\u1edf r\u1ed9ng, h\u00e3y thi\u1ebft k\u1ebf c\u00e1c pipeline v\u1edbi c\u00e1c th\u00e0nh ph\u1ea7n c\u00f3 th\u1ec3 t\u00e1i s\u1eed d\u1ee5ng. Thi\u1ebft k\u1ebf m\u00f4-\u0111un cho ph\u00e9p g\u1ee1 l\u1ed7i, ki\u1ec3m tra v\u00e0 c\u1eadp nh\u1eadt t\u1eebng ph\u1ea7n pipeline d\u1ec5 d\u00e0ng h\u01a1n.&nbsp;<\/p>\n\n\n\n<p>V\u00ed d\u1ee5: thay v\u00ec nh\u00fang logic chuy\u1ec3n \u0111\u1ed5i d\u1eef li\u1ec7u v\u00e0o m\u1ed7i pipeline, h\u00e3y t\u1ea1o m\u1ed9t pipeline c\u00f3 th\u1ec3 t\u00e1i s\u1eed d\u1ee5ng, c\u00f3 th\u1ec3 \u0111\u01b0\u1ee3c g\u1ecdi tr\u00ean nhi\u1ec1u quy tr\u00ecnh l\u00e0m vi\u1ec7c. \u0110i\u1ec1u n\u00e0y gi\u00fap gi\u1ea3m thi\u1ec3u s\u1ef1 tr\u00f9ng l\u1eb7p v\u00e0 t\u0103ng c\u01b0\u1eddng t\u00ednh nh\u1ea5t qu\u00e1n gi\u1eefa c\u00e1c d\u1ef1 \u00e1n.<\/p>\n\n\n\n<p><strong>2. T\u1ed1i \u01b0u h\u00f3a vi\u1ec7c di chuy\u1ec3n d\u1eef li\u1ec7u<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>S\u1eed d\u1ee5ng compression: \u0110\u1ec3 gi\u1ea3m thi\u1ec3u th\u1eddi gian truy\u1ec1n d\u1eef li\u1ec7u v\u00e0 gi\u1ea3m m\u1ee9c s\u1eed d\u1ee5ng network bandwidth, h\u00e3y n\u00e9n c\u00e1c dataset l\u1edbn tr\u01b0\u1edbc khi di chuy\u1ec3n ch\u00fang. V\u00ed d\u1ee5: s\u1eed d\u1ee5ng gzip ho\u1eb7c c\u00e1c ph\u01b0\u01a1ng ph\u00e1p t\u01b0\u01a1ng t\u1ef1 c\u00f3 th\u1ec3 t\u0103ng t\u1ed1c \u0111\u00e1ng k\u1ec3 vi\u1ec7c di chuy\u1ec3n c\u00e1c t\u1ec7p l\u1edbn.<\/li>\n\n\n\n<li>Ch\u1ecdn integration runtime ph\u00f9 h\u1ee3p: Vi\u1ec7c l\u1ef1a ch\u1ecdn th\u1eddi gian ch\u1ea1y t\u00edch h\u1ee3p (Azure IR, IR t\u1ef1 l\u01b0u tr\u1eef ho\u1eb7c IR SSIS) r\u1ea5t quan tr\u1ecdng trong vi\u1ec7c t\u1ed1i \u01b0u h\u00f3a hi\u1ec7u su\u1ea5t. V\u00ed d\u1ee5: IR t\u1ef1 l\u01b0u tr\u1eef c\u00f3 th\u1ec3 \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng \u0111\u1ec3 di chuy\u1ec3n d\u1eef li\u1ec7u t\u1ea1i ch\u1ed7 nh\u1eb1m \u0111\u1ea3m b\u1ea3o vi\u1ec7c truy\u1ec1n d\u1eef li\u1ec7u an to\u00e0n v\u00e0 hi\u1ec7u qu\u1ea3, trong khi Azure IR l\u00fd t\u01b0\u1edfng cho c\u00e1c ho\u1ea1t \u0111\u1ed9ng \u0111\u00e1m m\u00e2y g\u1ed1c.<\/li>\n<\/ul>\n\n\n\n<p><strong>3. Tri\u1ec3n khai x\u1eed l\u00fd l\u1ed7i m\u1ea1nh m\u1ebd<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Ch\u00ednh s\u00e1ch th\u1eed l\u1ea1i: C\u1ea5u h\u00ecnh ch\u00ednh s\u00e1ch th\u1eed l\u1ea1i cho c\u00e1c l\u1ed7i t\u1ea1m th\u1eddi, ch\u1eb3ng h\u1ea1n nh\u01b0 gi\u00e1n \u0111o\u1ea1n m\u1ea1ng t\u1ea1m th\u1eddi ho\u1eb7c th\u1eddi gian ch\u1edd m\u00e1y ch\u1ee7. \u0110i\u1ec1u n\u00e0y \u0111\u1ea3m b\u1ea3o c\u00e1c pipeline c\u00f3 th\u1ec3 ph\u1ee5c h\u1ed3i v\u00e0 ho\u00e0n t\u1ea5t m\u00e0 kh\u00f4ng c\u1ea7n can thi\u1ec7p th\u1ee7 c\u00f4ng.<\/li>\n\n\n\n<li>Thi\u1ebft l\u1eadp c\u1ea3nh b\u00e1o: Tri\u1ec3n khai c\u1ea3nh b\u00e1o v\u00e0 th\u00f4ng b\u00e1o \u0111\u1ec3 ch\u1ee7 \u0111\u1ed9ng th\u00f4ng b\u00e1o cho nh\u00f3m c\u1ee7a b\u1ea1n v\u1ec1 c\u00e1c l\u1ed7i pipeline ho\u1eb7c s\u1ef1 c\u1ed1 hi\u1ec7u su\u1ea5t. S\u1eed d\u1ee5ng c\u00e1c c\u00f4ng c\u1ee5 nh\u01b0 Azure Monitor \u0111\u1ec3 c\u1ea5u h\u00ecnh c\u1ea3nh b\u00e1o t\u00f9y ch\u1ec9nh d\u1ef1a tr\u00ean c\u00e1c lo\u1ea1i l\u1ed7i c\u1ee5 th\u1ec3 ho\u1eb7c \u0111\u1ed9 tr\u1ec5 th\u1ef1c thi, \u0111\u1ea3m b\u1ea3o gi\u1ea3i quy\u1ebft nhanh ch\u00f3ng v\u00e0 gi\u1ea3m thi\u1ec3u th\u1eddi gian ng\u1eebng ho\u1ea1t \u0111\u1ed9ng.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-t\u1ed5ng-k\u1ebft\"><span class=\"ez-toc-section\" id=\"Tong_ket\"><\/span><strong>T\u1ed5ng k\u1ebft<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Azure Data Factory \u0111\u00e3 ch\u1ee9ng minh l\u00e0 c\u00f4ng c\u1ee5 PaaS kh\u00f4ng th\u1ec3 thi\u1ebfu, gi\u00fap t\u1ef1 \u0111\u1ed9ng h\u00f3a v\u00e0 m\u1edf r\u1ed9ng quy m\u00f4 c\u00e1c quy tr\u00ecnh ETL\/ELT ph\u1ee9c t\u1ea1p. Hy v\u1ecdng v\u1edbi th\u00f4ng tin ITviec v\u1eeba chia s\u1ebb, c\u00e1c chuy\u00ean gia IT s\u1ebd d\u1ec5 d\u00e0ng tri\u1ec3n khai Azure Data Factory, tr\u1edf th\u00e0nh b\u01b0\u1edbc \u0111i chi\u1ebfn l\u01b0\u1ee3c nh\u1eb1m chu\u1ea9n h\u00f3a d\u1eef li\u1ec7u, th\u00fac \u0111\u1ea9y hi\u1ec7u su\u1ea5t ph\u00e2n t\u00edch v\u00e0 l\u00e0 n\u1ec1n t\u1ea3ng v\u1eefng ch\u1eafc \u0111\u1ec3 x\u00e2y d\u1ef1ng m\u1ed9t Data Warehouse hi\u1ec7n \u0111\u1ea1i tr\u00ean n\u1ec1n t\u1ea3ng Azure.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Trong k\u1ef7 nguy\u00ean Big Data v\u00e0 \u0111i\u1ec7n to\u00e1n \u0111\u00e1m m\u00e2y, vi\u1ec7c di chuy\u1ec3n, bi\u1ebfn \u0111\u1ed5i v\u00e0 s\u1eafp x\u1ebfp d\u1eef li\u1ec7u t\u1eeb nhi\u1ec1u ngu\u1ed3n kh\u00e1c nhau l\u00e0 m\u1ed9t th\u00e1ch th\u1ee9c l\u1edbn. Azure Data Factory (ADF) ra \u0111\u1eddi nh\u01b0 m\u1ed9t gi\u1ea3i ph\u00e1p Platform as a Service (PaaS) \u0111\u01b0\u1ee3c qu\u1ea3n l\u00fd ho\u00e0n to\u00e0n tr\u00ean n\u1ec1n t\u1ea3ng Microsoft Azure. [&hellip;]<\/p>\n","protected":false},"author":205,"featured_media":93315,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_gspb_post_css":"","footnotes":""},"categories":[109],"tags":[],"class_list":["post-93288","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-chuyen-mon-it"],"blocksy_meta":[],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.8 (Yoast SEO v27.8) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Azure Data Factory l\u00e0 g\u00ec: H\u01b0\u1edbng d\u1eabn thi\u1ebft l\u1eadp Azure Data Factory - ITviec Blog<\/title>\n<meta name=\"description\" content=\"T\u00ecm hi\u1ec3u chi ti\u1ebft v\u1ec1 Azure Data Factory - gi\u1ea3i ph\u00e1p PaaS, \u0111\u1ec3 n\u1eafm v\u1eefng c\u00e1ch di chuy\u1ec3n, bi\u1ebfn \u0111\u1ed5i v\u00e0 s\u1eafp x\u1ebfp d\u1eef li\u1ec7u t\u1eeb nhi\u1ec1u ngu\u1ed3n kh\u00e1c nhau.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/itviec.com\/blog\/huong-dan-su-dung-azure-data-factory\/\" \/>\n<meta property=\"og:locale\" content=\"vi_VN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Azure Data Factory l\u00e0 g\u00ec: H\u01b0\u1edbng d\u1eabn thi\u1ebft l\u1eadp Azure Data Factory\" \/>\n<meta property=\"og:description\" content=\"Trong k\u1ef7 nguy\u00ean Big Data v\u00e0 \u0111i\u1ec7n to\u00e1n \u0111\u00e1m m\u00e2y, vi\u1ec7c di chuy\u1ec3n, bi\u1ebfn \u0111\u1ed5i v\u00e0 s\u1eafp x\u1ebfp d\u1eef li\u1ec7u t\u1eeb nhi\u1ec1u ngu\u1ed3n kh\u00e1c nhau l\u00e0 m\u1ed9t th\u00e1ch th\u1ee9c l\u1edbn. Azure Data\" \/>\n<meta property=\"og:url\" content=\"https:\/\/itviec.com\/blog\/huong-dan-su-dung-azure-data-factory\/\" \/>\n<meta property=\"og:site_name\" content=\"ITviec Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/ITviec\" \/>\n<meta property=\"article:published_time\" content=\"2025-11-28T08:21:17+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-11-28T08:21:20+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/11\/azure-data-factory-scaled.png\" \/>\n\t<meta property=\"og:image:width\" content=\"800\" \/>\n\t<meta property=\"og:image:height\" content=\"421\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"H\u00e0 My\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@ITviec\" \/>\n<meta name=\"twitter:site\" content=\"@ITviec\" \/>\n<meta name=\"twitter:label1\" content=\"\u0110\u01b0\u1ee3c vi\u1ebft b\u1edfi\" \/>\n\t<meta name=\"twitter:data1\" content=\"H\u00e0 My\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u01af\u1edbc t\u00ednh th\u1eddi gian \u0111\u1ecdc\" \/>\n\t<meta name=\"twitter:data2\" content=\"27 ph\u00fat\" \/>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Azure Data Factory l\u00e0 g\u00ec: H\u01b0\u1edbng d\u1eabn thi\u1ebft l\u1eadp Azure Data Factory - ITviec Blog","description":"T\u00ecm hi\u1ec3u chi ti\u1ebft v\u1ec1 Azure Data Factory - gi\u1ea3i ph\u00e1p PaaS, \u0111\u1ec3 n\u1eafm v\u1eefng c\u00e1ch di chuy\u1ec3n, bi\u1ebfn \u0111\u1ed5i v\u00e0 s\u1eafp x\u1ebfp d\u1eef li\u1ec7u t\u1eeb nhi\u1ec1u ngu\u1ed3n kh\u00e1c nhau.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/itviec.com\/blog\/huong-dan-su-dung-azure-data-factory\/","og_locale":"vi_VN","og_type":"article","og_title":"Azure Data Factory l\u00e0 g\u00ec: H\u01b0\u1edbng d\u1eabn thi\u1ebft l\u1eadp Azure Data Factory","og_description":"Trong k\u1ef7 nguy\u00ean Big Data v\u00e0 \u0111i\u1ec7n to\u00e1n \u0111\u00e1m m\u00e2y, vi\u1ec7c di chuy\u1ec3n, bi\u1ebfn \u0111\u1ed5i v\u00e0 s\u1eafp x\u1ebfp d\u1eef li\u1ec7u t\u1eeb nhi\u1ec1u ngu\u1ed3n kh\u00e1c nhau l\u00e0 m\u1ed9t th\u00e1ch th\u1ee9c l\u1edbn. Azure Data","og_url":"https:\/\/itviec.com\/blog\/huong-dan-su-dung-azure-data-factory\/","og_site_name":"ITviec Blog","article_publisher":"https:\/\/www.facebook.com\/ITviec","article_published_time":"2025-11-28T08:21:17+00:00","article_modified_time":"2025-11-28T08:21:20+00:00","og_image":[{"width":800,"height":421,"url":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/11\/azure-data-factory-scaled.png","type":"image\/png"}],"author":"H\u00e0 My","twitter_card":"summary_large_image","twitter_creator":"@ITviec","twitter_site":"@ITviec","twitter_misc":{"\u0110\u01b0\u1ee3c vi\u1ebft b\u1edfi":"H\u00e0 My","\u01af\u1edbc t\u00ednh th\u1eddi gian \u0111\u1ecdc":"27 ph\u00fat"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/itviec.com\/blog\/huong-dan-su-dung-azure-data-factory\/#article","isPartOf":{"@id":"https:\/\/itviec.com\/blog\/huong-dan-su-dung-azure-data-factory\/"},"author":{"name":"H\u00e0 My","@id":"https:\/\/itviec.com\/blog\/#\/schema\/person\/7bd099db44e5079508c9b7e8c0161e3c"},"headline":"Azure Data Factory l\u00e0 g\u00ec: H\u01b0\u1edbng d\u1eabn thi\u1ebft l\u1eadp Azure Data Factory","datePublished":"2025-11-28T08:21:17+00:00","dateModified":"2025-11-28T08:21:20+00:00","mainEntityOfPage":{"@id":"https:\/\/itviec.com\/blog\/huong-dan-su-dung-azure-data-factory\/"},"wordCount":7177,"publisher":{"@id":"https:\/\/itviec.com\/blog\/#organization"},"image":{"@id":"https:\/\/itviec.com\/blog\/huong-dan-su-dung-azure-data-factory\/#primaryimage"},"thumbnailUrl":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/11\/azure-data-factory-scaled.png","articleSection":["Chuy\u00ean m\u00f4n IT"],"inLanguage":"vi"},{"@type":"WebPage","@id":"https:\/\/itviec.com\/blog\/huong-dan-su-dung-azure-data-factory\/","url":"https:\/\/itviec.com\/blog\/huong-dan-su-dung-azure-data-factory\/","name":"Azure Data Factory l\u00e0 g\u00ec: H\u01b0\u1edbng d\u1eabn thi\u1ebft l\u1eadp Azure Data Factory - ITviec Blog","isPartOf":{"@id":"https:\/\/itviec.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/itviec.com\/blog\/huong-dan-su-dung-azure-data-factory\/#primaryimage"},"image":{"@id":"https:\/\/itviec.com\/blog\/huong-dan-su-dung-azure-data-factory\/#primaryimage"},"thumbnailUrl":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/11\/azure-data-factory-scaled.png","datePublished":"2025-11-28T08:21:17+00:00","dateModified":"2025-11-28T08:21:20+00:00","description":"T\u00ecm hi\u1ec3u chi ti\u1ebft v\u1ec1 Azure Data Factory - gi\u1ea3i ph\u00e1p PaaS, \u0111\u1ec3 n\u1eafm v\u1eefng c\u00e1ch di chuy\u1ec3n, bi\u1ebfn \u0111\u1ed5i v\u00e0 s\u1eafp x\u1ebfp d\u1eef li\u1ec7u t\u1eeb nhi\u1ec1u ngu\u1ed3n kh\u00e1c nhau.","breadcrumb":{"@id":"https:\/\/itviec.com\/blog\/huong-dan-su-dung-azure-data-factory\/#breadcrumb"},"inLanguage":"vi","potentialAction":[{"@type":"ReadAction","target":["https:\/\/itviec.com\/blog\/huong-dan-su-dung-azure-data-factory\/"]}]},{"@type":"ImageObject","inLanguage":"vi","@id":"https:\/\/itviec.com\/blog\/huong-dan-su-dung-azure-data-factory\/#primaryimage","url":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/11\/azure-data-factory-scaled.png","contentUrl":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/11\/azure-data-factory-scaled.png","width":800,"height":421,"caption":"Azure Data Factory - itviec blog"},{"@type":"BreadcrumbList","@id":"https:\/\/itviec.com\/blog\/huong-dan-su-dung-azure-data-factory\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Chuy\u00ean m\u00f4n IT","item":"https:\/\/itviec.com\/blog\/chuyen-mon-it\/"},{"@type":"ListItem","position":2,"name":"Azure Data Factory l\u00e0 g\u00ec: H\u01b0\u1edbng d\u1eabn thi\u1ebft l\u1eadp Azure Data Factory"}]},{"@type":"WebSite","@id":"https:\/\/itviec.com\/blog\/#website","url":"https:\/\/itviec.com\/blog\/","name":"ITviec Blog","description":"IT Jobs &amp; People in Vietnam","publisher":{"@id":"https:\/\/itviec.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/itviec.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"vi"},{"@type":"Organization","@id":"https:\/\/itviec.com\/blog\/#organization","name":"ITviec","url":"https:\/\/itviec.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"vi","@id":"https:\/\/itviec.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2018\/12\/itviec-black-square-facebook.png","contentUrl":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2018\/12\/itviec-black-square-facebook.png","width":1800,"height":1800,"caption":"ITviec"},"image":{"@id":"https:\/\/itviec.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/ITviec","https:\/\/x.com\/ITviec","https:\/\/www.linkedin.com\/company\/itviec","https:\/\/www.youtube.com\/channel\/UCYthAQ3bcGr57M_ag5gHDvQ"]},{"@type":"Person","@id":"https:\/\/itviec.com\/blog\/#\/schema\/person\/7bd099db44e5079508c9b7e8c0161e3c","name":"H\u00e0 My","image":{"@type":"ImageObject","inLanguage":"vi","@id":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2024\/03\/ha-my-author-e1709882319892-100x100.jpeg","url":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2024\/03\/ha-my-author-e1709882319892-100x100.jpeg","contentUrl":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2024\/03\/ha-my-author-e1709882319892-100x100.jpeg","caption":"H\u00e0 My"},"url":"https:\/\/itviec.com\/blog\/author\/ha-my\/"}]}},"_links":{"self":[{"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/posts\/93288","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/users\/205"}],"replies":[{"embeddable":true,"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/comments?post=93288"}],"version-history":[{"count":3,"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/posts\/93288\/revisions"}],"predecessor-version":[{"id":93316,"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/posts\/93288\/revisions\/93316"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/media\/93315"}],"wp:attachment":[{"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/media?parent=93288"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/categories?post=93288"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/tags?post=93288"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}