Snowflake

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 00:40, 7 марта 2019.
Snowflake
Snowflake Computing logo.png
Разработчики: Snowflake Computing Inc.
Выпущена: June 2015; 4 years ago (2015-06)
Состояние разработки: активное
Операционная система:

Linux

OS X

Windows
Локализация: Английский язык
Тип ПО: Хранилище данных
Веб-сайт snowflake.com

Snowflake - это хранилище аналитических данных, предоставляемое как программное обеспечение как услуга (SaaS). Snowflake предоставляет хранилище данных, которое является более быстрым, простым в использовании и гораздо более гибким, чем традиционные предложения хранилищ данных.

Хранилище данных Snowflake не основано на существующей базе данных или программной платформе «больших данных», такой как Hadoop. В Snowflake используется новый механизм базы данных SQL с уникальной архитектурой, предназначенной для облака. Для пользователя Snowflake имеет много общего с другими хранилищами корпоративных данных, но также имеет дополнительные функциональные возможности и уникальные возможности.[Источник 1]

Хранилище данных как облачная служба

Хранилище данных Snowflake - это настоящее SaaS-предложение. Более конкретно:

  • Не существует аппаратного (виртуального или физического) для выбора, установки, настройки или управления.
  • Отсутствует программное обеспечение для установки, настройки или управления.
  • Текущее обслуживание, управление и настройка осуществляются компанией Snowflake.

Snowflake работает полностью на облачной инфраструктуре. Все компоненты службы Snowflake (кроме дополнительного клиента командной строки) работают в общедоступной облачной инфраструктуре.

Snowflake использует виртуальные вычислительные экземпляры для своих вычислительных потребностей и сервис хранения для постоянного хранения данных. Snowflake не может быть запущена в частных облачных инфраструктурах (локальных или размещенных).

Snowflake не является пакетное программное обеспечение, которое может быть установлено пользователем. Snowflake управляет всеми аспектами установки и обновления программного обеспечения. [Источник 2]

Архитектура Snowflake

Архитектура Snowflake представляет собой гибрид традиционной архитектуры баз данных с общим диском и архитектуры базы данных без совместного использования. Как и в случае архитектуры с общими дисками, Snowflake использует центральное хранилище данных для постоянных данных, которое доступно со всех вычислительных узлов в хранилище данных. Но, подобно архитектуре без совместного использования, Snowflake обрабатывает запросы, используя вычислительные кластеры MPP (массивно-параллельная обработка), где каждый узел в кластере хранит часть всего набора данных локально. Этот подход обеспечивает простоту управления данными в архитектуре с общим диском, но с преимуществами производительности и масштабирования от архитектуры без общего ресурса.

Уникальная архитектура Snowflake состоит из трех ключевых уровней (см. Рис. 1):

  • Хранение базы данных
  • Обработка запросов
  • Облачные сервисы
Рисунок 1 - Архитектура Snowflake

Хранение базы данных

Когда данные загружаются в Snowflake, Snowflake реорганизует эти данные в свой внутренний оптимизированный сжатый столбчатый формат. Snowflake хранит эти оптимизированные данные в облачном хранилище.

Snowflake управляет всеми аспектами хранения этих данных - организация, размер файла, структура, сжатие, метаданные, статистика и другие аспекты хранения данных обрабатываются Snowflake. Объекты данных, хранящиеся в Snowflake, непосредственно не видны и не доступны для клиентов; они доступны только через операции SQL-запроса, выполняемые с использованием Snowflake.

Обработка запросов

Выполнение запроса выполняется на уровне обработки. Snowflake обрабатывает запросы, используя «виртуальные хранилища данных»[Источник 3]. Каждое виртуальное хранилище представляет собой вычислительный кластер MPP, состоящий из нескольких вычислительных узлов, выделенных Snowflake от облачного провайдера.

Каждый виртуальное хранилище является независимым вычислительным кластером, который не разделяет вычислительные ресурсы с другими виртуальными хранилищами. В результате каждый виртуальное хранилище не влияет на производительность других виртуальных хранилищ.

Облачные сервисы

