====== SQL-запросы и анализ ======
**Лаборатория SQL** — это рабочая область, в которой пользователи могут управлять всеми аспектами использования SQL в своей среде.\\
Ключевые особенности включают в себя:
* Написание собственных SQL-запросов к любой базе данных, которую вы подключили;
* Просмотр метаданных базы данных: таблицы, столбцы, индексы и разделы;
* Наличие среды с множеством вкладок для одновременной работы с несколькими запросами;
* Поддержка длительных запросов;
* История выполненных ранее запросов;
* Поддерживает шаблоны с использованием языка шаблонов Jinja, который позволяет использовать макросы в вашем коде SQL.
* Компонент построения и настройки SQL — **редактор SQL**.
===== Редактор SQL =====
На панели инструментов выберите **Лаборатория SQL** и в раскрывающемся меню выберите **Редактор SQL.**\\
{{:superset:work_in_superset:sql_editor_1.png?nolink&400|}}
Для написания собственного запроса сначала на левой панели выберите базу данных и схемы, с которой собираетесь работать.\\
В появившемся окне пишите свой SQL-запрос и нажмите кнопку **Выполнить**. \\
Несмотря на выбор используемой схемы, при написании запроса необходимо прописывать имя схемы перед названиями таблиц, представлений и других объектов базы данных.
Несколько вкладок для каждого запроса позволяют легко переключаться между разными запросами в одном интерфейсе.\\
Даже если в редакторе SQL есть несколько запросов, будет показан только один результат запроса (последний).
{{:superset:work_in_superset:sql_editor_2.png?nolink&300|}}
{{:superset:work_in_superset:sql_editor_3.png?nolink&440|}}
\\
Рядом с кнопкой **Выполнить** возможно выбрать количество строк, которые будут выводиться в результате (LIMIT). Там же отображается время, потраченное на выполнение запроса. \\
Правее кнопки для сохранения запроса (**Сохранить как**) и кнопка для копирования ссылки на данный запрос (**Скопировать ссылку**). \\
При нажатии на **три точки** открывается выпадающее меню, которое позволяет управлять переключателем автозаполнения (Autocomplete), а Параметры (Parameters) позволяют использовать синтаксис шаблонов Jinja для назначения набора параметров в формате JSON.\\
{{ :superset:work_in_superset:sql_editor_4.png?nolink |}}\\ \\
Ниже во вкладке **Результаты** отображается результат выполненного запроса, который можно:
* использовать при построении графика (**Create chart**) – позволяет сохранить запрос в виде виртуального набора данных (или перезаписать уже существующий), а затем продолжить изучение графика;
{{:superset:work_in_superset:sql_editor_5.png?nolink&400|}}
* загрузить в csv-файл (**Download to CSV**);
* копировать в буфер обмена (**Copy to clipboard**);
* отфильтровать по искомому слову, написав его в панель поиска.
О разделе **Лаборатория SQL -> История запросов** см. ниже **История Запросов**.\\ \\
Вкладка **История запросов**, как следует из названия, показывает историю всех ранее выполненных ваших запросов в текущей вкладке и предоставляет основную информацию:
* **State** (состояние) – успешно/неуспешно выполнился запрос;
* **Started** – время начала выполнения запроса;
* **Duration** – продолжительность выполнения запроса;
* **Progress** – прогресс выполнения запроса (в процентах);
* **Rows** – количество строк, которое получено в результате выполнения запроса;
* **SQL** – текст запроса;
* **Results**;
* **Actions** (действия):
* Редактировать (значок **карандаша**) – перезаписать текст в редакторе с запросом к этой таблице;
* Новая вкладка (значок **плюса**) – выполнить запрос в новой вкладке;
* Удалить (значок **корзины**) – удалить запрос из истории запросов.
{{:superset:work_in_superset:sql_editor_7.png?nolink&650|}}
===== Сохраненные запросы (Saved queries) =====
SQL-запросы, сохраненные в редакторе SQL, появятся в разделе **Сохраненные запросы**. Сохраненные запросы видны только владельцу запроса и могут быть переданы через URL-адрес для совместной работы с другими товарищами по команде.\\
У вас есть доступ к различным функциям, позволяющим управлять сохраненными запросами и работать с ними, например:
* Просмотр, изменение и удаление сохраненных запросов;
* Поделитесь сохраненным запросом с другими товарищами по команде;
* Массовое удаление и экспорт сохраненных запросов;
Для того, чтобы открыть сохраненные запросы необходимо на верхней панели выбрать раздел **Лаборатория SQL** и из выпадающего списка выберите **Сохраненные запросы**.
{{:superset:work_in_superset:sql_saved_1.png?nolink|}}
Интерфейс представлен следующим образом:\\
^ Заголовок столбца ^ Описание ^
| Имя | Название сохраненного запроса |
| База данных | База данных, связанная с сохраненным запросом |
| Схема | Схема, связанная с сохраненным запросом (если поддерживается базой данных) |
| Таблицы | Датасет, связанный с сохраненным запросом |
| Когда сохранен | Как давно был сохранен запрос |
| Когда изменено | Как давно был изменен |
| Действия \\ {{:superset:work_in_superset:sql_saved_3.png?150&nolink}} | Столбец действия содержит кнопки: предварительного просмотра запроса, редактирования (запрос откроется в **Редакторе SQL**), копирования URL запроса, экспорта запроса, удаления. |
\\
{{ :superset:work_in_superset:sql_saved_2.png?nolink |}}
Для поиска нужного запроса можно воспользоваться фильтром по используемой базе данных, схеме или воспользоваться окном поиска.\\ \\
Кнопка **Множественный выбор** позволяет выбрать несколько сохраненных запросов для удаления или экспорта.\\ \\
Для создания запроса нажмите кнопку **+Запрос**, вы перейдете в **Редактор SQL**.\\
Чтобы добавить свой запрос, нажмите на значок {{:superset:work_in_superset:sql_saved_5.png?nolink&20|}} рядом с кнопкой **+Запрос**, далее вам нужно будет прикрепить файл со своим запросом.
{{:superset:work_in_superset:sql_saved_4.png?nolink&700|}}
===== История SQL-запросов =====
Все запросы, выполненные в **Редакторе SQL**, появятся на экране истории запросов.\\
Оттуда у вас есть доступ к различным функциям, которые позволяют вам управлять и работать с историческими запросами, такими как:
* Фильтрация и поисковые запросы;
* Просматривать краткий обзор сведений о запросе;
* Запускать любой запрос из истории в редакторе SQL.
На панели инструментов выберите **Лаборатория SQL** и в раскрывающемся меню выберите **История запросов**.
{{:superset:work_in_superset:sql_history_1.png?nolink|}}
Интерфейс выглядит следующим образом:\\
^ Заголовок столбца ^ Описание ^
| Время | Дата и время выполнения SQL-запроса |
| Имя таблицы | Название запроса |
| База данных | Используемая база данных |
| Схема | Используемая схема |
| Таблицы | Таблицы, используемые в запросе |
| Пользователь | Пользователь, создавший и запустивший выполнение запроса |
| Игнорировать | Количество строк, полученных в результате выполнения запроса |
| SQL | Начальные строки запроса |
| Действия | Открыть запрос в SQL-редакторе |
{{:superset:work_in_superset:sql_history_2.png?nolink|}}
Существует ряд фильтров, а также функция поиска, по ключевым словам, доступные на горизонтальной панели.
К ним относятся:
* **База данных** – используемая в запросе база данных;
* **Состояние** – фильтрация по всем запросам, успешным или неудачным;
* **Пользователь** – пользователь, создавший запрос;
* **Период времени** – укажите временной диапазон, и запросы, выполненные в этом диапазоне, будут отображаться;
* **Поиск** по тексту запроса.
Чтобы просмотреть базовый код SQL для запроса, выберите текстовое поле под заголовком столбца **SQL**. Откроется окно **предварительного просмотра запроса**.\\
На этой панели отображается базовый код SQL для запроса. По умолчанию отображается запрос, заданный пользователем (вкладка **Скопировать запрос**).\\
Чтобы просмотреть выполненный запрос, выберите вкладку **Выполнить выбранный запрос**.\\
Чтобы скопировать код SQL в буфер обмена вашей системы, __наведите курсор на код__ и выберите значок копирования.\\
Для прокрутки результатов поиска по запросу выберите **Предыдущий (Предпросмотр)** или **Следующий** по мере необходимости.\\
Чтобы просмотреть отображаемый в данный момент запрос SQL в **Редакторе SQL**, выберите **Открыть в лаборатории SQL**.
{{:superset:work_in_superset:sql_history_4.png?nolink&400|}}