{"id":6540,"date":"2020-07-22T10:07:25","date_gmt":"2020-07-22T10:07:25","guid":{"rendered":"https:\/\/beta.bluetab.net\/bluetab\/"},"modified":"2023-10-17T12:52:43","modified_gmt":"2023-10-17T12:52:43","slug":"bluetab","status":"publish","type":"post","link":"https:\/\/bluetab.co.uk\/en\/bluetab\/","title":{"rendered":"Basic AWS Glue concepts"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"6540\" class=\"elementor elementor-6540\" data-elementor-post-type=\"post\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-16b3cc9a elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"16b3cc9a\" data-element_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-3c157cdd\" data-id=\"3c157cdd\" data-element_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-137c6a5d elementor-widget elementor-widget-heading\" data-id=\"137c6a5d\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">Basic AWS Glue concepts<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<section class=\"elementor-section elementor-inner-section elementor-element elementor-element-586113f1 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"586113f1\" data-element_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-50 elementor-inner-column elementor-element elementor-element-76dc0a9b\" data-id=\"76dc0a9b\" data-element_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-110457f6 elementor-position-left elementor-vertical-align-middle elementor-widget elementor-widget-image-box\" data-id=\"110457f6\" data-element_type=\"widget\" data-widget_type=\"image-box.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"elementor-image-box-wrapper\"><figure class=\"elementor-image-box-img\"><a href=\"https:\/\/www.linkedin.com\/in\/alvsanand\/\" target=\"_blank\" tabindex=\"-1\"><img decoding=\"async\" width=\"150\" height=\"150\" data-src=\"https:\/\/www.bluetab.net\/wp-content\/uploads\/2020\/07\/Alvaro-Santos-150x150.jpg\" class=\"attachment-thumbnail size-thumbnail wp-image-6535 lazyload\" alt=\"\" data-srcset=\"https:\/\/bluetab.co.uk\/wp-content\/uploads\/2020\/07\/Alvaro-Santos-150x150.jpg 150w, https:\/\/bluetab.co.uk\/wp-content\/uploads\/2020\/07\/Alvaro-Santos-300x300.jpg 300w, https:\/\/bluetab.co.uk\/wp-content\/uploads\/2020\/07\/Alvaro-Santos-75x75.jpg 75w, https:\/\/bluetab.co.uk\/wp-content\/uploads\/2020\/07\/Alvaro-Santos.jpg 500w\" data-sizes=\"(max-width: 150px) 100vw, 150px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 150px; --smush-placeholder-aspect-ratio: 150\/150;\" \/><\/a><\/figure><div class=\"elementor-image-box-content\"><h4 class=\"elementor-image-box-title\"><a href=\"https:\/\/www.linkedin.com\/in\/alvsanand\/\" target=\"_blank\">\u00c1lvaro Santos<\/a><\/h4><p class=\"elementor-image-box-description\">Senior Cloud Solution Architect\u200b<\/p><\/div><\/div>\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<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-d5e690c\" data-id=\"d5e690c\" data-element_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-53cc04d6 elementor-share-buttons--view-icon elementor-share-buttons--skin-minimal elementor-share-buttons--shape-circle elementor-grid-0 elementor-share-buttons--color-official elementor-widget elementor-widget-share-buttons\" data-id=\"53cc04d6\" data-element_type=\"widget\" data-widget_type=\"share-buttons.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-grid\" role=\"list\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-grid-item\" role=\"listitem\">\n\t\t\t\t\t\t<div class=\"elementor-share-btn elementor-share-btn_twitter\" role=\"button\" tabindex=\"0\" aria-label=\"Share on twitter\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-share-btn__icon\">\n\t\t\t\t\t\t\t\t<i class=\"fab fa-twitter\" aria-hidden=\"true\"><\/i>\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-grid-item\" role=\"listitem\">\n\t\t\t\t\t\t<div class=\"elementor-share-btn elementor-share-btn_linkedin\" role=\"button\" tabindex=\"0\" aria-label=\"Share on linkedin\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-share-btn__icon\">\n\t\t\t\t\t\t\t\t<i class=\"fab fa-linkedin\" aria-hidden=\"true\"><\/i>\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t\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\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-65edec82 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"65edec82\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-narrow\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-31bd85cd\" data-id=\"31bd85cd\" data-element_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-57704753 elementor-widget elementor-widget-theme-post-featured-image elementor-widget-image\" data-id=\"57704753\" data-element_type=\"widget\" data-widget_type=\"theme-post-featured-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=\"1024\" height=\"512\" src=\"https:\/\/bluetab.co.uk\/wp-content\/uploads\/2023\/04\/6-1024x512.png\" class=\"attachment-large size-large wp-image-17832\" alt=\"\" srcset=\"https:\/\/bluetab.co.uk\/wp-content\/uploads\/2023\/04\/6-1024x512.png 1024w, https:\/\/bluetab.co.uk\/wp-content\/uploads\/2023\/04\/6-300x150.png 300w, https:\/\/bluetab.co.uk\/wp-content\/uploads\/2023\/04\/6-768x384.png 768w, https:\/\/bluetab.co.uk\/wp-content\/uploads\/2023\/04\/6.png 1200w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/>\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-7be9652c elementor-widget elementor-widget-text-editor\" data-id=\"7be9652c\" data-element_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>At\u00a0<strong>Cloud Practice<\/strong>\u00a0we aim to encourage adoption of the cloud as a way of working in the IT world. To help with this task, we are going to publish numerous good practice articles and use cases and others will talk about those key services within the cloud.<\/p><p>We present the basic concepts\u00a0<strong><a href=\"\/\/aws.amazon.com\/es\/glue\">AWS Glue<\/a><\/strong>\u00a0below.<\/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-f5c59c8 elementor-widget elementor-widget-spacer\" data-id=\"f5c59c8\" data-element_type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7b5ec6e elementor-widget elementor-widget-heading\" data-id=\"7b5ec6e\" data-element_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\">What is AWS Glue?<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-31ee0465 elementor-widget elementor-widget-text-editor\" data-id=\"31ee0465\" data-element_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><strong>AWS Glue<\/strong>\u00a0is one of those\u00a0<em>AWS<\/em>\u00a0services that are relatively new but have enormous potential. In particular, this service could be very useful to all those companies that work with data and do not yet have powerful Big Data infrastructure.<\/p><p>Basically, Glue is a fully\u00a0<em>AWS<\/em>-managed pay-as-you-go ETL service without the need for provisioning instances. To achieve this, it combines the speed and power of\u00a0<em>Apache Spark<\/em>\u00a0with the data organisation offered by\u00a0<em>Hive Metastore<\/em>.<\/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-37484a2 elementor-widget elementor-widget-image\" data-id=\"37484a2\" data-element_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 decoding=\"async\" width=\"800\" height=\"454\" data-src=\"https:\/\/www.bluetab.net\/wp-content\/uploads\/2020\/07\/harmonize_glue_1.gif\" class=\"attachment-large size-large wp-image-2802 lazyload\" alt=\"\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 800px; --smush-placeholder-aspect-ratio: 800\/454;\" \/>\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-3ccc3c2 elementor-widget elementor-widget-spacer\" data-id=\"3ccc3c2\" data-element_type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b7c4316 elementor-widget elementor-widget-heading\" data-id=\"b7c4316\" data-element_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\">AWS Glue Data Catalogue<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e8556eb elementor-widget elementor-widget-text-editor\" data-id=\"e8556eb\" data-element_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 Glue Data Catalogue is where all the data sources and destinations for Glue jobs are stored.<\/p><ul><li><strong>Table<\/strong>\u00a0is the definition of a metadata table on the data sources and not the data itself.\u00a0<em>AWS Glue<\/em>\u00a0tables can refer to data based on files stored in S3 (such as Parquet, CSV, etc.), RDBMS tables\u2026<br \/><br \/><\/li><li><strong>Database<\/strong>\u00a0refers to a grouping of data sources to which the tables belong.<br \/><br \/><\/li><li><strong>Connection<\/strong>\u00a0is a link configured between\u00a0<em>AWS Glue<\/em>\u00a0and\u00a0<em>an RDS<\/em>,\u00a0<em>Redshift<\/em>\u00a0or other\u00a0<em>JDBC<\/em>-compliant database cluster. These allow Glue to access their data.<br \/><br \/><\/li><li><strong>Crawler<\/strong>\u00a0is the service that connects to a data store, it progresses through a prioritised list of classifiers to determine the schema for the data and to generate the metadata tables. They support determining the schema of complex unstructured or semi-structured data. This is especially important when working with\u00a0<em>Parquet<\/em>,\u00a0<em>AVRO<\/em>, etc. data sources.<\/li><\/ul>\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-33a8a52 elementor-widget elementor-widget-spacer\" data-id=\"33a8a52\" data-element_type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5a26c95 elementor-widget elementor-widget-heading\" data-id=\"5a26c95\" data-element_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\">ETL<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7940527 elementor-widget elementor-widget-text-editor\" data-id=\"7940527\" data-element_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>An\u00a0<em>ETL<\/em>\u00a0in\u00a0<em>AWS Glue<\/em>\u00a0consists primarily of scripts and other tools that use the data configured in the\u00a0<em>Data Catalogue<\/em>\u00a0to extract, transform and load the data into a defined site.<\/p><ul><li><strong>Job<\/strong>\u00a0is the main ETL engine. A job consists of a script that loads data from the sources defined in the catalogue and performs transformations on them. Glue can generate a script automatically or you can create a customised one using the\u00a0<em>Apache Spark<\/em>\u00a0API in\u00a0<em>Python<\/em>\u00a0(<em>PySpark<\/em>) or\u00a0<em>Scala<\/em>. It also allows the use of external libraries which will be linked to the job by means of a zip file in S3.<br \/><br \/><\/li><li><strong>Triggers<\/strong>\u00a0are responsible for running the\u00a0<em>Jobs<\/em>. They can be run according to a timetable, a CloudWatch event or even a cron command.<br \/><br \/><\/li><li><strong>Workflows<\/strong>\u00a0is a set of\u00a0<em>triggers<\/em>,\u00a0<em>crawlers<\/em>\u00a0and\u00a0<em>jobs<\/em>\u00a0related to each other in\u00a0<em>AWS Glue<\/em>. You can use them to create a workflow to perform a complex multi-step ETL, but that\u00a0<em>AWS Glue<\/em>\u00a0can run as a single entity.<br \/><br \/><\/li><li><strong>ML Transforms<\/strong>\u00a0are specific jobs that use\u00a0<em>Machine Learning<\/em>\u00a0models to create custom transforms for data cleaning, such as identifying duplicate data, for example.<br \/><br \/><\/li><li>Finally, you can also use\u00a0<strong>Dev Endpoints<\/strong>\u00a0and\u00a0<strong>Notebooks<\/strong>, which make it faster and easier to develop and test scripts.<\/li><\/ul>\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-adb681f elementor-widget elementor-widget-spacer\" data-id=\"adb681f\" data-element_type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-aa64eae elementor-widget elementor-widget-heading\" data-id=\"aa64eae\" data-element_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\">Examples<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-beb5b18 elementor-widget elementor-widget-text-editor\" data-id=\"beb5b18\" data-element_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>Sample ETL script in Python:<\/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-f483fe9 elementor-widget elementor-widget-elementor-syntax-highlighter\" data-id=\"f483fe9\" data-element_type=\"widget\" data-widget_type=\"elementor-syntax-highlighter.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<pre><code class='language-python'>import sys\r\nfrom awsglue.transforms import *\r\nfrom awsglue.utils import getResolvedOptions\r\nfrom pyspark.context import SparkContext\r\nfrom awsglue.context import GlueContext\r\nfrom awsglue.dynamicframe import DynamicFrame\r\nfrom awsglue.job import Job\r\n\r\nargs = getResolvedOptions(sys.argv, [&#039;JOB_NAME&#039;])\r\n\r\nsc = SparkContext()\r\n\r\nglueContext = GlueContext(sc)\r\nspark = glueContext.spark_session\r\njob = Job(glueContext)\r\n\r\n## Read Data from a RDS DB using JDBC driver\r\nconnection_option = {\r\n&quot;url&quot;: &quot;jdbc:mysql:\/\/mysql&ndash;instance1.123456789012.us-east-1.rds.amazonaws.com:3306\/database&quot;,\r\n&quot;user&quot;: &quot;test&quot;,\r\n&quot;password&quot;: &quot;password&quot;,\r\n&quot;dbtable&quot;: &quot;test_table&quot;,\r\n&quot;hashexpression&quot;: &quot;column_name&quot;,\r\n&quot;hashpartitions&quot;: &quot;10&quot;\r\n}\r\n\r\nsource_df = glueContext.create_dynamic_frame.from_options(&#039;mysql&#039;, connection_options = connection_option, transformation_ctx = &quot;source_df&quot;)\r\n\r\njob.init(args[&#039;JOB_NAME&#039;], args)\r\n\r\n## Convert DataFrames to *AWS Glue* &#039;s DynamicFrames Object\r\ndynamic_df = DynamicFrame.fromDF(source_df, glueContext, &quot;dynamic_df&quot;)\r\n\r\n## Write Dynamic Frame to S3 in CSV format\r\ndatasink = glueContext.write_dynamic_frame.from_options(frame = dynamic_df, connection_type = &quot;s3&quot;, connection_options = {\r\n&quot;path&quot;: &quot;s3:\/\/glueuserdata&quot;\r\n}, format = &quot;csv&quot;, transformation_ctx = &quot;datasink&quot;)\r\n\r\njob.commit() <\/code><\/pre><script>\nif (!document.getElementById('syntaxed-prism')) {\n\tvar my_awesome_script = document.createElement('script');\n\tmy_awesome_script.setAttribute('src','https:\/\/bluetab.co.uk\/wp-content\/plugins\/syntax-highlighter-for-elementor\/assets\/prism2.js');\n\tmy_awesome_script.setAttribute('id','syntaxed-prism');\n\tdocument.body.appendChild(my_awesome_script);\n} else {\n\twindow.Prism && Prism.highlightAll();\n}\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e3313c5 elementor-widget elementor-widget-text-editor\" data-id=\"e3313c5\" data-element_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>Creating a Job using a command line:<\/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-55c632a elementor-widget elementor-widget-elementor-syntax-highlighter\" data-id=\"55c632a\" data-element_type=\"widget\" data-widget_type=\"elementor-syntax-highlighter.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<pre><code class='language-python'>aws glue create-job --name python-job-cli --role Glue_DefaultRole \\\r\n\r\n--command &#039;{&quot;Name&quot; : &quot;my_python_etl&quot;, &quot;ScriptLocation&quot; : &quot;s3:\/\/SOME_BUCKET\/etl\/my_python_etl.py&quot;}&#039; <\/code><\/pre><script>\nif (!document.getElementById('syntaxed-prism')) {\n\tvar my_awesome_script = document.createElement('script');\n\tmy_awesome_script.setAttribute('src','https:\/\/bluetab.co.uk\/wp-content\/plugins\/syntax-highlighter-for-elementor\/assets\/prism2.js');\n\tmy_awesome_script.setAttribute('id','syntaxed-prism');\n\tdocument.body.appendChild(my_awesome_script);\n} else {\n\twindow.Prism && Prism.highlightAll();\n}\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-37ac1f6 elementor-widget elementor-widget-text-editor\" data-id=\"37ac1f6\" data-element_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>Running a Job using a command line:<\/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-cc87ef6 elementor-widget elementor-widget-elementor-syntax-highlighter\" data-id=\"cc87ef6\" data-element_type=\"widget\" data-widget_type=\"elementor-syntax-highlighter.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<pre><code class='language-python'>aws glue start-job-run --job-name my_python_etl <\/code><\/pre><script>\nif (!document.getElementById('syntaxed-prism')) {\n\tvar my_awesome_script = document.createElement('script');\n\tmy_awesome_script.setAttribute('src','https:\/\/bluetab.co.uk\/wp-content\/plugins\/syntax-highlighter-for-elementor\/assets\/prism2.js');\n\tmy_awesome_script.setAttribute('id','syntaxed-prism');\n\tdocument.body.appendChild(my_awesome_script);\n} else {\n\twindow.Prism && Prism.highlightAll();\n}\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ffca371 elementor-widget elementor-widget-text-editor\" data-id=\"ffca371\" data-element_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><em>AWS<\/em>\u00a0has also published a\u00a0<a href=\"\/\/github.com\/aws-samples\/aws-glue-samples\">repository<\/a>\u00a0with numerous example ETLs for\u00a0<em>AWS Glue<\/em>.<\/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-4afd1f1 elementor-widget elementor-widget-spacer\" data-id=\"4afd1f1\" data-element_type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-284dc8c elementor-widget elementor-widget-heading\" data-id=\"284dc8c\" data-element_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\">Security<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4de8cb6 elementor-widget elementor-widget-text-editor\" data-id=\"4de8cb6\" data-element_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>Like all\u00a0<em>AWS<\/em>\u00a0services, it is designed and implemented to provide the greatest possible security. Here are some of the security features that AWS\u00a0<em>GLUE<\/em>\u00a0offers:<\/p><ul><li><strong>Encryption at Rest<\/strong>: this service supports data encryption (<em>SSE-S3<\/em>\u00a0or\u00a0<em>SSE-KMS<\/em>) at rest for all objects it works with (metadata catalogue, connection password, writing or reading of ETL data, etc.).<br \/><br \/><\/li><li><strong>Encryption in Transit<\/strong>:\u00a0<em>AWS<\/em>\u00a0offers Secure Sockets Layer (SSL) encryption for all data in motion,\u00a0<em>AWS Glue<\/em>\u00a0API calls and all\u00a0<em>AWS<\/em>\u00a0services, such as S3, RDS\u2026<br \/><br \/><\/li><li><strong>Logging and monitoring<\/strong>: is tightly integrated with\u00a0<em>AWS CloudTrail<\/em>\u00a0and\u00a0<em>AWS CloudWatch<\/em>.<br \/><br \/><\/li><li><strong>Network security<\/strong>: is capable of enabling connections within a private\u00a0<em>VPC<\/em>\u00a0and working with\u00a0<em>Security Groups<\/em>.<\/li><\/ul>\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-7785f78 elementor-widget elementor-widget-spacer\" data-id=\"7785f78\" data-element_type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d7a8e48 elementor-widget elementor-widget-heading\" data-id=\"d7a8e48\" data-element_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\">Price<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-86d5d18 elementor-widget elementor-widget-text-editor\" data-id=\"86d5d18\" data-element_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>AWS bills for the execution time of the ETL\u00a0<em>crawlers<\/em>\u00a0\/\u00a0<em>jobs<\/em>\u00a0and for the use of the\u00a0<em>Data Catalogue<\/em>.<\/p><ul><li><strong>Crawlers<\/strong>: only\u00a0<em>crawler<\/em>\u00a0run time is billed. The price is $0.44 (eu-west-1) per hour of DPU (4\u00a0vCPUs and 16\u00a0GB RAM), billed in hourly increments.<br \/><br \/><\/li><li><strong>Data Catalogue<\/strong>: you can store up to one million objects at no cost and at $1.00 (eu-west-1) per 100,000 objects thereafter. In addition, $1 (eu-west-1) is billed for every 1,000,000 requests to the\u00a0<em>Data Catalogue<\/em>, of which first million is free.<br \/><br \/><\/li><li><strong>ETL Jobs<\/strong>: billed only for the time the ETL job takes to run. The price is $0.44 (eu-west-1) per hour of DPU (4\u00a0vCPUs and 16\u00a0GB RAM), billed by the second.<\/li><\/ul>\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-a0cb9e5 elementor-widget elementor-widget-spacer\" data-id=\"a0cb9e5\" data-element_type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8ac6766 elementor-widget elementor-widget-heading\" data-id=\"8ac6766\" data-element_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\">Benefits<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-33d6256 elementor-widget elementor-widget-text-editor\" data-id=\"33d6256\" data-element_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>Although it is a young service, it is quite mature and is being used a lot by clients all over the\u00a0<em>AWS<\/em>\u00a0world. The most important features it offers us are:<\/p><ul><li>It automatically manages resource escalation, task retries and error handling.<br \/><br \/><\/li><li>It is a Serverless service,\u00a0<em>AWS<\/em>\u00a0manages the provisioning and scaling of resources to execute the commands or queries in the Apache Spark environment.<br \/><br \/><\/li><li>The crawlers are able to track your data, suggest schemas and store them in a centralised catalogue. They also detect changes in them.<br \/><br \/><\/li><li>The Glue ETL engine automatically generates Python \/ Scala code and has a programmer including dependencies. This facilitates development of the ETLs.<br \/><br \/><\/li><li>You can directly query the S3 data using Athena and Redshift Spectrum using the Glue catalogue.<\/li><\/ul>\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-cf2f757 elementor-widget elementor-widget-spacer\" data-id=\"cf2f757\" data-element_type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5a29d99 elementor-widget elementor-widget-heading\" data-id=\"5a29d99\" data-element_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\">Conclusions<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-698e2c3 elementor-widget elementor-widget-text-editor\" data-id=\"698e2c3\" data-element_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>Like any database, tool, or service offered,\u00a0<em>AWS Glue<\/em>\u00a0has certain limitations that would need to be considered to adopt it as an ETL service. You therefore need to bear in mind that:<\/p><ul><li>It is highly focused on working with data sources in\u00a0<em>S3<\/em>\u00a0(CSV, Parquet, etc.) and\u00a0<em>JDBC<\/em>\u00a0(MySQL, Oracle, etc.).<br \/><br \/><\/li><li>The learning curve is steep. If your team comes from the traditional ETL world, you will need to wait for them to pick up understanding of\u00a0<em>Apache Spark<\/em>.<br \/><br \/><\/li><li>Unlike other ETL tools, it lacks default compatibility with many third-party services.<br \/><br \/><\/li><li>It is not a 100% ETL tool in use and, as it uses Spark, code optimisations need to be performed manually.<br \/><br \/><\/li><li>Until recently (April 2020),\u00a0<em>AWS Glue<\/em>\u00a0did not support streaming data. It is too early to use\u00a0<em>AWS Glue<\/em>\u00a0as an ETL tool for real-time data.<\/li><\/ul>\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-803fbac elementor-widget elementor-widget-spacer\" data-id=\"803fbac\" data-element_type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<section class=\"elementor-section elementor-inner-section elementor-element elementor-element-4f85b39 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"4f85b39\" data-element_type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\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-inner-column elementor-element elementor-element-1883d26\" data-id=\"1883d26\" data-element_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-6f39d27 elementor-widget elementor-widget-heading\" data-id=\"6f39d27\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h5 class=\"elementor-heading-title elementor-size-default\">Do you want to know more about what we offer and to see other success stories?<\/h5>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-bc47259 elementor-align-center elementor-widget elementor-widget-button\" data-id=\"bc47259\" data-element_type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"\/es\/\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">DISCOVER BLUETAB<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\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<section class=\"elementor-section elementor-inner-section elementor-element elementor-element-ae53502 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"ae53502\" data-element_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-50 elementor-inner-column elementor-element elementor-element-19fc06a2\" data-id=\"19fc06a2\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-224c7e84\" data-id=\"224c7e84\" data-element_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-616560f5 elementor-share-buttons--view-icon elementor-share-buttons--skin-minimal elementor-share-buttons--shape-circle elementor-grid-0 elementor-share-buttons--color-official elementor-widget elementor-widget-share-buttons\" data-id=\"616560f5\" data-element_type=\"widget\" data-widget_type=\"share-buttons.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-grid\" role=\"list\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-grid-item\" role=\"listitem\">\n\t\t\t\t\t\t<div class=\"elementor-share-btn elementor-share-btn_twitter\" role=\"button\" tabindex=\"0\" aria-label=\"Share on twitter\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-share-btn__icon\">\n\t\t\t\t\t\t\t\t<i class=\"fab fa-twitter\" aria-hidden=\"true\"><\/i>\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-grid-item\" role=\"listitem\">\n\t\t\t\t\t\t<div class=\"elementor-share-btn elementor-share-btn_linkedin\" role=\"button\" tabindex=\"0\" aria-label=\"Share on linkedin\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-share-btn__icon\">\n\t\t\t\t\t\t\t\t<i class=\"fab fa-linkedin\" aria-hidden=\"true\"><\/i>\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t\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-inner-section elementor-element elementor-element-2f0c0fd elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"2f0c0fd\" data-element_type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\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-50 elementor-inner-column elementor-element elementor-element-23a76b10\" data-id=\"23a76b10\" data-element_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-663bfbc3 elementor-position-top elementor-widget elementor-widget-image-box\" data-id=\"663bfbc3\" data-element_type=\"widget\" data-widget_type=\"image-box.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"elementor-image-box-wrapper\"><figure class=\"elementor-image-box-img\"><a href=\"https:\/\/www.linkedin.com\/in\/elipajares\/\" target=\"_blank\" tabindex=\"-1\"><img decoding=\"async\" width=\"150\" height=\"150\" data-src=\"https:\/\/www.bluetab.net\/wp-content\/uploads\/2020\/07\/Alvaro-Santos-150x150.jpg\" class=\"attachment-thumbnail size-thumbnail wp-image-6535 lazyload\" alt=\"\" data-srcset=\"https:\/\/bluetab.co.uk\/wp-content\/uploads\/2020\/07\/Alvaro-Santos-150x150.jpg 150w, https:\/\/bluetab.co.uk\/wp-content\/uploads\/2020\/07\/Alvaro-Santos-300x300.jpg 300w, https:\/\/bluetab.co.uk\/wp-content\/uploads\/2020\/07\/Alvaro-Santos-75x75.jpg 75w, https:\/\/bluetab.co.uk\/wp-content\/uploads\/2020\/07\/Alvaro-Santos.jpg 500w\" data-sizes=\"(max-width: 150px) 100vw, 150px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 150px; --smush-placeholder-aspect-ratio: 150\/150;\" \/><\/a><\/figure><\/div>\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<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-6df32869\" data-id=\"6df32869\" data-element_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-1fc71413 elementor-widget elementor-widget-heading\" data-id=\"1fc71413\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"elementor-heading-title elementor-size-default\">\u00c1lvaro Santos<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-44641a2 elementor-widget elementor-widget-heading\" data-id=\"44641a2\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"elementor-heading-title elementor-size-default\">Senior Cloud Solution Architect<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-54997a0c elementor-widget elementor-widget-text-editor\" data-id=\"54997a0c\" data-element_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>My name is \u00c1lvaro Santos and I have been working as Solution Architect for over 5 years. I am certified in\u00a0<em>AWS<\/em>,\u00a0<em>GCP<\/em>,\u00a0<em>Apache Spark<\/em>\u00a0and a few others. I joined Bluetab in October 2018, and since then I have been involved in cloud Banking and Energy projects and I am also involved as a Cloud Master Partitioner. I am passionate about new distributed patterns, Big Data, open-source software and anything else cool in the IT world.<\/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\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-5803991 elementor-section-full_width elementor-section-height-default elementor-section-height-default\" data-id=\"5803991\" data-element_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-50 elementor-top-column elementor-element elementor-element-994e815\" data-id=\"994e815\" data-element_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-99310cb elementor-widget elementor-widget-text-editor\" data-id=\"99310cb\" data-element_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><b>SOLUTIONS<\/b>, WE ARE EXPERTS<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<section class=\"elementor-section elementor-inner-section elementor-element elementor-element-e31b87c elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"e31b87c\" data-element_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-33 elementor-inner-column elementor-element elementor-element-7f81ee0\" data-id=\"7f81ee0\" data-element_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-6af32fe elementor-cta--skin-cover elementor-cta--valign-middle elementor-animated-content elementor-bg-transform elementor-bg-transform-zoom-in elementor-widget elementor-widget-call-to-action\" data-id=\"6af32fe\" data-element_type=\"widget\" data-widget_type=\"call-to-action.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<a class=\"elementor-cta\" href=\"\/es\/soluciones\/data-strategy\/\">\n\t\t\t\t\t<div class=\"elementor-cta__bg-wrapper\">\n\t\t\t\t<div class=\"elementor-cta__bg elementor-bg lazyload\" style=\"background-image:inherit;\" role=\"img\" aria-label=\"strategy-opt\" data-bg-image=\"url(https:\/\/www.bluetab.net\/wp-content\/uploads\/2020\/10\/strategy-opt.jpg)\"><\/div>\n\t\t\t\t<div class=\"elementor-cta__bg-overlay\"><\/div>\n\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-cta__content\">\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t<h5 class=\"elementor-cta__title elementor-cta__content-item elementor-content-item elementor-animated-item--grow\">\n\t\t\t\t\t\tDATA STRATEGY\t\t\t\t\t<\/h5>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/a>\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<div class=\"elementor-column elementor-col-33 elementor-inner-column elementor-element elementor-element-d38a6f8\" data-id=\"d38a6f8\" data-element_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-41fec7f elementor-cta--skin-cover elementor-cta--valign-middle elementor-animated-content elementor-bg-transform elementor-bg-transform-zoom-in elementor-widget elementor-widget-call-to-action\" data-id=\"41fec7f\" data-element_type=\"widget\" data-widget_type=\"call-to-action.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<a class=\"elementor-cta\" href=\"\/es\/soluciones\/data-fabric\/\">\n\t\t\t\t\t<div class=\"elementor-cta__bg-wrapper\">\n\t\t\t\t<div class=\"elementor-cta__bg elementor-bg lazyload\" style=\"background-image:inherit;\" role=\"img\" aria-label=\"fabric-opt\" data-bg-image=\"url(https:\/\/www.bluetab.net\/wp-content\/uploads\/2020\/10\/fabric-opt.jpg)\"><\/div>\n\t\t\t\t<div class=\"elementor-cta__bg-overlay\"><\/div>\n\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-cta__content\">\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t<h5 class=\"elementor-cta__title elementor-cta__content-item elementor-content-item elementor-animated-item--grow\">\n\t\t\t\t\t\tDATA FABRIC\t\t\t\t\t<\/h5>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/a>\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<div class=\"elementor-column elementor-col-33 elementor-inner-column elementor-element elementor-element-70d613c\" data-id=\"70d613c\" data-element_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-15bb484 elementor-cta--skin-cover elementor-cta--valign-middle elementor-animated-content elementor-bg-transform elementor-bg-transform-zoom-in elementor-widget elementor-widget-call-to-action\" data-id=\"15bb484\" data-element_type=\"widget\" data-widget_type=\"call-to-action.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<a class=\"elementor-cta\" href=\"\/es\/soluciones\/augmented-analytics\/\">\n\t\t\t\t\t<div class=\"elementor-cta__bg-wrapper\">\n\t\t\t\t<div class=\"elementor-cta__bg elementor-bg lazyload\" style=\"background-image:inherit;\" role=\"img\" aria-label=\"AUGMENTED-ANALYTICS-opt\" data-bg-image=\"url(https:\/\/www.bluetab.net\/wp-content\/uploads\/2020\/10\/AUGMENTED-ANALYTICS-opt.jpg)\"><\/div>\n\t\t\t\t<div class=\"elementor-cta__bg-overlay\"><\/div>\n\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-cta__content\">\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t<h5 class=\"elementor-cta__title elementor-cta__content-item elementor-content-item elementor-animated-item--grow\">\n\t\t\t\t\t\tAUGMENTED ANALYTICS\t\t\t\t\t<\/h5>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/a>\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\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-ba7239b\" data-id=\"ba7239b\" data-element_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-b23aba3 elementor-widget elementor-widget-text-editor\" data-id=\"b23aba3\" data-element_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>You may be interested in<\/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<section class=\"elementor-section elementor-top-section elementor-element elementor-element-58aa70aa elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"58aa70aa\" data-element_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-1a54cac4\" data-id=\"1a54cac4\" data-element_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-71882acb elementor-widget elementor-widget-spacer\" data-id=\"71882acb\" data-element_type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/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<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Basic AWS Glue concepts \u00c1lvaro Santos Senior Cloud Solution Architect\u200b Share on twitter Share on linkedin At\u00a0Cloud Practice\u00a0we aim to encourage adoption of the cloud as a way of working in the IT world. To help with this task, we are going to publish numerous good practice articles and use cases and others will talk [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":17832,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"elementor_header_footer","format":"standard","meta":{"inline_featured_image":false,"_uag_custom_page_level_css":"","_genesis_hide_title":false,"_genesis_hide_breadcrumbs":false,"_genesis_hide_singular_image":false,"_genesis_hide_footer_widgets":false,"_genesis_custom_body_class":"","_genesis_custom_post_class":"","_genesis_layout":"content-sidebar","footnotes":""},"categories":[19,668,633],"tags":[],"class_list":{"0":"post-6540","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-blog","8":"category-practices-en","9":"category-tech-en","10":"entry"},"uagb_featured_image_src":{"full":["https:\/\/bluetab.co.uk\/wp-content\/uploads\/2023\/04\/6.png",1200,600,false],"thumbnail":["https:\/\/bluetab.co.uk\/wp-content\/uploads\/2023\/04\/6-150x150.png",150,150,true],"medium":["https:\/\/bluetab.co.uk\/wp-content\/uploads\/2023\/04\/6-300x150.png",300,150,true],"medium_large":["https:\/\/bluetab.co.uk\/wp-content\/uploads\/2023\/04\/6-768x384.png",768,384,true],"large":["https:\/\/bluetab.co.uk\/wp-content\/uploads\/2023\/04\/6-1024x512.png",1024,512,true],"1536x1536":["https:\/\/bluetab.co.uk\/wp-content\/uploads\/2023\/04\/6.png",1200,600,false],"2048x2048":["https:\/\/bluetab.co.uk\/wp-content\/uploads\/2023\/04\/6.png",1200,600,false],"sidebar-featured":["https:\/\/bluetab.co.uk\/wp-content\/uploads\/2023\/04\/6-75x75.png",75,75,true],"genesis-singular-images":["https:\/\/bluetab.co.uk\/wp-content\/uploads\/2023\/04\/6-702x526.png",702,526,true]},"uagb_author_info":{"display_name":"Bluetab","author_link":"https:\/\/bluetab.co.uk\/en\/author\/user\/"},"uagb_comment_info":0,"uagb_excerpt":"Basic AWS Glue concepts \u00c1lvaro Santos Senior Cloud Solution Architect\u200b Share on twitter Share on linkedin At\u00a0Cloud Practice\u00a0we aim to encourage adoption of the cloud as a way of working in the IT world. To help with this task, we are going to publish numerous good practice articles and use cases and others will talk&hellip;","_links":{"self":[{"href":"https:\/\/bluetab.co.uk\/en\/wp-json\/wp\/v2\/posts\/6540","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bluetab.co.uk\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/bluetab.co.uk\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/bluetab.co.uk\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/bluetab.co.uk\/en\/wp-json\/wp\/v2\/comments?post=6540"}],"version-history":[{"count":9,"href":"https:\/\/bluetab.co.uk\/en\/wp-json\/wp\/v2\/posts\/6540\/revisions"}],"predecessor-version":[{"id":16029,"href":"https:\/\/bluetab.co.uk\/en\/wp-json\/wp\/v2\/posts\/6540\/revisions\/16029"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/bluetab.co.uk\/en\/wp-json\/wp\/v2\/media\/17832"}],"wp:attachment":[{"href":"https:\/\/bluetab.co.uk\/en\/wp-json\/wp\/v2\/media?parent=6540"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/bluetab.co.uk\/en\/wp-json\/wp\/v2\/categories?post=6540"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/bluetab.co.uk\/en\/wp-json\/wp\/v2\/tags?post=6540"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}