{"id":16034,"date":"2023-02-23T10:04:31","date_gmt":"2023-02-23T10:04:31","guid":{"rendered":"https:\/\/beta.bluetab.net\/snowflake-el-time-travel-sin-delorean-para-unos-datos-fail-safe\/"},"modified":"2023-10-17T12:54:12","modified_gmt":"2023-10-17T12:54:12","slug":"snowflake-el-time-travel-sin-delorean-para-unos-datos-fail-safe","status":"publish","type":"post","link":"https:\/\/bluetab.es\/en\/snowflake-el-time-travel-sin-delorean-para-unos-datos-fail-safe\/","title":{"rendered":"Snowflake, el Time Travel sin DeLorean para unos datos Fail-Safe."},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"16034\" class=\"elementor elementor-16034\" 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-50 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\">Snowflake, el Time Travel sin DeLorean para unos datos Fail-Safe.<\/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-7f3f444 elementor-position-left elementor-vertical-align-middle elementor-widget elementor-widget-image-box\" data-id=\"7f3f444\" 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\/roberto-garc%C3%ADa-parra-1b914128\/\" target=\"_blank\" tabindex=\"-1\"><img decoding=\"async\" width=\"150\" height=\"150\" data-src=\"https:\/\/bluetabsolutions.com\/wp-content\/uploads\/2022\/03\/cropped-Isotipo-Bluetab-150x150.png\" class=\"attachment-thumbnail size-thumbnail wp-image-13320 lazyload\" alt=\"\" data-srcset=\"https:\/\/bluetab.es\/wp-content\/uploads\/2022\/03\/cropped-Isotipo-Bluetab-150x150.png 150w, https:\/\/bluetab.es\/wp-content\/uploads\/2022\/03\/cropped-Isotipo-Bluetab-300x300.png 300w, https:\/\/bluetab.es\/wp-content\/uploads\/2022\/03\/cropped-Isotipo-Bluetab-75x75.png 75w, https:\/\/bluetab.es\/wp-content\/uploads\/2022\/03\/cropped-Isotipo-Bluetab-270x270.png 270w, https:\/\/bluetab.es\/wp-content\/uploads\/2022\/03\/cropped-Isotipo-Bluetab-192x192.png 192w, https:\/\/bluetab.es\/wp-content\/uploads\/2022\/03\/cropped-Isotipo-Bluetab-180x180.png 180w, https:\/\/bluetab.es\/wp-content\/uploads\/2022\/03\/cropped-Isotipo-Bluetab-32x32.png 32w, https:\/\/bluetab.es\/wp-content\/uploads\/2022\/03\/cropped-Isotipo-Bluetab.png 512w\" 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\/roberto-garc%C3%ADa-parra-1b914128\/\" target=\"_blank\">Roberto Garc\u00eda Parra<\/a><\/h4><p class=\"elementor-image-box-description\">Technical Delivery Manager <\/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-d212615 elementor-position-left elementor-vertical-align-middle elementor-widget elementor-widget-image-box\" data-id=\"d212615\" 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\/gabriel-gallardo-ruiz-9042a0212\/\" target=\"_blank\" tabindex=\"-1\"><img decoding=\"async\" width=\"150\" height=\"150\" data-src=\"https:\/\/bluetabsolutions.com\/wp-content\/uploads\/2022\/03\/cropped-Isotipo-Bluetab-150x150.png\" class=\"attachment-thumbnail size-thumbnail wp-image-13320 lazyload\" alt=\"\" data-srcset=\"https:\/\/bluetab.es\/wp-content\/uploads\/2022\/03\/cropped-Isotipo-Bluetab-150x150.png 150w, https:\/\/bluetab.es\/wp-content\/uploads\/2022\/03\/cropped-Isotipo-Bluetab-300x300.png 300w, https:\/\/bluetab.es\/wp-content\/uploads\/2022\/03\/cropped-Isotipo-Bluetab-75x75.png 75w, https:\/\/bluetab.es\/wp-content\/uploads\/2022\/03\/cropped-Isotipo-Bluetab-270x270.png 270w, https:\/\/bluetab.es\/wp-content\/uploads\/2022\/03\/cropped-Isotipo-Bluetab-192x192.png 192w, https:\/\/bluetab.es\/wp-content\/uploads\/2022\/03\/cropped-Isotipo-Bluetab-180x180.png 180w, https:\/\/bluetab.es\/wp-content\/uploads\/2022\/03\/cropped-Isotipo-Bluetab-32x32.png 32w, https:\/\/bluetab.es\/wp-content\/uploads\/2022\/03\/cropped-Isotipo-Bluetab.png 512w\" 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\/gabriel-gallardo-ruiz-9042a0212\/\" target=\"_blank\">Gabriel Gallardo Ruiz<\/a><\/h4><p class=\"elementor-image-box-description\">Senior Data Architect <\/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\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-inner-section elementor-element elementor-element-6562b00 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"6562b00\" 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-inner-column elementor-element elementor-element-7c6d220\" data-id=\"7c6d220\" 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-dac8e8c 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=\"dac8e8c\" 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<div class=\"elementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-2b67acd\" data-id=\"2b67acd\" 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\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-c738cdf elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"c738cdf\" 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-55b901d\" data-id=\"55b901d\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-inner-section elementor-element elementor-element-7668b05 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"7668b05\" 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-592ef24\" data-id=\"592ef24\" 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-6010029 elementor-widget elementor-widget-theme-post-featured-image elementor-widget-image\" data-id=\"6010029\" 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.es\/wp-content\/uploads\/2023\/03\/8-1024x512.png\" class=\"attachment-large size-large wp-image-17834\" alt=\"\" srcset=\"https:\/\/bluetab.es\/wp-content\/uploads\/2023\/03\/8-1024x512.png 1024w, https:\/\/bluetab.es\/wp-content\/uploads\/2023\/03\/8-300x150.png 300w, https:\/\/bluetab.es\/wp-content\/uploads\/2023\/03\/8-768x384.png 768w, https:\/\/bluetab.es\/wp-content\/uploads\/2023\/03\/8.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-f28ddaa elementor-widget elementor-widget-heading\" data-id=\"f28ddaa\" data-element_type=\"widget\" id=\"intro\" 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\">Introducci\u00f3n a Snowflake<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4abbf0e elementor-widget elementor-widget-text-editor\" data-id=\"4abbf0e\" 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><span style=\"font-weight: 400;\">Este art\u00edculo supone una continuaci\u00f3n del art\u00edculo inicial que hicimos sobre el almacenamiento en Snowflake, y ser\u00e1 el primero de una serie donde entraremos a fondo en las caracter\u00edsticas m\u00e1s diferenciadoras de Snowflake. El primer art\u00edculo se puede consultar <\/span><a href=\"https:\/\/bluetab.net\/guia-avanzada-sobre-almacenamiento-en-snowflake\/\"><span style=\"font-weight: 400;\">aqu\u00ed.<\/span><\/a><\/p><p><span style=\"font-weight: 400;\">Recordar que <\/span><b>una de las caracter\u00edsticas principales del almacenamiento en Snowflake es la inmutabilidad de los archivos<\/b><span style=\"font-weight: 400;\">: Cuando hay una operaci\u00f3n DML sobre una tabla, los ficheros donde est\u00e1n los datos nunca se modifican, sino que se van creando nuevas versiones de los mismos, archivando todas las versiones anteriores por las que han ido pasando los ficheros durante el tiempo de retenci\u00f3n establecido en el par\u00e1metro DATA_RETENTION_TIME_IN_DAYS par\u00e1metro que se puede establecer a nivel base de datos, esquema o tabla.<\/span><\/p><p><span style=\"font-weight: 400;\">Este archivado es lo que posibilita las <\/span><b>dos funcionalidades avanzadas de Snowflake<\/b><span style=\"font-weight: 400;\"> que se van a ver en este art\u00edculo:<\/span><b> El Time Travel y el Fail-Safe.<\/b><\/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-7aaf8a9 elementor-widget elementor-widget-heading\" data-id=\"7aaf8a9\" data-element_type=\"widget\" id=\"objetivo\" 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\">\u00bfQu\u00e9 es el Time Travel?\n<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-cffc795 elementor-widget elementor-widget-text-editor\" data-id=\"cffc795\" 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><span style=\"font-weight: 400;\">El Time Travel es una <\/span><b>funcionalidad que permite acceder a versiones hist\u00f3ricas por las que han ido pasando los datos en las tablas<\/b><span style=\"font-weight: 400;\">. Por ejemplo, si tenemos un proceso de carga diaria de una tabla de movimientos contables, podr\u00edamos lanzar una consulta de cu\u00e1l era el estado de los movimientos contables tres d\u00edas atr\u00e1s.<\/span><\/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-fa9fd2d elementor-widget elementor-widget-heading\" data-id=\"fa9fd2d\" data-element_type=\"widget\" id=\"escalabilidad\" 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\">\u00bfQu\u00e9 es el Fail-Safe?<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ddf563e elementor-widget elementor-widget-text-editor\" data-id=\"ddf563e\" 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><span style=\"font-weight: 400;\">Es <\/span><b>un periodo adicional de siete d\u00edas por el que Snowflake almacena las versiones de los datos para una posible recuperaci\u00f3n<\/b><span style=\"font-weight: 400;\">. Este periodo no es configurable, siempre es de siete d\u00edas, y \u00fanicamente aplica en un tipo de tablas: Las permanentes.\u00a0<\/span><\/p><p><span style=\"font-weight: 400;\">Los objetos con Fail-Safe son las bases de datos, esquemas y tablas.<\/span><\/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-953e3be elementor-widget elementor-widget-heading\" data-id=\"953e3be\" data-element_type=\"widget\" id=\"objetivosal\" 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\">\u00bfQu\u00e9 se puede hacer con el Time Travel?\n<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7194037 elementor-widget elementor-widget-text-editor\" data-id=\"7194037\" 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 style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Consultar una foto est\u00e1tica de cualquier momento del pasado hasta un m\u00e1ximo de 90 d\u00edas. Por ejemplo, de una tabla de movimientos contables, podr\u00edamos sacar un balance con los movimientos congelados a una fecha.<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Recuperar tablas que se hayan borrado accidentalmente de forma muy sencilla mediante un simple comando SQL (UNDROP).<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Recovery point-in-time: Recuperar datos en un punto concreto, dentro del plazo de los 90 d\u00edas m\u00e1ximo del time travel.<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Poder sacar snapshots de los datos para guardarlos permanentemente \u2192 Para esto podr\u00edamos combinar dos funcionalidades: El time travel y el zero-copy cloning, que veremos m\u00e1s adelante.<\/span><\/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-7f116da elementor-widget elementor-widget-heading\" data-id=\"7f116da\" data-element_type=\"widget\" id=\"principalal\" 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\">\u00bfC\u00f3mo utilizar el Fail-Safe?<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3fd4aa7 elementor-widget elementor-widget-text-editor\" data-id=\"3fd4aa7\" 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>El Fail-Safe permite recuperar datos hasta siete d\u00edas m\u00e1ximo despu\u00e9s de la expiraci\u00f3n del Time Travel<\/b><span style=\"font-weight: 400;\">. Esta recuperaci\u00f3n solamente puede ser hecha a trav\u00e9s del equipo de soporte de Snowflake, a diferencia del Time Travel, y se debe hacer v\u00eda petici\u00f3n. <\/span><b>El Fail-Safe es un mecanismo para poder recuperar datos en caso de emergencia, <\/b><span style=\"font-weight: 400;\">no est\u00e1 pensado para hacer queries hist\u00f3ricas, etc. para eso hay que usar el Time Travel.<\/span><\/p><p><span style=\"font-weight: 400;\">No hay un SLA asociado a la recuperaci\u00f3n de datos en Fail-Safe: Snoflake habla de horas incluso d\u00edas para recuperar estos datos.<\/span><\/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-0ec9bd2 elementor-widget elementor-widget-heading\" data-id=\"0ec9bd2\" data-element_type=\"widget\" id=\"metacatos\" 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\">\u00bfC\u00f3mo se configura el Time Travel?\n<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-fb46eef elementor-widget elementor-widget-text-editor\" data-id=\"fb46eef\" 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><span style=\"font-weight: 400;\">Es un servicio que nos proporciona Snowflake y <\/span><b>no hay que hacer nada adicional<\/b><span style=\"font-weight: 400;\">, m\u00e1s all\u00e1 de configurar el n\u00famero de d\u00edas que queremos que nuestros objetos lo tengan activo. Hay que tener en cuenta lo siguiente:<\/span><\/p><ul><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Dependiendo de la edici\u00f3n que tengamos contratada de Snowflake, el n\u00famero de d\u00edas permitido de Time Travel puede diferir. A d\u00eda de hoy, en la edici\u00f3n Standard solamente se puede habilitar hasta un d\u00eda de Time Travel, mientras que a partir de la edici\u00f3n Enterprise podemos habilitar hasta 90 d\u00edas de Time Travel.<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">El Time Travel de hasta 90 d\u00edas solamente est\u00e1 habilitado en las tablas permanentes. Resto de tablas, un d\u00eda m\u00e1ximo de Time Travel. Si quieres saber m\u00e1s sobre los tipos de tablas, hablamos sobre ellas en nuestro anterior <\/span><a href=\"https:\/\/bluetab.net\/guia-avanzada-sobre-almacenamiento-en-snowflake\/\"><span style=\"font-weight: 400;\">art\u00edculo<\/span><\/a><span style=\"font-weight: 400;\"> sobre almacenamiento, en la secci\u00f3n DML\u2019s en Snowflake. El par\u00e1metro que configura el n\u00famero de d\u00edas de Time Travel en las tablas es el DATA_RETENTION_TIME_IN_DAYS. Este valor est\u00e1 por defecto a 1, pero podemos especificar un valor distinto a nivel base de datos o esquema, para que todos los objetos por debajo hereden dicho valor. Tambi\u00e9n es posible configurar un tiempo m\u00ednimo de retenci\u00f3n a nivel de cuenta, mediante el par\u00e1metro MIN_DATA_RETENTION_TIME_IN_DAYS. Este par\u00e1metro solamente es configurable por el rol ACCOUNTADMIN, y en caso de tener un valor, el tiempo de retenci\u00f3n de una tabla ser\u00eda el m\u00e1ximo del valor MIN_DATA_RETENTION_TIME_IN_DAYS a nivel cuenta y el DATA_RETENTION_TIME_IN_DAYS de la propia tabla.<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Si queremos deshabilitar el TIME TRAVEL, simplemente tenemos que establecer un valor cero al par\u00e1metro DATA_RETENTION_TIME_IN_DAYS.<\/span><\/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-c52d16d elementor-widget elementor-widget-heading\" data-id=\"c52d16d\" data-element_type=\"widget\" id=\"principalmicro\" 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\">\u00bfC\u00f3mo se configura el Fail-Safe?\n<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-94c83b5 elementor-widget elementor-widget-text-editor\" data-id=\"94c83b5\" 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>El Fail-Safe no es configurable<\/b><span style=\"font-weight: 400;\">. Es un <\/span><b>periodo fijo de siete d\u00edas<\/b><span style=\"font-weight: 400;\"> que se activa autom\u00e1ticamente en tablas permanentes sin necesidad de intervenci\u00f3n alguna por parte del usuario, una vez que finaliza el periodo de Time Travel, o si se reduce este periodo, y hay datos con antig\u00fcedad superior al nuevo periodo definido, los cuales pasar\u00edan tambi\u00e9n autom\u00e1ticamente a Fail-Safe.<\/span><\/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-04e0a80 elementor-widget elementor-widget-heading\" data-id=\"04e0a80\" data-element_type=\"widget\" id=\"entendiendo\" 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\">Consideraciones a tener en cuenta en el Time Travel y el Fail-Safe\n<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d74d722 elementor-widget elementor-widget-text-editor\" data-id=\"d74d722\" 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<h3><strong>\u00bfEs posible modificar el Time Travel de un objeto?<\/strong><\/h3><p><span style=\"font-weight: 400;\">S\u00ed, es posible, pero hay que tener en cuenta el impacto que tiene dicha modificaci\u00f3n:<\/span><\/p><ul><li><b>Si se incrementa<\/b><span style=\"font-weight: 400;\">, la extensi\u00f3n solamente afecta a datos que est\u00e9n archivados en ese momento, no as\u00ed a datos que ya hayan pasado a Fail-Safe. Imaginemos que tenemos una tabla con un Time-Travel de 5 d\u00edas y la modificamos a 10 d\u00edas, los datos dentro de los 5 d\u00edas s\u00ed se les extender\u00eda su periodo a 10, pero los datos con una antig\u00fcedad mayor a 5 d\u00edas que hayan pasado al Fail-Safe, seguir\u00edan en el Fail-Safe, incluso si solo ha pasado por ejemplo un d\u00eda desde que est\u00e1n en el Fail-Safe.<\/span><\/li><li aria-level=\"1\"><b>Si se disminuye, <\/b><span style=\"font-weight: 400;\">solamente los datos dentro del nuevo periodo de Time Travel permanecen ah\u00ed, mientras que el resto pasa a Fail-Safe. Si reducimos por ejemplo de 20 d\u00edas a dos d\u00edas, solamente se mantendr\u00e1n los datos que se hayan generado en estos \u00faltimos dos d\u00edas, mientras que los datos con antig\u00fcedad mayor o igual a 3 d\u00edas pasan a Fail-Safe.<\/span><\/li><\/ul><p><span style=\"font-weight: 400;\">La modificaci\u00f3n del Time Travel de un objeto se hace mediante una sentencia ALTER TABLE, modificando el par\u00e1metro DATA_RETENTION_TIME_IN_DAYS al nuevo tiempo en d\u00edas deseado.<\/span><\/p><h3><strong>\u00bfQu\u00e9 pasa cuando el periodo de retenci\u00f3n de un contenedor y un objeto chocan y el contenedor es borrado?<\/strong><\/h3><p><span style=\"font-weight: 400;\">El contenedor se refiere a un objeto Snowflake que a su vez contiene 1..n objetos. Dos claros ejemplos son una base de datos, que a su vez contiene 1..n esquemas, y un esquema que a su vez contiene 1..n objetos de esquema tales como tablas, vistas o procedimientos almacenados entre otros.<\/span><\/p><p><span style=\"font-weight: 400;\">Cuando una base de datos o esquema tiene definido un periodo de retenci\u00f3n, y los objetos hijos tienen definidos un periodo de retenci\u00f3n propio, cuando se borra el contenedor padre todo lo que est\u00e9 contenido se retiene por el periodo definido en el padre, incluso si algunos de los objetos hijo tiene su propio periodo de retenci\u00f3n y es diferente al del padre.<\/span><\/p><p><span style=\"font-weight: 400;\">Esto quiere decir que si tenemos una base de datos con un periodo de retenci\u00f3n de 5 d\u00edas, y uno de los esquemas contenidos tiene definido un periodo de 10 d\u00edas, si hay un borrado de la base de datos solamente tendr\u00edamos 5 d\u00edas para recuperar no solo la base de datos sino tambi\u00e9n cualquiera de los esquemas. Esto aplica tambi\u00e9n a cuando tenemos un periodo de retenci\u00f3n a nivel de objetos, y borramos el esquema que los contiene. En ese caso, el periodo de retenci\u00f3n que cuenta siempre es el del esquema.<\/span><\/p><p><span style=\"font-weight: 400;\">Si se desea mantener un periodo de retenci\u00f3n diferente para alguno de los hijos, estos deben ser borrados previamente a la eliminaci\u00f3n del contenedor. Por ejemplo, se borran primero las tablas en las que quiero mantener su periodo propio de retenci\u00f3n, y posteriormente se borra el esquema.<\/span><\/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-ce7de90 elementor-widget elementor-widget-heading\" data-id=\"ce7de90\" data-element_type=\"widget\" id=\"dml\" 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\">Costes del Time Travel y el Fail-Safe<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1b172ce elementor-widget elementor-widget-text-editor\" data-id=\"1b172ce\" 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><span style=\"font-weight: 400;\">El Time Travel y el Fail Safe aumentan nuestra factura de almacenamiento. Todas las versiones hist\u00f3ricas que se vayan archivando de nuestros datos, ocupan un almacenamiento que tendremos que pagar, aunque hay que tener en cuenta que Snowflake, c\u00f3mo vimos en el art\u00edculo de almacenamiento, gestiona esto de la manera m\u00e1s eficiente posible, con lo que si por ejemplo, modificamos datos que afectan a una \u00fanica micropartici\u00f3n, solo esta micropartici\u00f3n es archivada, pero no archivar\u00eda microparticiones no afectadas por la modificaci\u00f3n.<\/span><\/p><p><b>Hay que tener cuidado en los siguientes supuestos<\/b><span style=\"font-weight: 400;\">, que sobre todo en tablas de alto volumen, pueden incrementar considerablemente los costes:<\/span><\/p><ul><li style=\"font-weight: 400;\" aria-level=\"1\"><b>Truncados-borrados e inserciones continuos en tablas de alto volumen<\/b><span style=\"font-weight: 400;\">. Imaginemos que tenemos una tabla de varios gigas, que continuamente borramos y volvemos a cargar. En estos casos, cada vez que hici\u00e9ramos esa operaci\u00f3n de borrado-inserci\u00f3n, estar\u00edamos archivando varios gigas de tabla, y eso si se multiplica varias veces por el n\u00famero de d\u00edas, puede ser importante en la factura.<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><b>Actualizaciones masivas de datos con frecuencia<\/b><span style=\"font-weight: 400;\">. Imaginemos que tenemos un proceso que actualiza una columna despu\u00e9s de cada inserci\u00f3n. Esto tambi\u00e9n generar\u00eda el archivado de toda la tabla entera.<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><b>Drops de tablas<\/b><span style=\"font-weight: 400;\">. Por el mismo motivo que un truncate, esto genera que se archive la tabla completa. Si hacemos continuos drops y recreaciones de la tabla con datos nuevos, una tabla permanente puede disparar los costes de almacenamiento.<\/span><\/li><\/ul><p><b>Se recomienda para controlar los costes derivados del Time Travel y el Fail-Safe lo siguiente<\/b><span style=\"font-weight: 400;\">:<\/span><\/p><ul><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Si tenemos tablas que son f\u00e1cilmente reproducibles desde fuera de Snowflake, mejor utilizar tablas transitorias que permanentes. De esta manera, nos ahorraremos los siete d\u00edas de Fail-Safe y como m\u00e1ximo tendremos un d\u00eda de Time Travel. Por ejemplo, tablas de lookup, o tablas de apoyo-staging para ciertos procesos ETL\u2019s que no son esenciales. En este \u00faltimo caso, si no es necesario que la tabla persista m\u00e1s all\u00e1 de la vida de la sesi\u00f3n, se puede configurar incluso como tabla temporal y ahorrar m\u00e1s, ya que en cuanto termina la sesi\u00f3n la tabla desaparece y no se puede recuperar.<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Las tablas de hechos normalmente deber\u00edan ser tablas permanentes, pero si de igual manera las podemos recuperar f\u00e1cilmente desde el sistema origen en caso de desastre, nos podemos plantear generar algunas como transitorias, y sacar backups peri\u00f3dicos con zero-copy cloning, caracter\u00edstica que tambi\u00e9n se desarrollar\u00e1 en este art\u00edculo.<\/span><\/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-bd8f0fe elementor-widget elementor-widget-heading\" data-id=\"bd8f0fe\" data-element_type=\"widget\" id=\"aspectos\" 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\">\u00bfC\u00f3mo utilizar el Time Travel? Casos de uso pr\u00e1cticos\n<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-27ee704 elementor-widget elementor-widget-text-editor\" data-id=\"27ee704\" 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><span style=\"font-weight: 400;\">En nuestro ejemplo, tenemos una tabla donde se carga un stock diario. Lo que hemos hecho, ha sido el d\u00eda 10 de noviembre cargar el stock de esa fecha, y el d\u00eda 11 de noviembre hemos machacado el stock del 10 de noviembre por el actual a 11 de noviembre. Fijamos un Time Travel de treinta d\u00edas a nivel base de datos (que es el que aplicar\u00eda por defecto a los objetos por debajo). Pasan 19 d\u00edas desde la \u00faltima carga.<\/span><\/p><p><b>Casos de uso que se plantean<\/b><span style=\"font-weight: 400;\">:<\/span><\/p><ul><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Un usuario quiere recuperar mediante una consulta la foto del 10 de noviembre.<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Por error, uno de nuestros analistas borr\u00f3 la tabla. Es necesario recuperar el stock que ten\u00edamos de producto lo m\u00e1s r\u00e1pido posible.<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Un usuario nos pide que guardemos una foto del estado del stock a 10 de noviembre, por si nos lo piden en alguna auditor\u00eda.<\/span><\/li><li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Un analista necesita actualizar el stock de un producto concreto en el d\u00eda 11 de noviembre, pero se equivoca y actualiza todos los productos. Restaurar la tabla al punto de antes del error.<\/span><\/li><\/ul><p><span style=\"font-weight: 400;\">Partimos ya de un stage interno creado en Snowflake donde hemos volcado los ficheros del 10 y el 11 de noviembre, y lanzamos el COPY INTO para insertarlos en la tabla cada d\u00eda.<\/span><\/p><h2><strong>Primer caso de uso: Consulta de un estado anterior de la tabla<\/strong><\/h2><p><span style=\"font-weight: 400;\">Si hacemos una consulta sobre la tabla, lo que obtenemos es el stock a d\u00eda 11 de noviembre:<\/span><\/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-f071f82 elementor-widget elementor-widget-image\" data-id=\"f071f82\" 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=\"977\" height=\"375\" data-src=\"https:\/\/bluetabsolutions.com\/wp-content\/uploads\/2023\/02\/time-travel1.png\" class=\"attachment-large size-large wp-image-14746 lazyload\" alt=\"\" data-srcset=\"https:\/\/bluetabsolutions.com\/wp-content\/uploads\/2023\/02\/time-travel1.png 977w, https:\/\/bluetabsolutions.com\/wp-content\/uploads\/2023\/02\/time-travel1-300x115.png 300w, https:\/\/bluetabsolutions.com\/wp-content\/uploads\/2023\/02\/time-travel1-768x295.png 768w\" data-sizes=\"(max-width: 977px) 100vw, 977px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 977px; --smush-placeholder-aspect-ratio: 977\/375;\" \/>\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-7b243d0 elementor-widget elementor-widget-text-editor\" data-id=\"7b243d0\" 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>Para el usuario poder consultar la informaci\u00f3n a 10 de noviembre en esta tabla, tendr\u00eda tres opciones:<\/p><ul><li>Consulta con un timestamp fijo. Es decir, consultamos la tabla tal cual estaba en un momento espec\u00edfico del tiempo. En nuestro caso, la consultamos a 10 de noviembre:<\/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-8707751 elementor-widget elementor-widget-image\" data-id=\"8707751\" 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<figure class=\"wp-caption\">\n\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"872\" height=\"329\" data-src=\"https:\/\/bluetabsolutions.com\/wp-content\/uploads\/2023\/02\/time-travel2.png\" class=\"attachment-large size-large wp-image-14748 lazyload\" alt=\"\" data-srcset=\"https:\/\/bluetabsolutions.com\/wp-content\/uploads\/2023\/02\/time-travel2.png 872w, https:\/\/bluetabsolutions.com\/wp-content\/uploads\/2023\/02\/time-travel2-300x113.png 300w, https:\/\/bluetabsolutions.com\/wp-content\/uploads\/2023\/02\/time-travel2-768x290.png 768w\" data-sizes=\"(max-width: 872px) 100vw, 872px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 872px; --smush-placeholder-aspect-ratio: 872\/329;\" \/>\t\t\t\t\t\t\t\t\t\t\t<figcaption class=\"widget-image-caption wp-caption-text\"><\/figcaption>\n\t\t\t\t\t\t\t\t\t\t<\/figure>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ce8c917 elementor-widget elementor-widget-text-editor\" data-id=\"ce8c917\" 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>Mediante un offset en segundos. Aqu\u00ed lo que hacemos es decir que queremos consultar la informaci\u00f3n al estado de hace 19 d\u00edas (cuando hacemos la consulta es 29 de noviembre, y queremos los datos del 10 de noviembre). Para ir 19 d\u00edas hacia atr\u00e1s, como el offset es en segundos, multiplicamos 60*60*24 (con esto pasamos los segundos a d\u00edas) y por 19 (que son los d\u00edas que queremos viajar hacia atr\u00e1s):<\/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-c660519 elementor-widget elementor-widget-image\" data-id=\"c660519\" 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<figure class=\"wp-caption\">\n\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"977\" height=\"268\" data-src=\"https:\/\/bluetabsolutions.com\/wp-content\/uploads\/2023\/02\/time-travel3.png\" class=\"attachment-large size-large wp-image-14750 lazyload\" alt=\"\" data-srcset=\"https:\/\/bluetabsolutions.com\/wp-content\/uploads\/2023\/02\/time-travel3.png 977w, https:\/\/bluetabsolutions.com\/wp-content\/uploads\/2023\/02\/time-travel3-300x82.png 300w, https:\/\/bluetabsolutions.com\/wp-content\/uploads\/2023\/02\/time-travel3-768x211.png 768w\" data-sizes=\"(max-width: 977px) 100vw, 977px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 977px; --smush-placeholder-aspect-ratio: 977\/268;\" \/>\t\t\t\t\t\t\t\t\t\t\t<figcaption class=\"widget-image-caption wp-caption-text\"><\/figcaption>\n\t\t\t\t\t\t\t\t\t\t<\/figure>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b4c169f elementor-widget elementor-widget-text-editor\" data-id=\"b4c169f\" 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>Con un ID de query. Ojo con esta opci\u00f3n porque tambi\u00e9n puede dar problemas. En nuestro caso, cuando la ejecutamos, da el siguiente error:<\/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-5db6b7c elementor-widget elementor-widget-image\" data-id=\"5db6b7c\" 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<figure class=\"wp-caption\">\n\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"891\" height=\"460\" data-src=\"https:\/\/bluetabsolutions.com\/wp-content\/uploads\/2023\/02\/time-travel4.png\" class=\"attachment-large size-large wp-image-14752 lazyload\" alt=\"\" data-srcset=\"https:\/\/bluetabsolutions.com\/wp-content\/uploads\/2023\/02\/time-travel4.png 891w, https:\/\/bluetabsolutions.com\/wp-content\/uploads\/2023\/02\/time-travel4-300x155.png 300w, https:\/\/bluetabsolutions.com\/wp-content\/uploads\/2023\/02\/time-travel4-768x396.png 768w\" data-sizes=\"(max-width: 891px) 100vw, 891px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 891px; --smush-placeholder-aspect-ratio: 891\/460;\" \/>\t\t\t\t\t\t\t\t\t\t\t<figcaption class=\"widget-image-caption wp-caption-text\"><\/figcaption>\n\t\t\t\t\t\t\t\t\t\t<\/figure>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-624c648 elementor-widget elementor-widget-text-editor\" data-id=\"624c648\" 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>Nos cercioramos de que ese ID de query s\u00ed que existe en el historial completo (Base de datos SNOWFLAKE, esquema ACCOUNT_USAGE, tabla QUERY_HISTORY:<\/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-85379ff elementor-widget elementor-widget-image\" data-id=\"85379ff\" 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<figure class=\"wp-caption\">\n\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"977\" height=\"268\" data-src=\"https:\/\/bluetabsolutions.com\/wp-content\/uploads\/2023\/02\/time-travel5.png\" class=\"attachment-large size-large wp-image-14755 lazyload\" alt=\"\" data-srcset=\"https:\/\/bluetabsolutions.com\/wp-content\/uploads\/2023\/02\/time-travel5.png 977w, https:\/\/bluetabsolutions.com\/wp-content\/uploads\/2023\/02\/time-travel5-300x82.png 300w, https:\/\/bluetabsolutions.com\/wp-content\/uploads\/2023\/02\/time-travel5-768x211.png 768w\" data-sizes=\"(max-width: 977px) 100vw, 977px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 977px; --smush-placeholder-aspect-ratio: 977\/268;\" \/>\t\t\t\t\t\t\t\t\t\t\t<figcaption class=\"widget-image-caption wp-caption-text\"><\/figcaption>\n\t\t\t\t\t\t\t\t\t\t<\/figure>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b90d4e7 elementor-widget elementor-widget-text-editor\" data-id=\"b90d4e7\" 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>Vemos que el ID es correcto y es justo cuando hicimos el truncate de la tabla para borrar los datos del d\u00eda 10. El motivo por el que creemos que viene el error es porque el detalle del historial de queries solamente se guarda durante 14 d\u00edas, con lo cual, este m\u00e9todo no es recomendable para lanzar consultas pasado este periodo. Aunque nuestro Time Travel sea mayor (como en este caso, 30 d\u00edas) el detalle de datos de la query no es accesible.<\/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-0ac5542 elementor-widget elementor-widget-heading\" data-id=\"0ac5542\" 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\">Segundo caso de uso: Recuperaci\u00f3n de una tabla borrada por error<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7addd25 elementor-widget elementor-widget-text-editor\" data-id=\"7addd25\" 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>Imaginemos que alg\u00fan usuario de manera accidental borra del todo la tabla:<\/p><p><strong><em>drop table stock_diario<\/em><\/strong><\/p><p>Los usuarios empiezan a quejarse que hay aplicaciones que han dejado de funcionar, tardar\u00edamos bastante tiempo en reprocesar el archivo en origen, dependemos de un equipo que nos lo haga\u2026<\/p><p>Snowflake facilita la recuperaci\u00f3n de una tabla borrada durante el tiempo del Time Travel con una simple instrucci\u00f3n. Undrop la cual al ser una operaci\u00f3n de metadata se ejecuta inmediatamente. No es necesario tener que localizar un backup donde estaba esa tabla ok, restaurarlo, sacar la tabla\u2026 simplemente ejecutar esta sentencia.<\/p><p>Demostraci\u00f3n a continuaci\u00f3n, borramos la tabla:<\/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-5e2f59b elementor-widget elementor-widget-image\" data-id=\"5e2f59b\" 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<figure class=\"wp-caption\">\n\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"393\" height=\"37\" data-src=\"https:\/\/bluetabsolutions.com\/wp-content\/uploads\/2023\/02\/time-travel6.png\" class=\"attachment-large size-large wp-image-14757 lazyload\" alt=\"\" data-srcset=\"https:\/\/bluetabsolutions.com\/wp-content\/uploads\/2023\/02\/time-travel6.png 393w, https:\/\/bluetabsolutions.com\/wp-content\/uploads\/2023\/02\/time-travel6-300x28.png 300w\" data-sizes=\"(max-width: 393px) 100vw, 393px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 393px; --smush-placeholder-aspect-ratio: 393\/37;\" \/>\t\t\t\t\t\t\t\t\t\t\t<figcaption class=\"widget-image-caption wp-caption-text\"><\/figcaption>\n\t\t\t\t\t\t\t\t\t\t<\/figure>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-91292f9 elementor-widget elementor-widget-text-editor\" data-id=\"91292f9\" 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>Ejecutamos una query y nos devuelve el siguiente error:<\/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-1aee615 elementor-widget elementor-widget-image\" data-id=\"1aee615\" 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<figure class=\"wp-caption\">\n\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"658\" height=\"208\" data-src=\"https:\/\/bluetabsolutions.com\/wp-content\/uploads\/2023\/02\/time-travel7.png\" class=\"attachment-large size-large wp-image-14759 lazyload\" alt=\"\" data-srcset=\"https:\/\/bluetabsolutions.com\/wp-content\/uploads\/2023\/02\/time-travel7.png 658w, https:\/\/bluetabsolutions.com\/wp-content\/uploads\/2023\/02\/time-travel7-300x95.png 300w\" data-sizes=\"(max-width: 658px) 100vw, 658px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 658px; --smush-placeholder-aspect-ratio: 658\/208;\" \/>\t\t\t\t\t\t\t\t\t\t\t<figcaption class=\"widget-image-caption wp-caption-text\"><\/figcaption>\n\t\t\t\t\t\t\t\t\t\t<\/figure>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c40613a elementor-widget elementor-widget-text-editor\" data-id=\"c40613a\" 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>Ejecutamos la sentencia undrop:<\/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-d6d8c34 elementor-widget elementor-widget-image\" data-id=\"d6d8c34\" 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<figure class=\"wp-caption\">\n\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"666\" height=\"289\" data-src=\"https:\/\/bluetabsolutions.com\/wp-content\/uploads\/2023\/02\/time-travel8.png\" class=\"attachment-large size-large wp-image-14761 lazyload\" alt=\"\" data-srcset=\"https:\/\/bluetabsolutions.com\/wp-content\/uploads\/2023\/02\/time-travel8.png 666w, https:\/\/bluetabsolutions.com\/wp-content\/uploads\/2023\/02\/time-travel8-300x130.png 300w\" data-sizes=\"(max-width: 666px) 100vw, 666px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 666px; --smush-placeholder-aspect-ratio: 666\/289;\" \/>\t\t\t\t\t\t\t\t\t\t\t<figcaption class=\"widget-image-caption wp-caption-text\"><\/figcaption>\n\t\t\t\t\t\t\t\t\t\t<\/figure>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-fc2b23f elementor-widget elementor-widget-text-editor\" data-id=\"fc2b23f\" 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>Y vemos que Snowflake nos devuelve el mensaje de que la tabla ha sido correctamente restaurada.<\/p><p>Y comprobamos que podemos volver a hacer queries. Por supuesto, el Time Travel despu\u00e9s de la recuperaci\u00f3n se mantiene, pudiendo tambi\u00e9n consultar fotos anteriores de la tabla tal y como vemos en la captura:<\/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-448910c elementor-widget elementor-widget-image\" data-id=\"448910c\" 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<figure class=\"wp-caption\">\n\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"977\" height=\"252\" data-src=\"https:\/\/bluetabsolutions.com\/wp-content\/uploads\/2023\/02\/time-travel9.png\" class=\"attachment-large size-large wp-image-14763 lazyload\" alt=\"\" data-srcset=\"https:\/\/bluetabsolutions.com\/wp-content\/uploads\/2023\/02\/time-travel9.png 977w, https:\/\/bluetabsolutions.com\/wp-content\/uploads\/2023\/02\/time-travel9-300x77.png 300w, https:\/\/bluetabsolutions.com\/wp-content\/uploads\/2023\/02\/time-travel9-768x198.png 768w\" data-sizes=\"(max-width: 977px) 100vw, 977px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 977px; --smush-placeholder-aspect-ratio: 977\/252;\" \/>\t\t\t\t\t\t\t\t\t\t\t<figcaption class=\"widget-image-caption wp-caption-text\"><\/figcaption>\n\t\t\t\t\t\t\t\t\t\t<\/figure>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5b071a8 elementor-widget elementor-widget-text-editor\" data-id=\"5b071a8\" 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>Importante a tener en cuenta: El UNDROP siempre restaura la \u00faltima versi\u00f3n de los datos que hubiese en el momento del borrado.<\/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-6cebff1 elementor-widget elementor-widget-heading\" data-id=\"6cebff1\" 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\">Tercer caso de uso: Sacar una foto est\u00e1tica de un estado de la tabla<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ff7d7a5 elementor-widget elementor-widget-text-editor\" data-id=\"ff7d7a5\" 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>Ya se ha visto que durante el periodo de Time Travel podemos consultar el estado anterior de una tabla. Pero, \u00bfy si un usuario pidiera guardar el estado de esa tabla de forma permanente? Este caso de uso es frecuente en el mundo financiero y de la auditor\u00eda para cosas tales como poder sacar un estado de cuentas con los movimientos a una determinada fecha, o que un regulador nos pida sacar instant\u00e1neas de los datos a determinados momentos para una consulta posterior.<\/p><p>La opci\u00f3n m\u00e1s inmediata para satisfacer este requerimiento ser\u00eda combinar las funcionalidades de zero-copy cloning y time travel. Las ventajas que nos ofrece esta opci\u00f3n ser\u00eda:<\/p><ul><li>No duplicamos almacenamiento por la instant\u00e1nea. Durante el tiempo de Time Travel, tenemos un \u00fanico fichero, y nuestro clon apuntar\u00eda a esa versi\u00f3n de los datos. Cuando el Time Travel expire, Snowflake sabr\u00e1 que hay un clon apuntando a esos datos y por tanto no los borrar\u00e1. Si lo hici\u00e9semos insertando los datos en una nueva tabla, durante el Time Travel de esa versi\u00f3n de los datos se estar\u00eda duplicando el almacenamiento.<\/li><li>Creamos todo en una simple sentencia.<\/li><\/ul><p>A continuaci\u00f3n se muestra el clonado de nuestra tabla de stock con la foto del 10 de noviembre:<\/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-e02a09c elementor-widget elementor-widget-image\" data-id=\"e02a09c\" 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<figure class=\"wp-caption\">\n\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"977\" height=\"295\" data-src=\"https:\/\/bluetabsolutions.com\/wp-content\/uploads\/2023\/02\/time-travel10.png\" class=\"attachment-large size-large wp-image-14768 lazyload\" alt=\"\" data-srcset=\"https:\/\/bluetabsolutions.com\/wp-content\/uploads\/2023\/02\/time-travel10.png 977w, https:\/\/bluetabsolutions.com\/wp-content\/uploads\/2023\/02\/time-travel10-300x91.png 300w, https:\/\/bluetabsolutions.com\/wp-content\/uploads\/2023\/02\/time-travel10-768x232.png 768w\" data-sizes=\"(max-width: 977px) 100vw, 977px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 977px; --smush-placeholder-aspect-ratio: 977\/295;\" \/>\t\t\t\t\t\t\t\t\t\t\t<figcaption class=\"widget-image-caption wp-caption-text\"><\/figcaption>\n\t\t\t\t\t\t\t\t\t\t<\/figure>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7acb4b8 elementor-widget elementor-widget-text-editor\" data-id=\"7acb4b8\" 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>Imaginemos que pasa el time travel de esta tabla. Podemos simularlo haciendo un ALTER TABLE y poniendo la tabla a 10 d\u00edas (han pasado m\u00e1s de 10 d\u00edas desde la \u00faltima modificaci\u00f3n):<\/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-c243a2e elementor-widget elementor-widget-image\" data-id=\"c243a2e\" 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<figure class=\"wp-caption\">\n\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"756\" height=\"47\" data-src=\"https:\/\/bluetabsolutions.com\/wp-content\/uploads\/2023\/02\/time-travel11.png\" class=\"attachment-large size-large wp-image-14770 lazyload\" alt=\"\" data-srcset=\"https:\/\/bluetabsolutions.com\/wp-content\/uploads\/2023\/02\/time-travel11.png 756w, https:\/\/bluetabsolutions.com\/wp-content\/uploads\/2023\/02\/time-travel11-300x19.png 300w\" data-sizes=\"(max-width: 756px) 100vw, 756px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 756px; --smush-placeholder-aspect-ratio: 756\/47;\" \/>\t\t\t\t\t\t\t\t\t\t\t<figcaption class=\"widget-image-caption wp-caption-text\"><\/figcaption>\n\t\t\t\t\t\t\t\t\t\t<\/figure>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-40b5e6b elementor-widget elementor-widget-text-editor\" data-id=\"40b5e6b\" 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>Si se intenta sacar la foto a 10 de Noviembre desde la tabla original, Snowflake devuelve el siguiente error:<\/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-903db20 elementor-widget elementor-widget-image\" data-id=\"903db20\" 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<figure class=\"wp-caption\">\n\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"977\" height=\"70\" data-src=\"https:\/\/bluetabsolutions.com\/wp-content\/uploads\/2023\/02\/time-travel12.png\" class=\"attachment-large size-large wp-image-14772 lazyload\" alt=\"\" data-srcset=\"https:\/\/bluetabsolutions.com\/wp-content\/uploads\/2023\/02\/time-travel12.png 977w, https:\/\/bluetabsolutions.com\/wp-content\/uploads\/2023\/02\/time-travel12-300x21.png 300w, https:\/\/bluetabsolutions.com\/wp-content\/uploads\/2023\/02\/time-travel12-768x55.png 768w\" data-sizes=\"(max-width: 977px) 100vw, 977px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 977px; --smush-placeholder-aspect-ratio: 977\/70;\" \/>\t\t\t\t\t\t\t\t\t\t\t<figcaption class=\"widget-image-caption wp-caption-text\"><\/figcaption>\n\t\t\t\t\t\t\t\t\t\t<\/figure>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c314b38 elementor-widget elementor-widget-text-editor\" data-id=\"c314b38\" 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>Ya que ese estado de los datos ten\u00edan una antig\u00fcedad mayor a 10 d\u00edas, Snowflake lo ha llevado directamente a Fail-Safe.<\/p><p>Si consultamos el clon que se acaba de generar:<\/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-7d085e9 elementor-widget elementor-widget-image\" data-id=\"7d085e9\" 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<figure class=\"wp-caption\">\n\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"977\" height=\"266\" data-src=\"https:\/\/bluetabsolutions.com\/wp-content\/uploads\/2023\/02\/time-travel13.png\" class=\"attachment-large size-large wp-image-14774 lazyload\" alt=\"\" data-srcset=\"https:\/\/bluetabsolutions.com\/wp-content\/uploads\/2023\/02\/time-travel13.png 977w, https:\/\/bluetabsolutions.com\/wp-content\/uploads\/2023\/02\/time-travel13-300x82.png 300w, https:\/\/bluetabsolutions.com\/wp-content\/uploads\/2023\/02\/time-travel13-768x209.png 768w\" data-sizes=\"(max-width: 977px) 100vw, 977px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 977px; --smush-placeholder-aspect-ratio: 977\/266;\" \/>\t\t\t\t\t\t\t\t\t\t\t<figcaption class=\"widget-image-caption wp-caption-text\"><\/figcaption>\n\t\t\t\t\t\t\t\t\t\t<\/figure>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7dd8da8 elementor-widget elementor-widget-text-editor\" data-id=\"7dd8da8\" 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>Se ve que a pesar de que el Time Travel ha expirado, mantenemos la foto del 10 de noviembre, y esta foto persistir\u00e1 salvo que borremos el clon.<\/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-9ccdea2 elementor-widget elementor-widget-heading\" data-id=\"9ccdea2\" data-element_type=\"widget\" id=\"cuarto\" 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\">Cuarto caso de uso: Restaurar la tabla a un estado anterior<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9ac10a6 elementor-widget elementor-widget-text-editor\" data-id=\"9ac10a6\" 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>Imaginemos que le piden a un usuario actualizar el stock de impresoras de 15 a 14 unidades. Para ello el usuario genera la siguiente consulta:<\/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-465f490 elementor-widget elementor-widget-image\" data-id=\"465f490\" 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<figure class=\"wp-caption\">\n\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"356\" height=\"108\" data-src=\"https:\/\/bluetabsolutions.com\/wp-content\/uploads\/2023\/02\/time-travel14.png\" class=\"attachment-large size-large wp-image-14779 lazyload\" alt=\"\" data-srcset=\"https:\/\/bluetabsolutions.com\/wp-content\/uploads\/2023\/02\/time-travel14.png 356w, https:\/\/bluetabsolutions.com\/wp-content\/uploads\/2023\/02\/time-travel14-300x91.png 300w\" data-sizes=\"(max-width: 356px) 100vw, 356px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 356px; --smush-placeholder-aspect-ratio: 356\/108;\" \/>\t\t\t\t\t\t\t\t\t\t\t<figcaption class=\"widget-image-caption wp-caption-text\"><\/figcaption>\n\t\t\t\t\t\t\t\t\t\t<\/figure>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4398c5c elementor-widget elementor-widget-text-editor\" data-id=\"4398c5c\" 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>El usuario se ha olvidado de un peque\u00f1o detalle y es aplicar un where para \u00fanicamente actualizar la l\u00ednea de las impresoras, con lo que ahora todo el stock est\u00e1 a 14 unidades de forma err\u00f3nea.<\/p><p>Para recuperar la tabla, podr\u00edamos recrearla gracias al Time Travel, mediante una sentencia create or replace:<\/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-c693041 elementor-widget elementor-widget-image\" data-id=\"c693041\" 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<figure class=\"wp-caption\">\n\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"797\" height=\"164\" data-src=\"https:\/\/bluetabsolutions.com\/wp-content\/uploads\/2023\/02\/time-travel15.png\" class=\"attachment-large size-large wp-image-14781 lazyload\" alt=\"\" data-srcset=\"https:\/\/bluetabsolutions.com\/wp-content\/uploads\/2023\/02\/time-travel15.png 797w, https:\/\/bluetabsolutions.com\/wp-content\/uploads\/2023\/02\/time-travel15-300x62.png 300w, https:\/\/bluetabsolutions.com\/wp-content\/uploads\/2023\/02\/time-travel15-768x158.png 768w\" data-sizes=\"(max-width: 797px) 100vw, 797px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 797px; --smush-placeholder-aspect-ratio: 797\/164;\" \/>\t\t\t\t\t\t\t\t\t\t\t<figcaption class=\"widget-image-caption wp-caption-text\"><\/figcaption>\n\t\t\t\t\t\t\t\t\t\t<\/figure>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-82f67d4 elementor-widget elementor-widget-text-editor\" data-id=\"82f67d4\" 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>Lo que estamos haciendo es sustituir la tabla al estado al que estaba ayer (que es el correcto).<\/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-6b4aa58 elementor-widget elementor-widget-image\" data-id=\"6b4aa58\" 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<figure class=\"wp-caption\">\n\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"977\" height=\"270\" data-src=\"https:\/\/bluetabsolutions.com\/wp-content\/uploads\/2023\/02\/time-travel16.png\" class=\"attachment-large size-large wp-image-14784 lazyload\" alt=\"\" data-srcset=\"https:\/\/bluetabsolutions.com\/wp-content\/uploads\/2023\/02\/time-travel16.png 977w, https:\/\/bluetabsolutions.com\/wp-content\/uploads\/2023\/02\/time-travel16-300x83.png 300w, https:\/\/bluetabsolutions.com\/wp-content\/uploads\/2023\/02\/time-travel16-768x212.png 768w\" data-sizes=\"(max-width: 977px) 100vw, 977px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 977px; --smush-placeholder-aspect-ratio: 977\/270;\" \/>\t\t\t\t\t\t\t\t\t\t\t<figcaption class=\"widget-image-caption wp-caption-text\"><\/figcaption>\n\t\t\t\t\t\t\t\t\t\t<\/figure>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5eef848 elementor-widget elementor-widget-text-editor\" data-id=\"5eef848\" 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>IMPORTANTE<\/strong>: Hay que tener en cuenta que cuando hacemos un REPLACE TABLE como en este caso, se genera una nueva tabla con una metadata limpia, con lo cual perdemos el Time Travel en esa tabla. Si por ejemplo, intentamos recuperar la informaci\u00f3n 5 minutos atr\u00e1s, nos dir\u00e1 que no hay Time Travel de ese momento:<\/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-0b62568 elementor-widget elementor-widget-image\" data-id=\"0b62568\" 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<figure class=\"wp-caption\">\n\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"977\" height=\"79\" data-src=\"https:\/\/bluetabsolutions.com\/wp-content\/uploads\/2023\/02\/time-travel17.png\" class=\"attachment-large size-large wp-image-14792 lazyload\" alt=\"\" data-srcset=\"https:\/\/bluetabsolutions.com\/wp-content\/uploads\/2023\/02\/time-travel17.png 977w, https:\/\/bluetabsolutions.com\/wp-content\/uploads\/2023\/02\/time-travel17-300x24.png 300w, https:\/\/bluetabsolutions.com\/wp-content\/uploads\/2023\/02\/time-travel17-768x62.png 768w\" data-sizes=\"(max-width: 977px) 100vw, 977px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 977px; --smush-placeholder-aspect-ratio: 977\/79;\" \/>\t\t\t\t\t\t\t\t\t\t\t<figcaption class=\"widget-image-caption wp-caption-text\"><\/figcaption>\n\t\t\t\t\t\t\t\t\t\t<\/figure>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7eed0af elementor-widget elementor-widget-text-editor\" data-id=\"7eed0af\" 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>Cuando hagamos estas restauraciones debemos estar muy seguros. Una opci\u00f3n recomendable ser\u00eda antes de machacar la tabla original, hacer el replace en una tabla nueva y revisar que todo est\u00e9 ok.<\/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-30687e6 elementor-widget elementor-widget-spacer\" data-id=\"30687e6\" data-element_type=\"widget\" id=\"ref\" 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-7b2b8ef elementor-widget elementor-widget-heading\" data-id=\"7b2b8ef\" data-element_type=\"widget\" id=\"conclusiones\" 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\">Conclusiones<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-42a72e3 elementor-widget elementor-widget-text-editor\" data-id=\"42a72e3\" 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>El Time Travel y el Fail-Safe son dos funcionalidades que nos proporciona Snowflake sin tener que mantener ni configurar pr\u00e1cticamente nada, <\/strong>y que cubren gran cantidad de casos de uso c\u00f3mo consultas de hist\u00f3rico, recuperaci\u00f3n r\u00e1pida en caso de error o problema y la posibilidad de sacar instant\u00e1neas a un momento determinado en combinaci\u00f3n con el zero-copy cloning.<\/p><p>Es importante tener muy claro los tiempos de retenci\u00f3n de cada una de las bases de datos-esquemas tablas, y seleccionar el tipo de tabla adecuado en consecuencia, para optimizar al m\u00e1ximo el coste de almacenamiento.<\/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-65c3381 elementor-widget elementor-widget-spacer\" data-id=\"65c3381\" 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<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-f668113 nav-column elementor-hidden-phone\" data-id=\"f668113\" 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-a718512 nav-post elementor-widget elementor-widget-text-editor\" data-id=\"a718512\" 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<h6><strong>Navegaci\u00f3n<\/strong><\/h6><p><a href=\"#intro\">Introducci\u00f3n<\/a><\/p><p><a href=\"#objetivo\">\u00bfQu\u00e9 es el Time Travel?<br \/><\/a><\/p><p><a href=\"#escalabilidad\">\u00bfQu\u00e9 es el Fail-Safe?<br \/><\/a><\/p><p><a href=\"#objetivosal\">\u00bfQu\u00e9 se puede hacer con el Time Travel?<\/a><\/p><p><a href=\"#principalal\">\u00bfC\u00f3mo utilizar el Fail-Safe?<br \/><\/a><\/p><p><a href=\"#metacatos\">\u00bfC\u00f3mo se configura el Time Travel?<br \/><\/a><\/p><p><a href=\"#principalmicro\">\u00bfC\u00f3mo se configura el Fail-Safe?<br \/><\/a><\/p><p><a href=\"#entendiendo\">Consideraciones a tener en cuenta en el Time Travel y el Fail-Safe<br \/><\/a><\/p><p><a href=\"#dml\">Costes del Time Travel y el Fail-Safe<br \/><\/a><\/p><p><a href=\"#aspectos\">\u00bfC\u00f3mo utilizar el Time Travel? Casos de uso pr\u00e1cticos<\/a><\/p><p><a href=\"#conclusiones\">Principales conclusiones<\/a><\/p><p><a href=\"#autores\">Autores<\/a><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t\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-09395a3 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"09395a3\" data-element_type=\"section\" id=\"autores\">\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-2ba3c08\" data-id=\"2ba3c08\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-inner-section elementor-element elementor-element-f18d1b8 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"f18d1b8\" 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-b490454\" data-id=\"b490454\" 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-a76f07c elementor-widget elementor-widget-heading\" data-id=\"a76f07c\" 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\">\u00bfQuieres saber m\u00e1s de lo que ofrecemos y ver otros casos de \u00e9xito?<\/h5>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7365ecc elementor-align-center elementor-widget elementor-widget-button\" data-id=\"7365ecc\" 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\">DESCUBRE 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-7a7e9b1 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"7a7e9b1\" 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-0225831\" data-id=\"0225831\" 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-816937f\" data-id=\"816937f\" 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-756365e 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=\"756365e\" 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-44d24bd elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"44d24bd\" 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-5b6c622\" data-id=\"5b6c622\" 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-ede07de elementor-position-left elementor-vertical-align-middle elementor-widget elementor-widget-image-box\" data-id=\"ede07de\" 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\/roberto-garc%C3%ADa-parra-1b914128\/\" target=\"_blank\" tabindex=\"-1\"><img decoding=\"async\" width=\"150\" height=\"150\" data-src=\"https:\/\/bluetabsolutions.com\/wp-content\/uploads\/2022\/03\/cropped-Isotipo-Bluetab-150x150.png\" class=\"attachment-thumbnail size-thumbnail wp-image-13320 lazyload\" alt=\"\" data-srcset=\"https:\/\/bluetab.es\/wp-content\/uploads\/2022\/03\/cropped-Isotipo-Bluetab-150x150.png 150w, https:\/\/bluetab.es\/wp-content\/uploads\/2022\/03\/cropped-Isotipo-Bluetab-300x300.png 300w, https:\/\/bluetab.es\/wp-content\/uploads\/2022\/03\/cropped-Isotipo-Bluetab-75x75.png 75w, https:\/\/bluetab.es\/wp-content\/uploads\/2022\/03\/cropped-Isotipo-Bluetab-270x270.png 270w, https:\/\/bluetab.es\/wp-content\/uploads\/2022\/03\/cropped-Isotipo-Bluetab-192x192.png 192w, https:\/\/bluetab.es\/wp-content\/uploads\/2022\/03\/cropped-Isotipo-Bluetab-180x180.png 180w, https:\/\/bluetab.es\/wp-content\/uploads\/2022\/03\/cropped-Isotipo-Bluetab-32x32.png 32w, https:\/\/bluetab.es\/wp-content\/uploads\/2022\/03\/cropped-Isotipo-Bluetab.png 512w\" 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\/roberto-garc%C3%ADa-parra-1b914128\/\" target=\"_blank\">Roberto Garc\u00eda Parra<\/a><\/h4><p class=\"elementor-image-box-description\">Technical Delivery Manager <\/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-bebcca1\" data-id=\"bebcca1\" 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-d6e98f0 elementor-position-left elementor-vertical-align-middle elementor-widget elementor-widget-image-box\" data-id=\"d6e98f0\" 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\/gabriel-gallardo-ruiz-9042a0212\/\" target=\"_blank\" tabindex=\"-1\"><img decoding=\"async\" width=\"150\" height=\"150\" data-src=\"https:\/\/bluetabsolutions.com\/wp-content\/uploads\/2022\/03\/cropped-Isotipo-Bluetab-150x150.png\" class=\"attachment-thumbnail size-thumbnail wp-image-13320 lazyload\" alt=\"\" data-srcset=\"https:\/\/bluetab.es\/wp-content\/uploads\/2022\/03\/cropped-Isotipo-Bluetab-150x150.png 150w, https:\/\/bluetab.es\/wp-content\/uploads\/2022\/03\/cropped-Isotipo-Bluetab-300x300.png 300w, https:\/\/bluetab.es\/wp-content\/uploads\/2022\/03\/cropped-Isotipo-Bluetab-75x75.png 75w, https:\/\/bluetab.es\/wp-content\/uploads\/2022\/03\/cropped-Isotipo-Bluetab-270x270.png 270w, https:\/\/bluetab.es\/wp-content\/uploads\/2022\/03\/cropped-Isotipo-Bluetab-192x192.png 192w, https:\/\/bluetab.es\/wp-content\/uploads\/2022\/03\/cropped-Isotipo-Bluetab-180x180.png 180w, https:\/\/bluetab.es\/wp-content\/uploads\/2022\/03\/cropped-Isotipo-Bluetab-32x32.png 32w, https:\/\/bluetab.es\/wp-content\/uploads\/2022\/03\/cropped-Isotipo-Bluetab.png 512w\" 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\/gabriel-gallardo-ruiz-9042a0212\/\" target=\"_blank\">Gabriel Gallardo Ruiz<\/a><\/h4><p class=\"elementor-image-box-description\">Senior Data Architect <\/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\t<\/div>\n\t\t<\/section>\n\t\t\t\t<div class=\"elementor-element elementor-element-1ec3a45 elementor-widget elementor-widget-spacer\" data-id=\"1ec3a45\" 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<section class=\"elementor-section elementor-top-section elementor-element elementor-element-e6097d2 elementor-section-full_width elementor-section-height-default elementor-section-height-default\" data-id=\"e6097d2\" 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-a66a650\" data-id=\"a66a650\" 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-38e61b8 elementor-widget elementor-widget-text-editor\" data-id=\"38e61b8\" 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>SOLUCIONES, <\/b>SOMOS EXPERTOS<\/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-9975abb elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"9975abb\" 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-e5edefb\" data-id=\"e5edefb\" 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-0628f91 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=\"0628f91\" 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:\/\/bluetabsolutions.com\/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-8724c63\" data-id=\"8724c63\" 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-bc8b25d 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=\"bc8b25d\" 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:\/\/bluetabsolutions.com\/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-ddc996d\" data-id=\"ddc996d\" 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-1d384cf 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=\"1d384cf\" 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:\/\/bluetabsolutions.com\/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-f61bae8\" data-id=\"f61bae8\" 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-f3fe106 elementor-widget elementor-widget-text-editor\" data-id=\"f3fe106\" 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>Te puede interesar<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Snowflake, el Time Travel sin DeLorean para unos datos Fail-Safe. Roberto Garc\u00eda Parra Technical Delivery Manager Gabriel Gallardo Ruiz Senior Data Architect Introducci\u00f3n a Snowflake Este art\u00edculo supone una continuaci\u00f3n del art\u00edculo inicial que hicimos sobre el almacenamiento en Snowflake, y ser\u00e1 el primero de una serie donde entraremos a fondo en las caracter\u00edsticas m\u00e1s [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":17834,"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-16034","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.es\/wp-content\/uploads\/2023\/03\/8.png",1200,600,false],"thumbnail":["https:\/\/bluetab.es\/wp-content\/uploads\/2023\/03\/8-150x150.png",150,150,true],"medium":["https:\/\/bluetab.es\/wp-content\/uploads\/2023\/03\/8-300x150.png",300,150,true],"medium_large":["https:\/\/bluetab.es\/wp-content\/uploads\/2023\/03\/8-768x384.png",768,384,true],"large":["https:\/\/bluetab.es\/wp-content\/uploads\/2023\/03\/8-1024x512.png",1024,512,true],"1536x1536":["https:\/\/bluetab.es\/wp-content\/uploads\/2023\/03\/8.png",1200,600,false],"2048x2048":["https:\/\/bluetab.es\/wp-content\/uploads\/2023\/03\/8.png",1200,600,false],"sidebar-featured":["https:\/\/bluetab.es\/wp-content\/uploads\/2023\/03\/8-75x75.png",75,75,true],"genesis-singular-images":["https:\/\/bluetab.es\/wp-content\/uploads\/2023\/03\/8-702x526.png",702,526,true]},"uagb_author_info":{"display_name":"Bluetab","author_link":"https:\/\/bluetab.es\/en\/author\/user\/"},"uagb_comment_info":0,"uagb_excerpt":"Snowflake, el Time Travel sin DeLorean para unos datos Fail-Safe. Roberto Garc\u00eda Parra Technical Delivery Manager Gabriel Gallardo Ruiz Senior Data Architect Introducci\u00f3n a Snowflake Este art\u00edculo supone una continuaci\u00f3n del art\u00edculo inicial que hicimos sobre el almacenamiento en Snowflake, y ser\u00e1 el primero de una serie donde entraremos a fondo en las caracter\u00edsticas m\u00e1s&hellip;","_links":{"self":[{"href":"https:\/\/bluetab.es\/en\/wp-json\/wp\/v2\/posts\/16034","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bluetab.es\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/bluetab.es\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/bluetab.es\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/bluetab.es\/en\/wp-json\/wp\/v2\/comments?post=16034"}],"version-history":[{"count":1,"href":"https:\/\/bluetab.es\/en\/wp-json\/wp\/v2\/posts\/16034\/revisions"}],"predecessor-version":[{"id":16035,"href":"https:\/\/bluetab.es\/en\/wp-json\/wp\/v2\/posts\/16034\/revisions\/16035"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/bluetab.es\/en\/wp-json\/wp\/v2\/media\/17834"}],"wp:attachment":[{"href":"https:\/\/bluetab.es\/en\/wp-json\/wp\/v2\/media?parent=16034"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/bluetab.es\/en\/wp-json\/wp\/v2\/categories?post=16034"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/bluetab.es\/en\/wp-json\/wp\/v2\/tags?post=16034"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}