|
1 | 1 | # Snowflake |
2 | 2 |
|
| 3 | +- [Getting Started](#getting-started) |
| 4 | + * [Criar Account](#criar-account) |
| 5 | + * [Acessar a instancia](#acessar-a-instancia) |
| 6 | + * [Snowsight - UI](#snowsight---ui) |
| 7 | + * [Architecture Basics](#architecture-basics) |
| 8 | + * [Set up Warehouse - UI](#set-up-warehouse---ui) |
| 9 | + + [Create WH with SQL](#create-wh-with-sql) |
| 10 | + * [Scaling Policy](#scaling-policy) |
| 11 | + * [Databases](#databases) |
| 12 | + * [Load Data](#load-data) |
| 13 | +- [Snowflake Architecture](#snowflake-architecture) |
| 14 | + * [Data Warehouse](#data-warehouse) |
| 15 | + * [Cloud Computing](#cloud-computing) |
| 16 | + * [Snowflake Editions](#snowflake-editions) |
| 17 | + + [Standard](#standard) |
| 18 | + + [Enterprise](#enterprise) |
| 19 | + + [Busdiness Critical](#busdiness-critical) |
| 20 | + + [Virtual Private](#virtual-private) |
| 21 | + * [Pricing](#pricing) |
| 22 | + + [Storage](#storage) |
| 23 | + + [Compute](#compute) |
| 24 | + + [Storage](#storage-1) |
| 25 | + + [Recomendation](#recomendation) |
| 26 | + * [Monitor Usage](#monitor-usage) |
| 27 | + * [Roles](#roles) |
| 28 | +- [Loading Data](#loading-data) |
| 29 | + * [Loading Methods](#loading-methods) |
| 30 | + * [Stages](#stages) |
| 31 | + * [Creating a Stage](#creating-a-stage) |
| 32 | + * [COPY command](#copy-command) |
| 33 | + * [Transforming with COPY](#transforming-with-copy) |
| 34 | + * [COPY ON_ERROR](#copy-on-error) |
| 35 | + * [FILE_FORMAT object](#file-format-object) |
| 36 | +- [COPY options](#copy-options) |
| 37 | + * [Understanding copy options](#understanding-copy-options) |
| 38 | + * [VALIDATION_MODE](#validation-mode) |
| 39 | + * [Working with rejected values](#working-with-rejected-values) |
| 40 | + + [Dealing with errors](#dealing-with-errors) |
| 41 | + * [Other COPY Options](#other-copy-options) |
| 42 | + * [Check COPY history](#check-copy-history) |
| 43 | +- [Load Unstructured Data](#load-unstructured-data) |
| 44 | + * [Unstructure data example](#unstructure-data-example) |
| 45 | + * [Creating Stage and Loading Raw](#creating-stage-and-loading-raw) |
| 46 | + * [Parse JSON](#parse-json) |
| 47 | + * [Parsing Nested Data](#parsing-nested-data) |
| 48 | + * [Dealing with Hierarchy](#dealing-with-hierarchy) |
| 49 | + * [Insert Final Data](#insert-final-data) |
| 50 | + * [Querying PARQUET file](#querying-parquet-file) |
| 51 | + * [Loading PARQUET data](#loading-parquet-data) |
| 52 | +- [PERFORMANCE OPTIMIZATION](#performance-optimization) |
| 53 | + * [Performance in Snowflake](#performance-in-snowflake) |
| 54 | + * [Dedicated Warehouses](#dedicated-warehouses) |
| 55 | + * [Implement Dedicated WH](#implement-dedicated-wh) |
| 56 | + * [Scalling Up / Down](#scalling-up---down) |
| 57 | + * [Scaling Out](#scaling-out) |
| 58 | + * [Caching](#caching) |
| 59 | + + [Maximizing Cache](#maximizing-cache) |
| 60 | + * [Clustering](#clustering) |
| 61 | + + [When and how to cluster](#when-and-how-to-cluster) |
| 62 | + + [CLUSTER DEMO](#cluster-demo) |
| 63 | +- [Loading from Cloud Provider](#loading-from-cloud-provider) |
| 64 | + * [Loading the data](#loading-the-data) |
| 65 | +- [Snowpipe](#snowpipe) |
| 66 | + * [What is it?](#what-is-it-) |
| 67 | + * [Steps to Create](#steps-to-create) |
| 68 | + * [Creating the Stage](#creating-the-stage) |
| 69 | + * [Creating the PIPE](#creating-the-pipe) |
| 70 | + * [Creating Notification](#creating-notification) |
| 71 | + * [Error Handling](#error-handling) |
| 72 | + * [Managing Pipes](#managing-pipes) |
| 73 | +- [TIME TRAVEL](#time-travel) |
| 74 | + * [Time travel Functions](#time-travel-functions) |
| 75 | + * [Restoring the data](#restoring-the-data) |
| 76 | + * [Undrop Table / Schema / Database](#undrop-table---schema---database) |
| 77 | + * [Retention Period](#retention-period) |
| 78 | + * [Time Travel Cost](#time-travel-cost) |
| 79 | +- [FAIL SAFE](#fail-safe) |
| 80 | + * [What is Fail Safe](#what-is-fail-safe) |
| 81 | + * [Continuous Data Protection Lifecycle](#continuous-data-protection-lifecycle) |
| 82 | + * [Fail Safe Storage](#fail-safe-storage) |
| 83 | +- [TABLE TYPES](#table-types) |
| 84 | + * [The types](#the-types) |
| 85 | + * [Permanent Tables](#permanent-tables) |
| 86 | + * [Transient Tables](#transient-tables) |
| 87 | + * [Temporary Tables](#temporary-tables) |
| 88 | +- [ZERO-COPY CLONING](#zero-copy-cloning) |
| 89 | + * [What is Zero-Copy Cloning?](#what-is-zero-copy-cloning-) |
| 90 | + * [Cloning Tables](#cloning-tables) |
| 91 | + * [Cloning Schemas & Databases](#cloning-schemas---databases) |
| 92 | + * [Cloning with Time Travel](#cloning-with-time-travel) |
| 93 | + * [Swapping Tables](#swapping-tables) |
| 94 | +- [DATA SHARING](#data-sharing) |
| 95 | + * [What is Data Sharing](#what-is-data-sharing) |
| 96 | + * [Data share via SQL](#data-share-via-sql) |
| 97 | + * [Data share via UI](#data-share-via-ui) |
| 98 | + * [Share with non SF user](#share-with-non-sf-user) |
| 99 | + * [Crate a Reader Account - Managed Account](#crate-a-reader-account---managed-account) |
| 100 | + * [Create a DB from Share](#create-a-db-from-share) |
| 101 | + * [Create Users to share](#create-users-to-share) |
| 102 | + * [Sharing DB and Schema](#sharing-db-and-schema) |
| 103 | + * [Secure vs Normal view](#secure-vs-normal-view) |
| 104 | + * [Share a Secure View](#share-a-secure-view) |
| 105 | +- [DATA SAMPLING](#data-sampling) |
| 106 | + * [Why we need Data Sampling?](#why-we-need-data-sampling-) |
| 107 | + * [Sampling Methods](#sampling-methods) |
| 108 | + * [Sampling the data](#sampling-the-data) |
| 109 | +- [SCHEDULING TASKS](#scheduling-tasks) |
| 110 | + * [Understangin tasks](#understangin-tasks) |
| 111 | + * [Creating tasks](#creating-tasks) |
| 112 | + * [Using Cron](#using-cron) |
| 113 | + * [Trees of tasks](#trees-of-tasks) |
| 114 | + * [Creating Tree of tasks](#creating-tree-of-tasks) |
| 115 | + * [Calling a Stored Procedure](#calling-a-stored-procedure) |
| 116 | + * [Task History and Error Handling](#task-history-and-error-handling) |
| 117 | + * [Task with Conditions](#task-with-conditions) |
| 118 | +- [STREAMS](#streams) |
| 119 | + * [What are Streams](#what-are-streams) |
| 120 | + * [Insert Operation](#insert-operation) |
| 121 | + * [Update Operation](#update-operation) |
| 122 | + * [Delete Operation](#delete-operation) |
| 123 | + * [Process All Data Changes](#process-all-data-changes) |
| 124 | + * [Combo: Streams + Tasks](#combo--streams---tasks) |
| 125 | + * [Types of Streams](#types-of-streams) |
| 126 | + * [Changes Clause](#changes-clause) |
| 127 | +- [MATERIALIZED VIEWS](#materialized-views) |
| 128 | + * [What are Materialized views ?](#what-are-materialized-views--) |
| 129 | + * [Using Materialized view](#using-materialized-view) |
| 130 | + * [Refresh MA](#refresh-ma) |
| 131 | + * [Costs](#costs) |
| 132 | + * [When to use MV](#when-to-use-mv) |
| 133 | + * [MV Liimitations](#mv-liimitations) |
| 134 | +- [DYNAMIC DATA MASKING](#dynamic-data-masking) |
| 135 | + * [What is Data Masking](#what-is-data-masking) |
| 136 | + * [Creating a Masking Policy](#creating-a-masking-policy) |
| 137 | + * [Unset and Replace Policy](#unset-and-replace-policy) |
| 138 | + * [Alter an Existing Policy](#alter-an-existing-policy) |
| 139 | + * [Masking Examples](#masking-examples) |
| 140 | +- [ACCESS MANAGEMENT](#access-management) |
| 141 | + * [What is Access Management](#what-is-access-management) |
| 142 | + + [Key Concepts](#key-concepts) |
| 143 | + * [Snowflake Roles Overview](#snowflake-roles-overview) |
| 144 | + * [ACCOUNTADMIN](#accountadmin) |
| 145 | + * [ACCOUNTADMIN in practice](#accountadmin-in-practice) |
| 146 | + * [SECUTIRYADMIN](#secutiryadmin) |
| 147 | + * [SECUTIRYADMIN in Practice](#secutiryadmin-in-practice) |
| 148 | + * [SYSADMIN](#sysadmin) |
| 149 | + * [SYSADMIN in Practice](#sysadmin-in-practice) |
| 150 | + * [Custom Roles](#custom-roles) |
| 151 | + * [Custom Roles in Practice](#custom-roles-in-practice) |
| 152 | + * [USERADMIN](#useradmin) |
| 153 | + * [USERADMNI in Practice](#useradmni-in-practice) |
| 154 | + * [PUBLIC](#public) |
| 155 | +- [PARTNER CONNECT](#partner-connect) |
| 156 | +- [BEST PRACTICES](#best-practices) |
| 157 | + * [Most common Best Practices](#most-common-best-practices) |
| 158 | + * [Virtual Warehouses](#virtual-warehouses) |
| 159 | + * [Table Design](#table-design) |
| 160 | + * [Monitoring](#monitoring) |
| 161 | + * [Retention Period](#retention-period-1) |
| 162 | + |
| 163 | +<small><i><a href='http://ecotrust-canada.github.io/markdown-toc/'>Table of contents generated with markdown-toc</a></i></small> |
| 164 | + |
3 | 165 | # Getting Started |
4 | 166 |
|
5 | 167 | ## Criar Account |
@@ -782,6 +944,7 @@ SELECT * FROM rejected_values; |
782 | 944 | - each table has one table_id and we can compare other tables |
783 | 945 |
|
784 | 946 | # Load Unstructured Data |
| 947 | + |
785 | 948 | ## Unstructure data example |
786 | 949 | in the example below we have dictionary, nested dictionary (job), array of dictionaries, array of values |
787 | 950 | ```json |
@@ -816,6 +979,7 @@ in the example below we have dictionary, nested dictionary (job), array of dicti |
816 | 979 | ] |
817 | 980 | }, |
818 | 981 | ``` |
| 982 | + |
819 | 983 | recomended process to deal with unstructured data: |
820 | 984 | - create stage |
821 | 985 | - load raw data (as variant) |
@@ -1664,6 +1828,7 @@ SELECT * FROM OUR_FIRST_DB.public.test |
1664 | 1828 |
|
1665 | 1829 | SELECT * FROM OUR_FIRST_DB.public.test before (statement => '019b9ee5-0500-8473-0043-4d8300073062') |
1666 | 1830 | ``` |
| 1831 | + |
1667 | 1832 | ## Restoring the data |
1668 | 1833 | - setup every data as previous |
1669 | 1834 | - do two mistakes, one at each times to have 2 query id |
|
0 commit comments