Уровень облачных сервисов - это набор сервисов, которые координируют действия в Snowflake. Эти сервисы связывают воедино все различные компоненты Snowflake для обработки пользовательских запросов от входа в систему до отправки запроса. Уровень облачных сервисов также работает на вычислительных экземплярах, предоставляемых Snowflake от поставщика облачных услуг.

На этом уровне имеются следующие возможности:

  • Аутентификация
  • Управление инфраструктурой
  • Управление метаданными
  • Разбор и оптимизация запросов
  • Контроль доступа

[Источник 4]

Подключение к Snowflake

Snowflake поддерживает несколько способов подключения:

  • Веб-интерфейс пользователя, из которого можно получить доступ ко всем аспектам управления и использования Snowflake.
  • Клиенты командной строки (например, SnowSQL), которые также могут получить доступ ко всем аспектам управления и использования Snowflake.
  • Драйверы ODBC и JDBC, которые могут использоваться другими приложениями для подключения к Snowflake.
  • Нативные клиенты (например, написанные на Python), которые можно использовать для разработки приложений для подключения к Snowflake.
  • Сторонние клиенты, которые можно использовать для подключения приложений, таких как инструменты ETL[Источник 5] и инструменты BI[Источник 6], к Snowflake.

Облачные платформы

Snowflake предоставляется в виде программного обеспечения как услуги (SaaS), которое полностью работает в облачной инфраструктуре. Это означает, что все три уровня архитектуры Snowflake (хранилище, вычисления и службы) развернуты и управляются полностью на выбранной облачной платформе.

Учетная запись Snowflake может быть размещена на любой из следующих облачных платформ:

Каждая платформа предоставляет один или несколько регионов, в которых предоставляется учетная запись.

Если другие облачные службы вашей организации уже размещены на AWS или Microsoft Azure, вы можете разместить все свои учетные записи Snowflake на одной платформе. Однако вы также можете разместить свои учетные записи на другой платформе.

Загрузка данных

Snowflake поддерживает загрузку данных из файлов, расположенных в любом из следующих мест, независимо от облачной платформы для вашей учетной записи Snowflake:

  • Внутренние этапы
  • Amazon S3
  • BLOB-хранилища Microsoft Azure

Snowflake поддерживает как объемную загрузку данных, так и непрерывную загрузку данных (Snowpipe). Аналогично, Snowflake поддерживает выгрузку данных из таблиц в любое из указанных выше мест размещения. [Источник 7]

Установка

Программа установки SnowSQL доступна для загрузки из веб-интерфейса Snowflake.

Чтобы установить SnowSQL:

  1. Войдите в веб-интерфейс Snowflake и нажмите: Help -> Download... чтобы открыть диалоговое окно "Загрузки".
  2. Выберите "CLI Client (snowsql)" слева, затем щелкните значок загрузки справа для установщика, соответствующего вашей операционной системе клиентской платформы (см. Рис. 2)
Рисунок 2 - Запуск программы установки Snowflake

Дальнейшие действия зависят от используемой ОС.

Linux:

1. Введите следующую команду в терминал:

bash snowsql-linux_x86_64.bash

2. Следуйте инструкциям на экране.

3. По завершении установки ввести в терминал нижеследующую команду для запуска:

snowsql

MacOS:

1. Запустите файл PKG, дважды щелкнув по "snowsql-darwin_x86_64.pkg".

2. Следуйте инструкциям на экране.

3. Дважды щелкните значок приложения SnowSQL, чтобы запустить snowsql .

Windows:

1. Запустите программу установки, дважды щелкнув по "snowsql-windows_x86_64.msi".

2. Следуйте инструкциям на экране.

3. Откройте новое окно терминала для запуска snowsql. [Источник 8]

Примеры файлов для загрузки

Загрузите набор образцов файлов данных. Щелкните правой кнопкой мыши имя файла архива, getting-started.zip и сохраните ссылку/файл в вашей локальной файловой системе. Примеры файлов включают в себя фиктивные данные о сотрудниках в формате CSV с пятью записями в каждой. Разделитель поля - это запятая (,).

Пример записи:

Althea,Featherstone,afeatherstona@sf_tuts.com,"8172 Browning Street, Apt B",Calatrava,7/12/2017 [Источник 9]

