====== 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|}}