{"id":7472,"date":"2020-12-15T15:51:32","date_gmt":"2020-12-15T15:51:32","guid":{"rendered":"https:\/\/beta.bluetab.net\/5-errores-comunes-en-redshift\/"},"modified":"2023-10-17T12:56:43","modified_gmt":"2023-10-17T12:56:43","slug":"5-common-errors-in-redshift","status":"publish","type":"post","link":"https:\/\/bluetab.co.uk\/en\/5-common-errors-in-redshift\/","title":{"rendered":"5 common errors in Redshift"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"7472\" class=\"elementor elementor-7472\" data-elementor-post-type=\"post\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-b2ad9fe elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"b2ad9fe\" 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-7eac278\" data-id=\"7eac278\" 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-45481b1 elementor-widget elementor-widget-heading\" data-id=\"45481b1\" 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\">5 common errors in Redshift<\/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-7843b8f elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"7843b8f\" 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-1a4ee60\" data-id=\"1a4ee60\" 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-b7c4857 elementor-position-left elementor-vertical-align-middle elementor-widget elementor-widget-image-box\" data-id=\"b7c4857\" 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.es\/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\">Alvaro 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-ed6cc51\" data-id=\"ed6cc51\" 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-173edbe 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=\"173edbe\" 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-37382f0 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"37382f0\" 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-4a10ec3\" data-id=\"4a10ec3\" 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-cab8096 elementor-widget elementor-widget-theme-post-featured-image elementor-widget-image\" data-id=\"cab8096\" 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\/2020\/12\/13-1024x512.png\" class=\"attachment-large size-large wp-image-17844\" alt=\"\" srcset=\"https:\/\/bluetab.co.uk\/wp-content\/uploads\/2020\/12\/13-1024x512.png 1024w, https:\/\/bluetab.co.uk\/wp-content\/uploads\/2020\/12\/13-300x150.png 300w, https:\/\/bluetab.co.uk\/wp-content\/uploads\/2020\/12\/13-768x384.png 768w, https:\/\/bluetab.co.uk\/wp-content\/uploads\/2020\/12\/13.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-e35b9ec elementor-widget elementor-widget-text-editor\" data-id=\"e35b9ec\" 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><a href=\"\/\/aws.amazon.com\/es\/redshift\/?whats-new-cards.sort-by=item.additionalFields.postDateTime&amp;whats-new-cards.sort-order=desc\">Amazon Redshift<\/a>\u00a0can be considered to be one of the most important data warehouses currently and\u00a0<a href=\"\/\/aws.amazon.com\/es\/\">AWS<\/a>\u00a0offers it in its cloud. Working at\u00a0<a href=\"..\/soluciones\/data-strategy\/\">Bluetab<\/a>, we have had the pleasure of using it many times during our good\/bad times as well as this year 2020. So we have created a list with the most common errors you will need to avoid and we hope this will be a great aid for you.<\/p><p>At\u00a0<a href=\"\/\">Bluetab<\/a>\u00a0we have been working around data for over 10 years. In many of them, we have helped in the technological evolution of numerous companies by migrating from their traditional\u00a0<a href=\"\/\/en.wikipedia.org\/wiki\/Data_warehouse\">Data Warehouse<\/a>\u00a0analytics and BI environments to\u00a0<a href=\"\/\/en.wikipedia.org\/wiki\/Big_data\">Big Data<\/a>\u00a0environments.<\/p><p>Additionally, at\u00a0<strong>Cloud Practice<\/strong>\u00a0we have been involved in cloud migrations and new developments of Big Data projects with\u00a0<a href=\"\/\/aws.amazon.com\/\">Amazon Web Services<\/a>\u00a0and\u00a0<a href=\"\/\/cloud.google.com\/\">Google Cloud<\/a>. All this experience has enabled us to create a group of highly qualified people who think\/work in\/for the cloud<\/p><p>To help you with your work in the cloud, we want to present the most common mistakes we have found when working with\u00a0<a href=\"\/\/aws.amazon.com\/es\/redshift\">Redshift<\/a>, the most important DW tool offered by AWS.<\/p><p>Here is the list:<\/p><ol><li>Working as if it were a PostgreSQL.<\/li><li>Load data wrongly.<\/li><li>Dimensioning the cluster poorly.<\/li><li>Not making use of workload management (WLM).<\/li><li>Neglecting maintenance.<\/li><\/ol>\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-748711b elementor-widget elementor-widget-spacer\" data-id=\"748711b\" 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-92b4327 elementor-widget elementor-widget-heading\" data-id=\"92b4327\" 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 Redshift?<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6483e80 elementor-widget elementor-widget-text-editor\" data-id=\"6483e80\" 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>Amazon Redshift is a very fast, cloud-based analytical (OLAP) database, fully managed by AWS. It simplifies and enhances data analysis using standard SQL compatible with most existing BI tools.<\/p><p>The most important features of Amazon Redshift are:<\/p><ul><li><strong>Data storage in columns<\/strong>: instead of storing data as a series of rows, Amazon Redshift organises the data by column. Because only the columns involved in queries are processed and the data in columns are stored sequentially on storage media, column-based systems require much less I\/O, which greatly improves query performance.<\/li><li><strong>Advanced compression<\/strong>: column-based databases can be compressed much more than row-based databases because similar data is stored sequentially on disk.<\/li><li><strong>Massively Parallel Processing (MPP)<\/strong>: Amazon Redshift automatically distributes the data and query load across all nodes.<\/li><li><strong>Redshift Spectrum<\/strong>: lets you run queries against exabytes of data stored in Amazon S3.<\/li><li><strong>Materialized views<\/strong>: subsequent queries that refer to the materialized views use the pre-calculated results to run much faster. Materialized views can be created based on one or more source tables using filters, projections, inner joins, aggregations, groupings, functions and other SQL constructs.<\/li><li><strong>Scalability<\/strong>: Redshift has the ability to scale its processing and storage by increasing the cluster size to hundreds of nodes.<br \/><br \/><\/li><\/ul><p>Amazon Redshift is not the same as other SQL database systems. Good practices are required to take advantage of all its benefits, so that the cluster will perform optimally.<\/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-e3ade7b elementor-widget elementor-widget-spacer\" data-id=\"e3ade7b\" 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-035681f elementor-widget elementor-widget-heading\" data-id=\"035681f\" 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\">1. Working as if it were a PostgreSQL<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8fe7d10 elementor-widget elementor-widget-text-editor\" data-id=\"8fe7d10\" 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>A very common mistake made when starting to use Redshift is to assume that it is simply a vitamin-enriched\u00a0<a href=\"\/\/www.postgresql.org\/\">PostgreSQL<\/a>\u00a0and that you can start working with Redshift based on a schema compatible with that. However, you could not be more wrong.<\/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-0b852ad elementor-widget elementor-widget-image\" data-id=\"0b852ad\" 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=\"400\" height=\"400\" data-src=\"https:\/\/www.bluetab.es\/wp-content\/uploads\/2020\/12\/redshift-i-know-redshift.jpg\" class=\"attachment-large size-large wp-image-7450 lazyload\" alt=\"\" data-srcset=\"https:\/\/www.bluetab.es\/wp-content\/uploads\/2020\/12\/redshift-i-know-redshift.jpg 400w, https:\/\/www.bluetab.es\/wp-content\/uploads\/2020\/12\/redshift-i-know-redshift-300x300.jpg 300w, https:\/\/www.bluetab.es\/wp-content\/uploads\/2020\/12\/redshift-i-know-redshift-150x150.jpg 150w, https:\/\/www.bluetab.es\/wp-content\/uploads\/2020\/12\/redshift-i-know-redshift-75x75.jpg 75w\" data-sizes=\"(max-width: 400px) 100vw, 400px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 400px; --smush-placeholder-aspect-ratio: 400\/400;\" \/>\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-a066df4 elementor-widget elementor-widget-text-editor\" data-id=\"a066df4\" 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 true that Redshift was based on an older version of PostgreSQL 8.0.2, its architecture has changed radically and has been optimised over the years to improve performance for its strictly analytical use. So you need to:<\/p><ul><li>Design the tables appropriately.<\/li><li>Launch queries optimised for\u00a0<a href=\"\/\/en.wikipedia.org\/wiki\/Massively_parallel\">MPP<\/a>\u00a0environments.<\/li><\/ul><h4 id=\"dise\u00f1ar-las-tablas-de-manera-adecuada\"><strong><br \/>Design the tables appropriately<\/strong><\/h4><p>When designing the database, bear in mind that some key table design decisions have a considerable influence on overall query performance. Some good practices are:<\/p><ul><li>Select the optimum data distribution type:\u00a0<img decoding=\"async\" class=\"alignnone wp-image-7452 ls-is-cached lazyloaded\" src=\"\/\/beta.bluetab.net\/wp-content\/uploads\/2020\/12\/redshift-redshift_dist_key-300x244.gif\" sizes=\"(max-width: 300px) 100vw, 300px\" srcset=\"https:\/\/bluetab.net\/wp-content\/uploads\/2020\/12\/redshift-redshift_dist_key-300x244.gif 300w, https:\/\/bluetab.net\/wp-content\/uploads\/2020\/12\/redshift-redshift_dist_key-768x624.gif 768w\" alt=\"\" width=\"100%\" height=\"auto\" data-srcset=\"https:\/\/bluetab.net\/wp-content\/uploads\/2020\/12\/redshift-redshift_dist_key-300x244.gif 300w, https:\/\/bluetab.net\/wp-content\/uploads\/2020\/12\/redshift-redshift_dist_key-768x624.gif 768w\" data-src=\"\/\/beta.bluetab.net\/wp-content\/uploads\/2020\/12\/redshift-redshift_dist_key-300x244.gif\" data-sizes=\"(max-width: 300px) 100vw, 300px\" data-pagespeed-url-hash=\"31059146\" \/><ul><li>For fact tables choose the\u00a0<code>DISTKEY<\/code>\u00a0type. This will distribute the data to the various nodes grouped by the chosen key values. This will enable you to perform\u00a0<code>JOIN<\/code>\u00a0type queries on that column very efficiently.<\/li><li>For dimension tables with a few million entries, choose the\u00a0<code>ALL<\/code>\u00a0type. It is advisable to copy those tables commonly used in\u00a0<em>joins<\/em>\u00a0of dictionary type to all the nodes. In that way the\u00a0<code>JOIN<\/code>\u00a0statement with much bigger fact tables will execute much faster.<\/li><li>When you are not clear on how you are going to query a very large table or it simply has no relation to the rest, choose the\u00a0<code>EVEN<\/code>\u00a0type. The data will be distributed randomly in this way.<\/li><\/ul><\/li><li>It uses automatic compression, allowing Redshift to select the optimal type for each column. It accomplishes this by scanning a limited number of items.<\/li><\/ul><h4>\u00a0<\/h4><h4 id=\"usar-consultas-optimizadas-para-entornos-mpp\"><strong>Use queries optimised for MPP environments<\/strong><\/h4><p>As Redshift is a distributed MPP environment, query performance needs to be maximised by following some basic recommendations. Some good practices are:<\/p><ul><li>The tables need to be designed considering the queries that will be made. Therefore, if a query does not match, you need to review the design of the participating tables.<\/li><li>Avoid using\u00a0<code>SELECT *.<\/code>\u00a0and include only the columns you need.<\/li><li>Do not use\u00a0<em>cross-joins<\/em>\u00a0unless absolutely necessary.<\/li><li>Whenever you can, use the\u00a0<code>WHERE<\/code>\u00a0statement to restrict the amount of data to be read.<\/li><li>Use sort keys in\u00a0<code>GROUP BY<\/code>\u00a0and\u00a0<code>SORT BY<\/code>\u00a0clauses so that the query planner can use more efficient aggregation.<\/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-360f132 elementor-widget elementor-widget-spacer\" data-id=\"360f132\" 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-cbdab95 elementor-widget elementor-widget-heading\" data-id=\"cbdab95\" 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\">2. Loading data in that way<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a4fffdc elementor-widget elementor-widget-text-editor\" data-id=\"a4fffdc\" 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>Loading very large datasets can take a long time and consume a lot of cluster resources. Moreover, if this loading is performed inappropriately, it can also affect query performance.<\/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-0f41c4c elementor-widget elementor-widget-image\" data-id=\"0f41c4c\" 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=\"602\" height=\"327\" data-src=\"https:\/\/www.bluetab.es\/wp-content\/uploads\/2020\/12\/redshift-load_redshift.png\" class=\"attachment-large size-large wp-image-7460 lazyload\" alt=\"\" data-srcset=\"https:\/\/www.bluetab.es\/wp-content\/uploads\/2020\/12\/redshift-load_redshift.png 602w, https:\/\/www.bluetab.es\/wp-content\/uploads\/2020\/12\/redshift-load_redshift-300x163.png 300w\" data-sizes=\"(max-width: 602px) 100vw, 602px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 602px; --smush-placeholder-aspect-ratio: 602\/327;\" \/>\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-1602395 elementor-widget elementor-widget-text-editor\" data-id=\"1602395\" 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>This makes it advisable to follow these guidelines:<\/p><ul><li><p>Always use the\u00a0<code>COPY<\/code>\u00a0command to load data in parallel from Amazon S3, Amazon EMR, Amazon DynamoDB or from different data sources on remote hosts.<\/p><\/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-effedeb elementor-widget elementor-widget-elementor-syntax-highlighter\" data-id=\"effedeb\" 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'> copy customer from &#039;s3:\/\/mybucket\/mydata&#039; iam_role &#039;arn:aws:iam::12345678901:role\/MyRedshiftRole&#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-bc3855d elementor-widget elementor-widget-text-editor\" data-id=\"bc3855d\" 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<ul><li><p>If possible, launch a single command instead of several. You can use a\u00a0<em>manifest<\/em>\u00a0file or patterns to upload multiple files at once.<\/p><\/li><li><p>Split the load data files so that they are:<\/p><ul><li>Of equal size, between 1\u00a0MB and 1\u00a0GB after compression.<\/li><li>A multiple of the number of slices in your cluster.<\/li><\/ul><\/li><li><p>To update data and insert new data efficiently when loading it, use a staging table.<\/p><\/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-8875ebd elementor-widget elementor-widget-elementor-syntax-highlighter\" data-id=\"8875ebd\" 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'>  -- Create an staging table and load it with the data to be updated\r\n  create temp table stage (like target); \r\n\r\n  insert into stage \r\n  select * from source \r\n  where source.filter = &#039;filter_expression&#039;;\r\n\r\n  -- Use an inner join with the  staging table to remove the rows of the target table to be updated\r\n\r\n  begin transaction;\r\n\r\n  delete from target \r\n  using stage \r\n  where target.primarykey = stage.primarykey; \r\n\r\n  -- Insert all rows from the of the staging table.\r\n  insert into target \r\n  select * from stage;\r\n\r\n  end transaction;\r\n\r\n  -- Drop the staging table.\r\n  drop table stage; <\/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-c2f69a0 elementor-widget elementor-widget-spacer\" data-id=\"c2f69a0\" 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-92b2c25 elementor-widget elementor-widget-heading\" data-id=\"92b2c25\" 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\">3. Dimensioning the cluster poorly<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-20c8680 elementor-widget elementor-widget-text-editor\" data-id=\"20c8680\" 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>Over the years we have seen many customers who had serious performance issues with Redshift due to design failures in their databases. Many of them had tried to resolve these issues by adding more resources to the cluster rather than trying to fix the root problem.<\/p><p>Due to this, I suggest you follow the flow below to dimension your cluster:<\/p><ul><li><p>Collect information on the type of queries to be performed, data set size, expected concurrency, etc.<\/p><\/li><li><p>Design your tables based on the queries that will be made.<\/p><\/li><li><p>Select the type of Redshift instance (DC2, DS2 or RA3) depending on the type of queries (simple, long, complex&#8230;).<\/p><\/li><li><p>Taking the data set size into account, calculate the number of nodes in your cluster.<\/p><\/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-efae643 elementor-widget elementor-widget-elementor-syntax-highlighter\" data-id=\"efae643\" 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'># of  Redshift nodes = (uncompressed data size) * 1.25 \/ (storage capacity of selected Redshift node type)  <\/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-19ab585 elementor-blockquote--align-left elementor-blockquote--skin-border elementor-widget elementor-widget-blockquote\" data-id=\"19ab585\" data-element_type=\"widget\" data-widget_type=\"blockquote.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<blockquote class=\"elementor-blockquote\">\n\t\t\t<p class=\"elementor-blockquote__content\">\n\t\t\t\t\u00ab For storage size calculation, having a larger margin for performing maintenance tasks is also recommended \u00bb\t\t\t<\/p>\n\t\t\t\t\t<\/blockquote>\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-811f220 elementor-widget elementor-widget-text-editor\" data-id=\"811f220\" 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<ul><li><p>Perform load tests to check performance.<\/p><\/li><li><p>If it does not work adequately, optimise the queries, even modifying the design of the tables if necessary.<\/p><\/li><li><p>Finally, if this is not sufficient, iterate until you find the appropriate node and size dimensioning.<\/p><\/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-c1a37fe elementor-widget elementor-widget-spacer\" data-id=\"c1a37fe\" 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-426e8eb elementor-widget elementor-widget-heading\" data-id=\"426e8eb\" 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\">4. Not making use of workload management (WLM)<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2f90891 elementor-widget elementor-widget-text-editor\" data-id=\"2f90891\" 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>It is quite likely that your use case will require multiple sessions or users running queries at the same time. In these cases, some queries can consume cluster resources for extended periods of time and affect the performance of the other queries. In this situation, simple queries may have to wait until longer queries are complete.<\/p><p>By using\u00a0<a href=\"\/\/docs.aws.amazon.com\/redshift\/latest\/dg\/cm-c-implementing-workload-management.html\">WLM<\/a>, you will be able to manage the priority and capacity of the different types of executions by creating different execution queues.<\/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-78cd75f elementor-widget elementor-widget-image\" data-id=\"78cd75f\" 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=\"511\" data-src=\"https:\/\/www.bluetab.es\/wp-content\/uploads\/2020\/12\/redshift-wlm_example.gif\" class=\"attachment-large size-large wp-image-7462 lazyload\" alt=\"\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 800px; --smush-placeholder-aspect-ratio: 800\/511;\" \/>\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-43449c2 elementor-widget elementor-widget-text-editor\" data-id=\"43449c2\" 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<div class=\"elementor-element elementor-element-43449c2 elementor-widget elementor-widget-text-editor\" data-id=\"43449c2\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\"><div class=\"elementor-widget-container\"><div class=\"elementor-text-editor elementor-clearfix\"><p>You can configure the Amazon Redshift WLM to run in two different ways:<\/p><ul><li><strong>Automatic WLM<\/strong>: the most advisable manner is to enable Amazon Redshift so that it manages how resources are split to run concurrent queries with automatic WLM. The user manages queue priority and Amazon Redshift determines how many queries run simultaneously and how much memory is allocated to each query submitted.<\/li><li><strong>Manual WLM<\/strong>: alternatively, you can configure resource use for different queues manually. At run time, queries can be sent to different queues with different user-managed concurrency and memory parameters.<\/li><\/ul><h4 id=\"c\u00f3mo-funciona-wlm\"><strong><br \/>How WLM works<\/strong><\/h4><p>When a user runs a query, WLM assigns the query to the first matching queue, based on the WLM queue assignment rules.<\/p><\/div><\/div><\/div><div class=\"elementor-element elementor-element-c65d588 elementor-widget elementor-widget-image\" data-id=\"c65d588\" data-element_type=\"widget\" data-widget_type=\"image.default\"><div class=\"elementor-widget-container\">\u00a0<\/div><\/div>\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-c65d588 elementor-widget elementor-widget-image\" data-id=\"c65d588\" 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=\"436\" height=\"579\" data-src=\"https:\/\/www.bluetab.es\/wp-content\/uploads\/2020\/12\/redshift-wlm_diagram.png\" class=\"attachment-large size-large wp-image-7464 lazyload\" alt=\"\" data-srcset=\"https:\/\/www.bluetab.es\/wp-content\/uploads\/2020\/12\/redshift-wlm_diagram.png 436w, https:\/\/www.bluetab.es\/wp-content\/uploads\/2020\/12\/redshift-wlm_diagram-226x300.png 226w\" data-sizes=\"(max-width: 436px) 100vw, 436px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 436px; --smush-placeholder-aspect-ratio: 436\/579;\" \/>\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-ce2de87 elementor-widget elementor-widget-text-editor\" data-id=\"ce2de87\" 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<ul><li>If a user is logged in as a\u00a0<em>superuser<\/em>\u00a0and runs a query in the query group labelled superuser, the query is assigned to the\u00a0<em>superuser<\/em>\u00a0queue.<\/li><li>If a user belongs to a listed user group or runs a query within a listed query group, the query is assigned to the first matching queue.<\/li><li>If a query does not meet any criterion, the query is assigned to the default queue, which is the last queue defined in the WLM configuration.<\/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-2bd6116 elementor-widget elementor-widget-spacer\" data-id=\"2bd6116\" 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-015e524 elementor-widget elementor-widget-heading\" data-id=\"015e524\" 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\">5. Neglecting maintenance.<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8698f60 elementor-widget elementor-widget-text-editor\" data-id=\"8698f60\" 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>Database maintenance is a term we use to describe a set of tasks executed with the intention of improving the database. There are routines to help performance, free up disk space, check data errors, check hardware faults, update internal statistics and many other obscure (but important) things.<\/p><p>In the case of Redshift, there is a mistaken feeling that as it is a service fully managed by Amazon, there is no need for any. So you create the cluster and forget about it. While AWS makes it easy for you to manage numerous tasks (create, stop, start, destroy or perform back-ups), this could not be further from the truth.<\/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-bd032d9 elementor-widget elementor-widget-image\" data-id=\"bd032d9\" 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=\"1024\" height=\"576\" data-src=\"https:\/\/www.bluetab.es\/wp-content\/uploads\/2020\/12\/redshift-db_maintenance-1024x576-1.jpg\" class=\"attachment-large size-large wp-image-7466 lazyload\" alt=\"\" data-srcset=\"https:\/\/www.bluetab.es\/wp-content\/uploads\/2020\/12\/redshift-db_maintenance-1024x576-1.jpg 1024w, https:\/\/www.bluetab.es\/wp-content\/uploads\/2020\/12\/redshift-db_maintenance-1024x576-1-300x169.jpg 300w, https:\/\/www.bluetab.es\/wp-content\/uploads\/2020\/12\/redshift-db_maintenance-1024x576-1-768x432.jpg 768w\" data-sizes=\"(max-width: 1024px) 100vw, 1024px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1024px; --smush-placeholder-aspect-ratio: 1024\/576;\" \/>\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-ba8f750 elementor-widget elementor-widget-text-editor\" data-id=\"ba8f750\" 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 most important maintenance tasks you need to perform in Redshift are:<\/p><ul><li><strong>System monitoring<\/strong>: the cluster needs monitoring 24\/7 and you need to perform periodic checks to confirm that the system is functioning properly (no bad queries or blocking, free space, adequate response times, etc.). You also need to create alarms to be able to anticipate any future service downtimes.<\/li><li><strong>Compacting the DB<\/strong>: Amazon Redshift does not perform all compaction tasks automatically in all situations and you will sometimes need to run them manually. This process is called\u00a0<code>VACUUM<\/code>\u00a0and it needs to be run manually to be able to use\u00a0<code>SORT KEYS<\/code>\u00a0of the\u00a0<code>INTERLEAVED<\/code>\u00a0type. This is quite a long and expensive process that will need to be performed, if possible, during maintenance windows.<\/li><li><strong>Data integrity<\/strong>: as with any data loading, you need to check that the\u00a0<em>ETL<\/em>\u00a0processes have worked properly. Redshift has system tables such as\u00a0<code>STV_LOAD_STATE<\/code>\u00a0where you can find information on the current status of the\u00a0<code>COPY<\/code>\u00a0instructions in progress. You should check them often to confirm that there are no data integrity errors.<\/li><li><strong>Detection of heavy queries<\/strong>: Redshift continuously monitors all queries that are taking longer than expected and that could be negatively impacting service performance. So that you can analyse and investigate those queries, you can find them in system tables as\u00a0<code>STL_ALERT_EVENT_LOG<\/code>\u00a0or through the AWS web console itself.<\/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-d6464c8 elementor-widget elementor-widget-spacer\" data-id=\"d6464c8\" 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-ef7f8fc elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"ef7f8fc\" 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-25462fa\" data-id=\"25462fa\" 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-51099f3 elementor-widget elementor-widget-heading\" data-id=\"51099f3\" 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-ce66a17 elementor-align-center elementor-widget elementor-widget-button\" data-id=\"ce66a17\" 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-aa2fc0b elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"aa2fc0b\" 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-8b166e3\" data-id=\"8b166e3\" 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-3d42ec3\" data-id=\"3d42ec3\" 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-a576822 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=\"a576822\" 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-d5bd35b elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"d5bd35b\" 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-7a71956\" data-id=\"7a71956\" 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-30e4353 elementor-position-top elementor-widget elementor-widget-image-box\" data-id=\"30e4353\" 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.es\/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-7efcbc6\" data-id=\"7efcbc6\" 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-b5e713f elementor-widget elementor-widget-heading\" data-id=\"b5e713f\" 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-7ff1a36 elementor-widget elementor-widget-heading\" data-id=\"7ff1a36\" 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\u200b<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1c0d57a elementor-widget elementor-widget-text-editor\" data-id=\"1c0d57a\" 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\u00a0<a href=\"\/\/www.linkedin.com\/in\/alvsanand\/\">\u00c1lvaro Santos<\/a>\u00a0and 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-658d939 elementor-section-full_width elementor-section-height-default elementor-section-height-default\" data-id=\"658d939\" 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-3ef53c7\" data-id=\"3ef53c7\" 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-9525f99 elementor-widget elementor-widget-text-editor\" data-id=\"9525f99\" 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-4fff95c elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"4fff95c\" 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-4081c73\" data-id=\"4081c73\" 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-516bbab 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=\"516bbab\" 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.es\/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-c9e5b1b\" data-id=\"c9e5b1b\" 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-89fd842 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=\"89fd842\" 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.es\/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-8cf3cd9\" data-id=\"8cf3cd9\" 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-09476e1 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=\"09476e1\" 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.es\/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-756ea7e\" data-id=\"756ea7e\" 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-3516bc9 elementor-widget elementor-widget-text-editor\" data-id=\"3516bc9\" 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-b98d665 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"b98d665\" 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-6f88005\" data-id=\"6f88005\" 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-e572126 elementor-widget elementor-widget-spacer\" data-id=\"e572126\" 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>5 common errors in Redshift Alvaro Santos Senior Cloud Solution Architect\u200b Share on twitter Share on linkedin Amazon Redshift\u00a0can be considered to be one of the most important data warehouses currently and\u00a0AWS\u00a0offers it in its cloud. Working at\u00a0Bluetab, we have had the pleasure of using it many times during our good\/bad times as well as [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":17844,"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-7472","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\/2020\/12\/13.png",1200,600,false],"thumbnail":["https:\/\/bluetab.co.uk\/wp-content\/uploads\/2020\/12\/13-150x150.png",150,150,true],"medium":["https:\/\/bluetab.co.uk\/wp-content\/uploads\/2020\/12\/13-300x150.png",300,150,true],"medium_large":["https:\/\/bluetab.co.uk\/wp-content\/uploads\/2020\/12\/13-768x384.png",768,384,true],"large":["https:\/\/bluetab.co.uk\/wp-content\/uploads\/2020\/12\/13-1024x512.png",1024,512,true],"1536x1536":["https:\/\/bluetab.co.uk\/wp-content\/uploads\/2020\/12\/13.png",1200,600,false],"2048x2048":["https:\/\/bluetab.co.uk\/wp-content\/uploads\/2020\/12\/13.png",1200,600,false],"sidebar-featured":["https:\/\/bluetab.co.uk\/wp-content\/uploads\/2020\/12\/13-75x75.png",75,75,true],"genesis-singular-images":["https:\/\/bluetab.co.uk\/wp-content\/uploads\/2020\/12\/13-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":"5 common errors in Redshift Alvaro Santos Senior Cloud Solution Architect\u200b Share on twitter Share on linkedin Amazon Redshift\u00a0can be considered to be one of the most important data warehouses currently and\u00a0AWS\u00a0offers it in its cloud. Working at\u00a0Bluetab, we have had the pleasure of using it many times during our good\/bad times as well as&hellip;","_links":{"self":[{"href":"https:\/\/bluetab.co.uk\/en\/wp-json\/wp\/v2\/posts\/7472","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=7472"}],"version-history":[{"count":18,"href":"https:\/\/bluetab.co.uk\/en\/wp-json\/wp\/v2\/posts\/7472\/revisions"}],"predecessor-version":[{"id":16038,"href":"https:\/\/bluetab.co.uk\/en\/wp-json\/wp\/v2\/posts\/7472\/revisions\/16038"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/bluetab.co.uk\/en\/wp-json\/wp\/v2\/media\/17844"}],"wp:attachment":[{"href":"https:\/\/bluetab.co.uk\/en\/wp-json\/wp\/v2\/media?parent=7472"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/bluetab.co.uk\/en\/wp-json\/wp\/v2\/categories?post=7472"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/bluetab.co.uk\/en\/wp-json\/wp\/v2\/tags?post=7472"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}