Вход в SnowSQL

После установки Snowflake следуйте инструкциям ниже, чтобы войти в систему:

  1. Откройте окно терминала.
  2. Запустите SnowSQL из командной строки:
snowsql -a <account_name> -u <user_name>'

Где:

  • <account_name> - это имя, присвоенное вашей учетной записи Snowflake. В имени хоста, которое вы получили от Snowflake (после того, как ваш аккаунт был подготовлен), вашим аккаунтом является полная строка слева от ".snowflakecomputing.com" .
  • <user_name> - это имя пользователя для вашего пользователя Snowflake.

Обратите внимание, что в зависимости от облачной платформы (AWS или Microsoft Azure) и Snowflake Region, где размещена ваша учетная запись, для полного имени учетной записи могут потребоваться дополнительные сегменты, как показано на диаграмме, изображенной на рисунке 3.

Рисунок 3 - Диаграмма дополнительных сегментов, требуемых для полного имени учетной записи

Например, для учетной записи с именем "xy12345":

Местоположение пользователя Полное имя учетной записи
AWS US West xy12345
AWS US East xy12345.us-east-1
AWS EU (Frankfurt) xy12345.eu-central-1
AWS EU (Dublin) xy12345.eu-west-1
AWS AP (Sydney) xy12345.ap-southeast-2
Azure East US 2 xy12345.east-us-2.azure
Azure West Europe xy12345.west-europe.azure

3. По запросу SnowSQL введите пароль от вашей учетной записи Snowflake. [Источник 10]

Создание Снежинок (Snowflake Objects)

Перед загрузкой данных, необходимо создать базу данных и таблицу. В этом разделе описан процесс загрузки данных в таблицу, находящуюся в базе данных с именем "sf_tuts".

Кроме того, для загрузки и запроса данных требуется виртуальное хранилище, которое предоставляет необходимые вычислительные ресурсы для выполнения этих задач. Вы можете использовать свой собственное хранилище, если таковое имеется; в противном случае этот раздел включает команду SQL, которая создает хранилище "X-Small".

Создание базы данных

Создайте базу данных sf_tuts, используя команду CREATE DATABASE[Источник 11]

create or replace database sf_tuts;

Обратите внимание, что вам не нужно создавать схему в базе данных, потому что каждая база данных, созданная в Snowflake, содержит схему по умолчанию с именем public .

Также обратите внимание, что база данных и схема, которую вы только что создали, теперь используются для вашего текущего сеанса. Эта информация отображается в командной строке SnowSQL, но ее также можно просмотреть с помощью следующих контекстных функций:

select current_database(), current_schema();


+--------------------+------------------+
| CURRENT_DATABASE() | CURRENT_SCHEMA() |
|--------------------+------------------|
| SF_TUTS            | PUBLIC           |
+--------------------+------------------+

Создание таблицы

Создайте таблицу с именем emp_basic в sf_tuts.public с помощью команды CREATE TABLE[Источник 12]:

create or replace table emp_basic (first_name string,  last_name string, email string, string, string, start_date date);

Обратите внимание, что количество столбцов в таблице, их положения и типы данных соответствуют полям в файлах данных CSV-образцов, которые вы будете размещать на следующем шаге этого руководства.

Создание виртуального хранилища данных

Создайте хранилище X-Small с именем sf_tuts_wh используя команду CREATE WAREHOUSE[Источник 13] sf_tuts_wh :

 create or replace warehouse sf_tuts_wh with warehouse_size='X-SMALL' auto_suspend = 180 auto_resume = true initially_suspended=true;


Обратите внимание, что хранилище изначально не запускается, но настроено на автоматическое возобновление, поэтому оно будет автоматически запускаться при выполнении вашей первой команды SQL, которая требует вычислительных ресурсов.

Кроме того, обратите внимание, что хранилище теперь используется для вашего текущего сеанса. Эта информация отображается в командной строке SnowSQL, но ее также можно просмотреть с помощью следующей контекстной функции:

select current_warehouse ();


 + --------------------- +
 |  CURRENT_WAREHOUSE () |
 | --------------------- |
 |  SF_TUTS_WH |
 + --------------------- +

