{"id":5469,"date":"2023-05-31T09:30:41","date_gmt":"2023-05-31T08:30:41","guid":{"rendered":"https:\/\/sparkle.consulting\/?p=5469"},"modified":"2026-07-09T18:03:19","modified_gmt":"2026-07-09T17:03:19","slug":"data-automation-six-data-functions","status":"publish","type":"post","link":"https:\/\/sparkle.consulting\/nl\/data-automation-six-data-functions\/","title":{"rendered":"Data-automatisering: 6 functies die je zou moeten automatiseren"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"5469\" class=\"elementor elementor-5469\" data-elementor-post-type=\"post\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-ff1c411 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"ff1c411\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-ae4fb01\" data-id=\"ae4fb01\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-c6393cc elementor-widget elementor-widget-text-editor\" data-id=\"c6393cc\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Any good Solutions or Data Architect should have various issues on their table at any given point in time. That\u2019s normal. What\u2019s <em><strong>ab<\/strong><\/em>normal is that the same problem finds its way back to that table. This is the one repeatable pattern you want to get rid of. Data Automation is about firstly finding these patterns and secondly executing on it.<\/p><p>Solving the solution in conceptually the right place should always be the status quo of the architect. Although this is always desired, time pressures will make us do silly things. However, when your solutions are built on repeatable patterns it somewhat forces your hand.<\/p><p>It is very uncomfortable to fix point solutions if they were generated by an automated process. You will make a couple of enemies by creating these siloed solutions.<\/p><p>By using repeatable patterns, you will be forced to zoom out and look at the problem holistically. For example, you will be forced to look at the logical data model and identify potential short comings, rather than simply adjusting some SQL code that loads data into your target object. It will highlight that your pattern isn\u2019t perfect and thus forcing you to making it more robust.<\/p><p>You can always code yourself out of a sticky situation, however it is not sustainable to have bespoke coding patterns all over your ecosystem.<\/p><p>I am not a big proponent of no-code platforms. I am perfectly fine with high-code platforms, as long as I don\u2019t need to write the code myself or if I do, only once. But I would be severely limited if I am not allowed to look at the code and tweak the pattern if needed.<\/p><p>On the topic of data automation, it would be hypocritical of me not to share this image every time I talk about it. This remains true and one should be reminded of it.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5957ec1 elementor-widget elementor-widget-image\" data-id=\"5957ec1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"404\" height=\"408\" src=\"https:\/\/sparkle.consulting\/wp-content\/uploads\/2023\/05\/Data-automation.png\" class=\"attachment-large size-large wp-image-5474\" alt=\"Automation comic\" srcset=\"https:\/\/sparkle.consulting\/wp-content\/uploads\/2023\/05\/Data-automation.png 404w, https:\/\/sparkle.consulting\/wp-content\/uploads\/2023\/05\/Data-automation-297x300.png 297w, https:\/\/sparkle.consulting\/wp-content\/uploads\/2023\/05\/Data-automation-150x150.png 150w\" sizes=\"(max-width: 404px) 100vw, 404px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c93383d elementor-widget elementor-widget-text-editor\" data-id=\"c93383d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>image credit: <a href=\"https:\/\/xkcd.com\/1319\/\" target=\"_blank\" rel=\"noopener\">xkcd.com<\/a><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-fbd2bc3 elementor-widget elementor-widget-text-editor\" data-id=\"fbd2bc3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Just because something is painful, doesn\u2019t mean it isn\u2019t the right thing to do. Setting up those initial templates and patterns are hard, but it will trump manual at some point.<\/p><p>Here are some of my obvious repeatable patterns that should be considered for data automation.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ba94193 elementor-widget elementor-widget-heading\" data-id=\"ba94193\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Loading<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-26f3dea elementor-widget elementor-widget-text-editor\" data-id=\"26f3dea\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Regardless of your loading pattern, whether it is batch loads, a CDC approach or message driven streaming. The way you ingest data onto your desired platform or storage should be transform-light and repeatable. It should be a couple of clicks to setup the process for loading.<\/p><p>I am a proponent of ELT \u2014 getting your data loaded as is and transforming in target. This allows for easier modularisation of loading and then the target platform can do the hard work of optimising query plans for on target transformations.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-53d7ae2 elementor-widget elementor-widget-heading\" data-id=\"53d7ae2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Data transformation<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-280472b elementor-widget elementor-widget-text-editor\" data-id=\"280472b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>The T in ETL\/ELT does not have to be purely bespoke.<\/p><p>Modularising different functions is a good principle in many professions especially software development. Modularise the functions that is repeated often. Some examples of this is data cleansing patterns and hard business rules such as data type casting.<\/p><p>Conceptually (there is that word again) do the same things in the same place. Don\u2019t cleanse and transform in 1 step. In this way you can modularise the repetitive tasks and strip them from the non-repetitive.<\/p><p>The T is also style dependent. For example a Data Vault modelling style is highly geared towards automation and is thus a no brainer to have a heavy focus on repeatable patterns, but even 3NF and Kimball modelling styles are highly repetitive in nature.<\/p><p>Choose a modelling style and stick to it. This can of course be a combination of design patterns but decide on a standard and prevent individual point variations. Sticking to the patterns that you set out for yourself, this will also force your hand in doing the right thing in the right place. By not choosing a specific modelling technique you are also making a choice\u200a\u2014\u200aleaving the decisions in the hands of each engineer. This will result in spaghetti un-repeatable code. By all means introduce new patterns if the need arises, but introduce it as a pattern rather than giving free reign to data engineers.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-208d6a8 elementor-widget elementor-widget-heading\" data-id=\"208d6a8\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Data Quality<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-fdee061 elementor-widget elementor-widget-text-editor\" data-id=\"fdee061\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Modularize and repeat quality checks in your data acquisition process, but make sure it lands up in the right hands.<\/p><p>Failed quality checks need to flow back to people who will be disincentivized for bad data. Whether that is your product owners or assigned data stewards, they need to be pro-active to get rid of <a href=\"https:\/\/sparkle.consulting\/data-challenges\/data-quality-issues\/\">data quality issues.<\/a><\/p><p>A simple process flow could look like this, where the \u201cbad data\u201d is hidden. Data can be hidden by tagging the datasets if they have failed quality checks. They can then be excluded in loading processes or hidden via views or row\/column level security.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5e2f5c9 elementor-widget elementor-widget-image\" data-id=\"5e2f5c9\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t<figure class=\"wp-caption\">\n\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"836\" height=\"471\" src=\"https:\/\/sparkle.consulting\/wp-content\/uploads\/2023\/05\/Data-quality-checks.png\" class=\"attachment-large size-large wp-image-5482\" alt=\"Data quality checks diagram\" srcset=\"https:\/\/sparkle.consulting\/wp-content\/uploads\/2023\/05\/Data-quality-checks.png 836w, https:\/\/sparkle.consulting\/wp-content\/uploads\/2023\/05\/Data-quality-checks-300x169.png 300w, https:\/\/sparkle.consulting\/wp-content\/uploads\/2023\/05\/Data-quality-checks-768x433.png 768w\" sizes=\"(max-width: 836px) 100vw, 836px\" \/>\t\t\t\t\t\t\t\t\t\t\t<figcaption class=\"widget-image-caption wp-caption-text\">image by author<\/figcaption>\n\t\t\t\t\t\t\t\t\t\t<\/figure>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-71db2a4 elementor-widget elementor-widget-text-editor\" data-id=\"71db2a4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>However you decide to tag, hide or exclude the failed data can be shipped as DDL statements built in to your automation process.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ef7a789 elementor-widget elementor-widget-heading\" data-id=\"ef7a789\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Distribution strategy<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-487af51 elementor-widget elementor-widget-text-editor\" data-id=\"487af51\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>The distribution of data on MPP platforms are a crucial part in the life cycle and sustainability of your data platforms.<\/p><p>Depending on your modelling patterns this can either be highly automated or slightly automated, but there shouldn\u2019t be no automation opportunities.<\/p><p>Regardless of your platform, how you should be storing data is based on several factors, like query patterns, amount of data, and whether the objects should be optimised for reading or writing. Query patterns are highly dependent on the style of data modelling you are using. A lot of these factors are known at design time and thus the distribution can be allocated at initial creation of DDL. Some require refinement over time, as your data sizes and query patterns change. This can still be automated as it continuously does health checks on your data.<\/p><p>Because of the repetitive and standardized nature of Data Vault as a modelling style, there is good opportunity to apply proper distribution standards with no intervention. At design time, this can be overwritten should it require changes.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2798f22 elementor-widget elementor-widget-image\" data-id=\"2798f22\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t<figure class=\"wp-caption\">\n\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"1024\" height=\"714\" src=\"https:\/\/sparkle.consulting\/wp-content\/uploads\/2023\/05\/Standardised-DV-query-patterns-allows-for-easy-automation-1024x714.png\" class=\"attachment-large size-large wp-image-5484\" alt=\"Data Vault consumption query patterns\" srcset=\"https:\/\/sparkle.consulting\/wp-content\/uploads\/2023\/05\/Standardised-DV-query-patterns-allows-for-easy-automation-1024x714.png 1024w, https:\/\/sparkle.consulting\/wp-content\/uploads\/2023\/05\/Standardised-DV-query-patterns-allows-for-easy-automation-300x209.png 300w, https:\/\/sparkle.consulting\/wp-content\/uploads\/2023\/05\/Standardised-DV-query-patterns-allows-for-easy-automation-768x535.png 768w, https:\/\/sparkle.consulting\/wp-content\/uploads\/2023\/05\/Standardised-DV-query-patterns-allows-for-easy-automation.png 1222w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/>\t\t\t\t\t\t\t\t\t\t\t<figcaption class=\"widget-image-caption wp-caption-text\">Standardised DV query patterns allows for easy automation \u2014 image by author<\/figcaption>\n\t\t\t\t\t\t\t\t\t\t<\/figure>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c354e02 elementor-widget elementor-widget-text-editor\" data-id=\"c354e02\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Typically, different platforms (like Synapse, Redshift and Snowflake and Delta Lake to name a few) have good documentation available on what strategies to follow regarding partitioning, distribution and clustering. They also usually have documentation to tell you how to do health checks whether your data has become skew. You can then take the learnings of this larger community and bake it into an repeatable pattern to run periodically, allowing your data to \u201cself-heal\u201d.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2b87bf0 elementor-widget elementor-widget-heading\" data-id=\"2b87bf0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Data Security<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a0b79c8 elementor-widget elementor-widget-text-editor\" data-id=\"a0b79c8\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Data security takes up a healthy amount of airtime whenever I talk to clients. It has always been important but it is becoming more nuanced. Most companies are moving to the cloud and \u201cas a service\u201d solutions. This, together with complexities around personal information makes it a complicated task to wrap your head around. Not only does each country have it\u2019s own legislation, each company has its own interpretation of that legislation.<\/p><p>Disclaimer \u2014 automation won\u2019t fix those nuances.<\/p><p>Automation does allow you to iterate and test your security policies much faster. Give the compliance team something to work with. Only lawyers can work with rules on paper, the rest of us need to see it in action.<\/p><p>You shouldn\u2019t need to manually apply security policies on a user or role bases. Define policies upfront and ideally you want these to be deployable (not deplorable) at design time.<\/p><p>Depending on your data modelling style you could easily deploy sensitive data to different normalised tables in secure schemas (like with Data Vault), or you could keep it together but apply column or row level policies on the table with the DDL generation. Whether you mask the data, encrypt it or simply secure it from the user, most target platforms cater for some or all of these features. The design stays homogeneous, the deployment you tailor based on which target platform you are deploying to.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-faa3a76 elementor-widget elementor-widget-heading\" data-id=\"faa3a76\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Testing<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4b0d84b elementor-widget elementor-widget-text-editor\" data-id=\"4b0d84b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Much has been written about this, and I would recommend you read about testing in data ops\u00b9 amongst others.<\/p><p>This is a broad topic and I will simply emphasise one aspect that I see is neglected: Curated input, curated output. To create curated datasets that can be tested against is where pain and the glory lies.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b84e7e2 elementor-widget elementor-widget-heading\" data-id=\"b84e7e2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Meeting invite declines<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b4b57d8 elementor-widget elementor-widget-text-editor\" data-id=\"b4b57d8\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Ok, this is a bonus one, but people are all Zoomed out. Well architected solutions goes hand in hand with well executed plans. Both need some uninterrupted focused effort from time to time.<\/p><p>In conclusion, when looking holistically at Data Automation there are probably many more areas functions one can automate, but I find these six play a pivotal role in the sustainability of your architecture. Continuously improving the patterns for these will force you to build well architected solutions and stop the cycle of having to fix the same issues.<\/p><p>Simply keep asking yourself where do repeatable patterns exists or where can they be improved &#8211; improve the pattern, rinse and repeat.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b3645ab elementor-widget elementor-widget-global elementor-global-2994 elementor-widget-heading\" data-id=\"b3645ab\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">ABOUT THE AUTHORS<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f2624b7 elementor-widget elementor-widget-global elementor-global-5511 elementor-widget-author-box\" data-id=\"f2624b7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"author-box.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-author-box\">\n\t\t\t\t\t\t\t<div  class=\"elementor-author-box__avatar\">\n\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/sparkle.consulting\/wp-content\/uploads\/2023\/05\/Corne-1-240x300.png\" alt=\"Picture of Corn\u00e9 Potgieter\" loading=\"lazy\">\n\t\t\t\t<\/div>\n\t\t\t\n\t\t\t<div class=\"elementor-author-box__text\">\n\t\t\t\t\t\t\t\t\t<div >\n\t\t\t\t\t\t<h4 class=\"elementor-author-box__name\">\n\t\t\t\t\t\t\tCorn\u00e9 Potgieter\t\t\t\t\t\t<\/h4>\n\t\t\t\t\t<\/div>\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-author-box__bio\">\n\t\t\t\t\t\t<p>Data Architect<\/p>\n\t\t\t\t\t<\/div>\n\t\t\t\t\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-b17eb3d elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"b17eb3d\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-e90f316\" data-id=\"e90f316\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-7506490 elementor-widget elementor-widget-text-editor\" data-id=\"7506490\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><a href=\"https:\/\/datakitchen.io\/add-dataops-tests-to-deploy-with-confidence\/\" target=\"_blank\" rel=\"noopener\">[1] &#8211; DataKitchen. 2022. Blog &#8211; Add DataOps Tests to Deploy with Confidence | DataKitchen. [online] Available at:\u00a0<\/a><a href=\"https:\/\/datakitchen.io\/add-dataops-tests-to-deploy-with-confidence\/\" target=\"_blank\" rel=\"noopener\">https:\/\/datakitchen.io\/add-dataops-tests-to-deploy-with-confidence\/<\/a><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Six data functions to automate that play a pivotal role in the sustainability of your architecture. Continuously improving the patterns for these will force you to build well architected solutions and stop the cycle of having to fix the same issues.<\/p>","protected":false},"author":4,"featured_media":8646,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_uag_custom_page_level_css":"","site-sidebar-layout":"default","site-content-layout":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","footnotes":""},"categories":[13],"tags":[40,42,41,44,43],"class_list":["post-5469","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-technology","tag-data-automation","tag-data-modelling","tag-data-quality","tag-data-security","tag-data-transformation"],"acf":[],"uagb_featured_image_src":{"full":["https:\/\/sparkle.consulting\/wp-content\/uploads\/2023\/05\/Data-automation-6-functions-you-should-automate-blog-banner.png",2240,1260,false],"thumbnail":["https:\/\/sparkle.consulting\/wp-content\/uploads\/2023\/05\/Data-automation-6-functions-you-should-automate-blog-banner-150x150.png",150,150,true],"medium":["https:\/\/sparkle.consulting\/wp-content\/uploads\/2023\/05\/Data-automation-6-functions-you-should-automate-blog-banner-300x169.png",300,169,true],"medium_large":["https:\/\/sparkle.consulting\/wp-content\/uploads\/2023\/05\/Data-automation-6-functions-you-should-automate-blog-banner-768x432.png",768,432,true],"large":["https:\/\/sparkle.consulting\/wp-content\/uploads\/2023\/05\/Data-automation-6-functions-you-should-automate-blog-banner-1024x576.png",1024,576,true],"1536x1536":["https:\/\/sparkle.consulting\/wp-content\/uploads\/2023\/05\/Data-automation-6-functions-you-should-automate-blog-banner-1536x864.png",1536,864,true],"2048x2048":["https:\/\/sparkle.consulting\/wp-content\/uploads\/2023\/05\/Data-automation-6-functions-you-should-automate-blog-banner-2048x1152.png",2048,1152,true],"trp-custom-language-flag":["https:\/\/sparkle.consulting\/wp-content\/uploads\/2023\/05\/Data-automation-6-functions-you-should-automate-blog-banner.png",18,10,false]},"uagb_author_info":{"display_name":"Kristof Van de Loock","author_link":"https:\/\/sparkle.consulting\/nl\/author\/kristof-vandeloocksparkle-consulting\/"},"uagb_comment_info":0,"uagb_excerpt":"Six data functions to automate that play a pivotal role in the sustainability of your architecture. Continuously improving the patterns for these will force you to build well architected solutions and stop the cycle of having to fix the same issues.","_links":{"self":[{"href":"https:\/\/sparkle.consulting\/nl\/wp-json\/wp\/v2\/posts\/5469","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sparkle.consulting\/nl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sparkle.consulting\/nl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sparkle.consulting\/nl\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/sparkle.consulting\/nl\/wp-json\/wp\/v2\/comments?post=5469"}],"version-history":[{"count":68,"href":"https:\/\/sparkle.consulting\/nl\/wp-json\/wp\/v2\/posts\/5469\/revisions"}],"predecessor-version":[{"id":13678,"href":"https:\/\/sparkle.consulting\/nl\/wp-json\/wp\/v2\/posts\/5469\/revisions\/13678"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sparkle.consulting\/nl\/wp-json\/wp\/v2\/media\/8646"}],"wp:attachment":[{"href":"https:\/\/sparkle.consulting\/nl\/wp-json\/wp\/v2\/media?parent=5469"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sparkle.consulting\/nl\/wp-json\/wp\/v2\/categories?post=5469"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sparkle.consulting\/nl\/wp-json\/wp\/v2\/tags?post=5469"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}