[Источник 14]

Подготовка файлы данных

Snowflake поддерживает загрузку данных из файлов, которые были подготовлены на внутренней (Snowflake) или внешней (AWS S3 или Microsoft Azure) стадии. Загрузка с внешнего этапа удобна, если вы уже храните файлы данных в этих облачных сервисах хранения.

В этом руководстве мы загрузим (подготовим) образцы файлов данных во внутреннюю таблицу. Команда, используемая для создания файлов - PUT[Источник 15].

Подготовка файлов

Выполните PUT для загрузки локальных файлов данных на этап таблицы, предоставленный для emp_basic вами таблицы emp_basic . Обратите внимание, что команда зависит от ОС, поскольку она ссылается на файлы в вашей локальной среде:

put file:///tmp/employees0*.csv @sf_tuts.public.%emp_basic;
put file://C:\temp\employees0*.csv @sf_tuts.public.%emp_basic;

Давайте внимательнее посмотрим на команду:

file: указывает полный путь к каталогу и имена файлов на вашем локальном компьютере для стадии. Обратите внимание, что подстановочные знаки файловой системы разрешены. @<namespace>.%<table_name> указывает на использование этапа для указанной таблицы, в данном случае таблицы emp_basic. Команда возвращает следующий ответ, показывая файлы, которые были подготовлены:

+-----------------+--------------------+-------------+-------------+--------------------+--------------------+----------+---------+
| source          | target             | source_size | target_size | source_compression | target_compression | status   | message |
|-----------------+--------------------+-------------+-------------+--------------------+--------------------+----------+---------|
| employees01.csv | employees01.csv.gz |         360 |         287 | NONE               | GZIP               | UPLOADED |         |
| employees02.csv | employees02.csv.gz |         355 |         274 | NONE               | GZIP               | UPLOADED |         |
| employees03.csv | employees03.csv.gz |         397 |         295 | NONE               | GZIP               | UPLOADED |         |
| employees04.csv | employees04.csv.gz |         366 |         288 | NONE               | GZIP               | UPLOADED |         |
| employees05.csv | employees05.csv.gz |         394 |         299 | NONE               | GZIP               | UPLOADED |         |
+-----------------+--------------------+-------------+-------------+--------------------+--------------------+----------+---------+

Обратите внимание, что команда PUT сжимает файлы по умолчанию с помощью gzip , как указано в столбце TARGET_COMPRESSION.

Листинг промежуточных файлов

Вы можете увидеть список файлов, которые вы успешно создали, выполнив команду LIST[Источник 16]:

list @sf_tuts.public.%emp_basic;

+--------------------+------+----------------------------------+------------------------------+
| name               | size | md5                              | last_modified                |
|--------------------+------+----------------------------------+------------------------------|
| employees01.csv.gz |  288 | a851f2cc56138b0cd16cb603a97e74b1 | Tue, 9 Jan 2018 15:31:44 GMT |
| employees02.csv.gz |  288 | 125f5645ea500b0fde0cdd5f54029db9 | Tue, 9 Jan 2018 15:31:44 GMT |
| employees03.csv.gz |  304 | eafee33d3e62f079a054260503ddb921 | Tue, 9 Jan 2018 15:31:45 GMT |
| employees04.csv.gz |  304 | 9984ab077684fbcec93ae37479fa2f4d | Tue, 9 Jan 2018 15:31:44 GMT |
| employees05.csv.gz |  304 | 8ad4dc63a095332e158786cb6e8532d0 | Tue, 9 Jan 2018 15:31:44 GMT |
+--------------------+------+----------------------------------+------------------------------+

[Источник 17]

Копирование данных в целевую таблицу

Выполните COPY INTO ⟨table⟩[Источник 18], чтобы загрузить ваши промежуточные данные в целевую таблицу.

Обратите внимание, что для этой команды требуется активный работающий хранилище, который вы создали в качестве предварительного условия для этого руководства. Если у вас нет доступа к хранилищу, вам нужно создать его сейчас.

copy into emp_basic from @%emp_basic file_format = (type = csv field_optionally_enclosed_by='"') pattern = '.*employees0[1-5].csv.gz' on_error = 'skip_file';

Давайте внимательнее посмотрим на эту команду:

Предложение FROM определяет внутреннее расположение сцены.

  • FILE_FORMAT задает тип файла как CSV и указывает символ двойной кавычки ( " ) в качестве символа, используемого для включения строк. Snowflake поддерживает различные типы файлов и параметры. Они описаны в CREATE FILE FORMAT[Источник 19]. В примере оператора COPY принимаются все другие значения по умолчанию параметры формата файла.
  • PATTERN применяет сопоставление с образцом для загрузки данных из всех файлов, которые соответствуют регулярному выражению .*employees0[1-5].csv.gz.
  • ON_ERROR указывает, что делать, если команда COPY обнаруживает ошибки в файлах. По умолчанию команда прекращает загрузку данных при первой ошибке; тем не менее, мы дали указание пропустить любой файл, содержащий ошибку, и перейти к загрузке следующего файла. Обратите внимание, что это только для иллюстрации; ни один из файлов в этом руководстве не содержит ошибок.

Команда COPY также предоставляет возможность проверки файлов перед их загрузкой. Snowflake возвращает следующие результаты:

+--------------------+--------+-------------+-------------+-------------+-------------+-------------+------------------+-----------------------+-------------------------+
| file               | status | rows_parsed | rows_loaded | error_limit | errors_seen | first_error | first_error_line | first_error_character | first_error_column_name |
|--------------------+--------+-------------+-------------+-------------+-------------+-------------+------------------+-----------------------+-------------------------|
| employees02.csv.gz | LOADED |           5 |           5 |           1 |           0 | NULL        |             NULL |                  NULL | NULL                    |
| employees04.csv.gz | LOADED |           5 |           5 |           1 |           0 | NULL        |             NULL |                  NULL | NULL                    |
| employees05.csv.gz | LOADED |           5 |           5 |           1 |           0 | NULL        |             NULL |                  NULL | NULL                    |
| employees03.csv.gz | LOADED |           5 |           5 |           1 |           0 | NULL        |             NULL |                  NULL | NULL                    |
| employees01.csv.gz | LOADED |           5 |           5 |           1 |           0 | NULL        |             NULL |                  NULL | NULL                    |
+--------------------+--------+-------------+-------------+-------------+-------------+-------------+------------------+-----------------------+-------------------------+

[Источник 20]

Запрос загруженных данных

Вы можете запросить данные, загруженные в таблицу emp_basic используя стандартный SQL и любые поддерживаемые операторы и функции .

Вы также можете манипулировать данными, такими как обновление загруженных данных или вставка дополнительных данных, используя стандартные команды DML.

Запрос всех данных

Вернуть все строки и столбцы из таблицы:

select * from emp_basic ;
#Показаны частичные результаты 
+------------+--------------+---------------------------+-----------------------------+--------------------+------------+
| FIRST_NAME | LAST_NAME    | EMAIL                     | STREETADDRESS               | CITY               | START_DATE |
|------------+--------------+---------------------------+-----------------------------+--------------------+------------|
| Arlene     | Davidovits   | adavidovitsk@sf_tuts.com  | 7571 New Castle Circle      | Meniko             | 2017-05-03 |
| Violette   | Shermore     | vshermorel@sf_tuts.com    | 899 Merchant Center         | Troitsk            | 2017-01-19 |
| Ron        | Mattys       | rmattysm@sf_tuts.com      | 423 Lien Pass               | Bayaguana          | 2017-11-15 |
...
...
...
| Carson     | Bedder       | cbedderh@sf_tuts.co.au    | 71 Clyde Gallagher Place    | Leninskoye         | 2017-03-29 |
| Dana       | Avory        | davoryi@sf_tuts.com       | 2 Holy Cross Pass           | Wenlin             | 2017-05-11 |
| Ronny      | Talmadge     | rtalmadgej@sf_tuts.co.uk  | 588 Chinook Street          | Yawata             | 2017-06-02 |
+------------+--------------+---------------------------+-----------------------------+--------------------+------------+

Вставить дополнительные строки данных

Помимо загрузки данных из промежуточных файлов в таблицу, вы можете вставлять строки непосредственно в таблицу с помощью команды INSERT[Источник 21] DML.

Например, чтобы вставить две дополнительные строки в таблицу:

insert into emp_basic values ('Clementine','Adamou','cadamou@sf_tuts.com','10510 Sachs Road','Klenak','2017-9-22'), ('Marlowe','De Anesy','madamouc@sf_tuts.co.uk','36768 Northfield Plaza','Fangshan','2017-1-26');

Запрос строки на основе адреса электронной почты

Верните список адресов электронной почты с именами доменов в Великобритании, используя функцию LIKE[Источник 22]:

select email from emp_basic where email like '%.uk';

+--------------------------+
| EMAIL                    |
|--------------------------|
| gbassfordo@sf_tuts.co.uk |
| rtalmadgej@sf_tuts.co.uk |
| madamouc@sf_tuts.co.uk   |
+--------------------------+

Запрос строк на основе даты начала

Добавьте 90 дней к датам начала работы сотрудника с помощью функции DATEADD[Источник 23], чтобы рассчитать, когда могут начаться определенные выплаты сотрудникам. Отфильтруйте список по сотрудникам, чья дата начала работы произошла ранее 1 января 2017 года:

select first_name, last_name, dateadd('day',90,start_date) from emp_basic where start_date <= '2017-01-01';

+------------+-----------+------------------------------+
| FIRST_NAME | LAST_NAME | DATEADD('DAY',90,START_DATE) |
|------------+-----------+------------------------------|
| Granger    | Bassford  | 2017-03-30                   |
| Catherin   | Devereu   | 2017-03-17                   |
| Cesar      | Hovie     | 2017-03-21                   |
| Wallis     | Sizey     | 2017-03-30                   |
+------------+-----------+------------------------------+


[Источник 24]

Источники

  1. Snowflake's Architecture // Snowflake Documentation: Key Concepts & Architecture. [2019-2019] Дата обновления: 20.12.2018. URL:https://docs.snowflake.net/manuals/user-guide/intro-key-concepts.html (дата обращения: 05.02.2019)
  2. Data Warehouse as a Cloud Service // Snowflake Documentation. [2019-2019]. Дата обновления: 20.11.2018. URL: https://docs.snowflake.net/manuals/user-guide/intro-key-concepts.html#data-warehouse-as-a-cloud-service (дата обращения: 05.02.2019)
  3. Using Snowflake. Virtual Warehouses // Snowflake Documentation. [2019-2019]. Дата обновления: 20.12.2018. URL:https://docs.snowflake.net/manuals/user-guide/warehouses.html (дата обращения: 05.02.2019)
  4. Snowflake Architecture // Snowflake Documentation. [2019-2019]. Дата обновления: 20.12.2018. URL: https://docs.snowflake.net/manuals/user-guide/intro-key-concepts.html#snowflake-architecture (дата обращения: 05.02.2019)
  5. Основные функции ETL-систем // Habr.com. [2019-2019]. Дата обновления: 20.12.2018. URL: https://habr.com/ru/post/281703/ (дата обращения: 05.02.2019)
  6. Этого не будет в BI (Купив BI tool, вы этого не получите) // Habr.com. [2019-2019]. Дата обновления: 20.12.2018. URL: https://habr.com/ru/post/248231/ (дата обращения: 05.02.2019)
  7. Cloud Platforms // Snowflake Documentation. [2019-2019]. Дата обновления: 20.10.2018. URL:https://docs.snowflake.net/manuals/user-guide/intro-cloud-platforms.html#cloud-platforms (дата обращения: 05.02.2019)
  8. SnowSQL Installation Prerequisites // Snowflake Documentation. [2019-2019]. Дата обновления: 20.12.2018. URL:https://docs.snowflake.net/manuals/user-guide/getting-started-tutorial-prerequisites.html#snowsql-installation (дата обращения: 05.02.2019)
  9. Prerequisites. Sample Data Files for Loading // Snowflake Documentation. [2019-2019]. Дата обновления: 20.12.2018. URL:https://docs.snowflake.net/manuals/user-guide/getting-started-tutorial-prerequisites.html#sample-data-files-for-loading (дата обращения: 05.02.2019)
  10. Step 1. Log into SnowSQL // Snowflake Documentation. [2019-2019]. Дата обновления: 20.12.2018. URL:https://docs.snowflake.net/manuals/user-guide/getting-started-tutorial-log-in.html#step-1-log-into-snowsql (дата обращения: 05.02.2019)
  11. SQL Command Reference: Create Database // Snowflake Documentation. [2019-2019]. Дата обновления: 20.12.2018. URL:https://docs.snowflake.net/manuals/sql-reference/sql/create-database.html (дата обращения: 05.02.2019)
  12. SQL Command Reference Create Table // Snowflake Documentation. [2019-2019]. Дата обновления: 20.12.2018. URL:https://docs.snowflake.net/manuals/sql-reference/sql/create-table.html (дата обращения: 05.02.2019)
  13. SQL Command Reference: Create Warehouse // Snowflake Documentation. [2019-2019]. Дата обновления: 20.09.2018. URL:https://docs.snowflake.net/manuals/sql-reference/sql/create-warehouse.html (дата обращения: 05.02.2019)
  14. Step 2. Create Snowflake Objects // Snowflake Documentation. [2019-2019]. Дата обновления: 20.12.2018. URL:https://docs.snowflake.net/manuals/user-guide/getting-started-tutorial-create-objects.html#step-2-create-snowflake-objects (дата обращения: 05.02.2019)
  15. SQL Command Reference: Put // Snowflake Documentation. [2019-2019]. Дата обновления: 20.12.2018. URL:https://docs.snowflake.net/manuals/sql-reference/sql/put.html (дата обращения: 05.02.2019)
  16. SQL Command Reference: List // Snowflake Documentation. [2019-2019]. Дата обновления: 20.12.2018. URL:https://docs.snowflake.net/manuals/sql-reference/sql/list.html (дата обращения: 05.02.2019)
  17. Step 3. Stage the Data Files // Snowflake Documentation. [2019-2019]. Дата обновления: 20.12.2018. URL:https://docs.snowflake.net/manuals/user-guide/getting-started-tutorial-stage-data-files.html (дата обращения: 05.02.2019)
  18. SQL Command Reference: Copy into ⟨table⟩ // Snowflake Documentation. [2019-2019] Дата обновления: 20.08.2018. URL:https://docs.snowflake.net/manuals/sql-reference/sql/copy-into-table.html (дата обращения: 05.02.2019)
  19. SQL Command Reference: Сreate file format // Snowflake Documentation. [2019-2019]. Дата обновления: 20.12.2018. URL:https://docs.snowflake.net/manuals/sql-reference/sql/create-file-format.html (дата обращения: 05.02.2019)
  20. Step 4. Copy Data into the Target Table // Snowflake Documentation. [2019-2019] Дата обновления: 20.12.2018. URL:https://docs.snowflake.net/manuals/user-guide/getting-started-tutorial-copy-into.html#step-4-copy-data-into-the-target-table (дата обращения: 05.02.2019)
  21. SQL Command Reference: Insert // Snowflake Documentation. [2019-2019]. Дата обновления: 20.12.2018. URL:https://docs.snowflake.net/manuals/sql-reference/sql/insert.html (дата обращения: 05.02.2019)
  22. SQL Command Reference: Like // Snowflake Documentation. [2019-2019]. Дата обновления: 20.12.2018. URL:https://docs.snowflake.net/manuals/sql-reference/functions/like.html (дата обращения: 05.02.2019)
  23. SQL Command Reference: Dateadd // Snowflake Documentation. [2019-2019]. Дата обновления: 20.12.2018. URL:https://docs.snowflake.net/manuals/sql-reference/functions/dateadd.html (дата обращения: 05.02.2019)
  24. Step 5. Query the Loaded Data // Snowflake Documentation. [2019-2019]. Дата обновления: 20.12.2018. URL:https://docs.snowflake.net/manuals/user-guide/getting-started-tutorial-query.html (дата обращения: 05.02.2019)