Автоматизация выполнения запросов в SQL с помощью Python — Разработка на vc.ru
Основная идея работы скрипта – генерация запросов с учетом различных параметров и последовательное их выполнение для вставки данных в существующую таблицу или выгрузка данных в файл. Сама программа состоит из 3 частей:
3305 просмотров
- Соединение c базой данных.
- Определение варьируемых параметров.
- Выполнение запросов к базе (структура построения запросов позволяет выполнять запросы последовательно или параллельно, что позволяет управлять скоростью загрузки/выгрузки данных с сервера).
Соединение с БД определяется фабрикой, в которой содержатся параметры соединения с определенным сервером и определены ссылки на классы для работы с БД.
db = DatabaseFactory().build(‘*наименование сервера*’)
Сами объекты для работы с БД содержат 3 метода:
- collect– запускает запрос с помощью метода read_sql библиотеки pandas и возвращает
- execute– запускает запросы типа CREATE, UPDATE, DELETE\TRUNCATE\DROP;
- execute_many – используется в основном для загрузки данных внутрь БД. Сама загрузка производится с помощью BULK вставки.
db.collect(‘select top 100 * from table’) db.execute(‘insert into table select * from another_table’) db. execute_many (‘insert into from table (id, name, age) values (?,?,?)’, [1,’Jhon’, 25])
Далее пользователь может задать параметры запроса с помощью метода add_var класса SqlContext. Данный метод принимает 4 параметра: наименование колонки, значения данной переменной, условие (=, <=, >=, between и т.п.) и разделитель (под разделителем понимаются команды AND и OR).
context = SqlContext() context.add_var(‘col_name’, [1,2,3,4,5], separator=’AND’, condition=’=’) context.add_var(‘col_name_1’, [[‘a’,’b’,’v’], [‘a1’,’b2’,’v3’],] , separator=’AND’, condition=’in’)
В случае определения нескольких параметров одновременно, в запросе они будут варьироваться по следующему правилу: сначала варьируются те параметры, которые были заданы в последнюю очередь. Если все вариации последнего параметра будут пройдены, то берутся следующее значения параметра выше и вновь перебираются все вариации последнего параметра. Так продолжается до тех пор, пока не переберутся все возможные комбинации заданных параметров.
После того, как мы определили варьируемые параметры необходимо задать сам sql запрос. Для этого создаем объект SqlBuilder и вызываем метод custom_sql внутрь которого помещаем сам запрос:
builder = SqlBuilder() builder.custom_sql(»’ INSERT INTO insertable_table SELECT * FROM table WHERE 1=1 AND col1 in (1, 2,10,98,34) AND col2 = 9 AND col3 between ‘20200101’ and ‘20200201’ »’)
или можно воспользоваться встроенными в объект методами для генерации sql (select, insert_into, create_table и т.д.):
builder = SqlBuilder() builder.select([‘col1’, ‘col2’, ‘col3’]).from(‘table’)
Для запуска скрипта необходимо создать объект класса SqlGenerator, объекты SqlBuilder и SqlContext и с помощью цикла запустить обработку запроса (в качестве примера был взят вариант последовательного исполнения запроса):
generator = SqlGenerator(builder, context) for sql in tqdm(generator. generate()): t = time.time() db.execute(sql) print(‘Итоговое время работы запроса: ‘ + str(time.time()-t))
В итоге данный скрипт позволяет значительно сократить трудозатраты и время на выполнение рутинных запросов, чем я неоднократно пользовался в своей работе.
Весь исходный код опубликован на github.
Нормализация данных через запрос в SQL
Главный принцип анализа данных GIGO (от англ. garbage in — garbage out, дословный перевод «мусор на входе — мусор на выходе») говорит нам о том, что ошибки во входных данных всегда приводят к неверным результатам анализа. От того, насколько хорошо подготовлены данные, зависят результаты всей вашей работы.
Например, перед нами стоит задача подготовить выборку для использования в алгоритме машинного обучения (модели k-NN, k-means, логической регрессии и др). Признаки в исходном наборе данных могут быть в разном масштабе, как, например, возраст и рост человека. Это может привести к некорректной работе алгоритма. Такого рода данные нужно предварительно масштабировать.
В данном материале мы рассмотрим способы масштабирования данных через запрос в SQL: масштабирование методом min-max, min-max для произвольного диапазона и z-score нормализация. Для каждого из методов мы подготовили по два примера написания запроса — один с помощью подзапроса SELECT, а второй используя оконную функцию OVER().
Для работы возьмем таблицу students с данными о росте учащихся.
name | height |
Иван | 174 |
Петр | 181 |
Денис | 199 |
Ксения | 158 |
Сергей | 179 |
Ольга | 165 |
Юлия | 152 |
Кирилл | 188 |
Антон | 177 |
Софья | 165 |
Min-Max масштабирование
Подход min-max масштабирования заключается в том, что данные масштабируются до фиксированного диапазона, который обычно составляет от 0 до 1.
В данном случае мы получим все данные в одном масштабе, что исключит влияние выбросов на выводы.Выполним масштабирование по формуле:
Умножаем числитель на 1.0, чтобы в результате получилось число с плавающей точкой.
SQL-запрос с подзапросом:
SELECT height, 1.0 * (height-t1.min_height)/(t1.max_height - t1.min_height) AS scaled_minmax FROM students, (SELECT min(height) as min_height, max(height) as max_height FROM students ) as t1;
SQL-запрос с оконной функцией:
SELECT height, (height - MIN(height) OVER ()) * 1.0 / (MAX(height) OVER () - MIN(height) OVER ()) AS scaled_minmax FROM students;
В результате мы получим переменные в диапазоне [0…1], где за 0 принят рост самого невысокого учащегося, а 1 рост самого высокого.
name | height | scaled_minmax |
Иван | 174 | 0. 46809 |
Петр | 181 | 0.61702 |
Денис | 199 | 1 |
Ксения | 158 | 0.12766 |
Сергей | 179 | 0.57447 |
Ольга | 165 | 0.2766 |
Юлия | 152 | 0 |
Кирилл | 188 | 0.76596 |
Антон | 177 | 0.53191 |
Софья | 165 | 0.2766 |
Масштабирование для заданного диапазона
Вариант min-max нормализации для произвольных значений. Не всегда, когда речь идет о масштабировании данных, диапазон значений находится в промежутке между 0 и 1.
Формула для вычисления в этом случае такая:
Это даст нам возможность масштабировать данные к произвольной шкале. В нашем примере пусть а=10.0, а b=20.0.
SQL-запрос с подзапросом:
SELECT height, ((height - min_height) * (20.0 - 10.0) / (max_height - min_height)) + 10 AS scaled_ab FROM students, (SELECT MAX(height) as max_height, MIN(height) as min_height FROM students ) t1;
SQL-запрос с оконной функцией:
SELECT height, ((height - MIN(height) OVER() ) * (20. 0 - 10.0) / (MAX(height) OVER() - MIN(height) OVER())) + 10.0 AS scaled_ab FROM students;
Получаем аналогичные результаты, что и в предыдущем методе, но данные распределены в диапазоне от 10 до 20.
name | height | scaled_ab |
Иван | 174 | 14.68085 |
Петр | 181 | 16.17021 |
Денис | 20 | |
Ксения | 158 | 11.2766 |
Сергей | 179 | 15.74468 |
Ольга | 165 | 12.76596 |
Юлия | 152 | 10 |
Кирилл | 188 | 17.65957 |
Антон | 177 | 15.31915 |
Софья | 165 | 12.76596 |
Нормализация с помощью z-score
В результате z-score нормализации данные будут масштабированы таким образом, чтобы они имели свойства стандартного нормального распределения — среднее (μ) равно 0, а стандартное отклонение (σ) равно 1.
Вычисляется z-score по формуле:
SQL-запрос с подзапросом:
SELECT height, (height - t1.mean) * 1.0 / t1.sigma AS zscore FROM students, (SELECT AVG(height) AS mean, STDDEV(height) AS sigma FROM students ) t1;
SQL-запрос с оконной функцией:
SELECT height, (height - AVG(height) OVER()) * 1.0 / STDDEV(height) OVER() AS z-score FROM students;
В результате мы сразу заметим выбросы, которые выходят за пределы стандартного отклонения.
name | height | zscore |
Иван | 174 | 0.01488 |
Петр | 181 | 0.53582 |
Денис | 199 | 1.87538 |
Ксения | 158 | -1.17583 |
Сергей | 179 | 0.38698 |
Ольга | 165 | -0.65489 |
Юлия | 152 | -1. 62235 |
Кирилл | 188 | 1.05676 |
Антон | 177 | 0.23814 |
Софья | 165 | -0.65489 |
Подключение к пользовательскому SQL-запросу
Для большинства баз данных можно подключить к конкретному запросу, а не ко всему набору данных. Поскольку базы данных имеют немного отличающийся друг от друга синтаксис SQL, пользовательский SQL, который вы используете для подключения к одной базе данных, может отличаться от пользовательского SQL, который вы можете использовать для подключения к другой базе данных. Однако использование пользовательского SQL может быть полезным, если вы точно знаете, какая информация вам нужна, и понимаете, как писать SQL-запросы.
Хотя существует несколько распространенных причин, по которым вы можете использовать пользовательский SQL, вы можете использовать пользовательский SQL для объединения ваших данных между таблицами, преобразования полей для выполнения соединений между базами данных, реструктуризации или уменьшения размера ваших данных для анализа и т. д.
Для источников данных Excel и текстовых файлов этот параметр доступен только в книгах, созданных до Tableau Desktop 8.2, или при использовании Tableau Desktop в Windows с устаревшим подключением. Чтобы подключиться к Excel или текстовым файлам с помощью устаревшего подключения, подключитесь к файлу и в диалоговом окне «Открыть» щелкните раскрывающееся меню «Открыть», а затем выберите «Открыть с помощью устаревшего подключения».
ПРИМЕЧАНИЕ. Начиная с Tableau 2020.2, устаревшие соединения Excel и Text больше не поддерживаются. См. документ «Альтернативы устаревшего подключения» в сообществе Tableau, чтобы узнать об альтернативах использованию устаревшего подключения.
Подключиться к пользовательскому SQL-запросу
После подключения к данным дважды щелкните параметр «Новый пользовательский SQL» на странице «Источник данных».
Введите или вставьте запрос в текстовое поле. Запрос должен быть одним оператором SELECT*.
Когда закончите, нажмите OK.
При нажатии кнопки «ОК» запрос выполняется, и на логическом уровне холста появляется таблица пользовательских запросов SQL. Только релевантные поля из пользовательского SQL-запроса, отображаемого в сетке данных на странице «Источник данных».
Дополнительные сведения о логических и физических слоях холста см. в разделе Модель данных Tableau.
Примеры пользовательских SQL-запросов
Объединение таблиц по вертикали (объединение)
Если вам нужно добавить данные друг к другу, вы можете использовать опцию объединения на физическом уровне холста в Tableau. В некоторых случаях ваша база данных не поддерживает эту опцию, поэтому вместо нее вы можете использовать собственный SQL.
Например, предположим, что у вас есть следующие две таблицы: ноябрь и декабрь.
Ноябрь | декабрь |
---|---|
Вы можете использовать следующий пользовательский SQL-запрос, чтобы добавить вторую таблицу, декабрь, к первой таблице, ноябрь:
ВЫБРАТЬ * ОТ ноября ОБЪЕДИНЕНИЕ ВСЕ ВЫБРАТЬ * ОТ декабря
Результат запроса в таблице данных выглядит следующим образом:
Дополнительные сведения об опции объединения см. в разделе Объединение ваших данных.
Измените тип данных поля, чтобы выполнить соединение между базами данных
Если вы хотите выполнить соединение между двумя таблицами на физическом уровне холста, тип данных полей, которые вы соединяете, должен быть одинаковым. В случаях, когда типы данных полей не совпадают, вы можете использовать пользовательский SQL для изменения типа данных (приведения) поля перед выполнением соединения.
Например, предположим, что вы хотите соединить две таблицы, основную и вспомогательную, используя поля Корень и Идентификатор соответственно. Поле Root представляет собой числовой тип, а поле ID – строковый тип. Вы можете использовать следующий пользовательский SQL-запрос, чтобы изменить тип данных Root с числа на строку, чтобы можно было соединить основные и вспомогательные таблицы с помощью полей Root и ID.
ВЫБОР
[Main].[Root] AS [Root_Number]
CAST([Main].[Root] AS INT] AS [Root_String]
ОТ [Основной]
Результат этого запроса показывает исходное поле Root и поле Root, преобразованное в строку.
Дополнительные сведения о соединениях и соединениях между базами данных см. в разделе Объединение ваших данных.
Уменьшите размер ваших данных
При работе с очень большими наборами данных иногда можно сэкономить время при работе с данными, если сначала уменьшить их размер.
Например, предположим, что у вас есть большая таблица с именем FischerIris. Вы можете использовать следующий пользовательский SQL-запрос для извлечения указанных столбцов и записей, тем самым уменьшая размер набора данных, к которому вы подключаетесь из Tableau.
ВЫБОР
[FischerIris].[Виды] AS [Виды],
[FischerIris].[Ширина] AS [Ширина лепестка],
COUNT([FischerIris].[ID]) AS [Количество видов]
ОТ [FischerIris]
ГДЕ [FischerIris].[Орган] = 'Лепесток'
И [FischerIris].[Ширина] > 15,0000
ГРУППА ПО [FischerIris].[Виды], [FischerIris].[Ширина]
Реструктуризация данных (основной)
В некоторых случаях вы можете работать с таблицей, которую необходимо реструктурировать перед анализом. Хотя этот тип задач можно выполнить на физическом уровне холста в Tableau с помощью таких параметров, как поворот, ваша база данных может не поддерживать его. В этом случае вместо этого вы можете использовать собственный SQL.
Например, предположим, что у вас есть следующая таблица:
Чтобы изменить его структуру и оптимизировать данные для анализа в Tableau, вы можете использовать следующий пользовательский SQL-запрос:
SELECT Table1.Season ID AS [Season ID],
Table1.Items - Не нравится AS [Количество],
"Не нравится" AS [Причина]
ИЗ Таблицы 1
СОЕДИНЕНИЕ ВСЕ
SELECT Table1.Season ID AS [ID сезона],
Table.Items - Дефектный AS [Количество],
"Дефектный" AS [Причина]
ИЗ Таблицы 1
СОЕДИНЕНИЕ ВСЕ
SELECT Table1.Season ID AS [ID сезона],
Table1.Items — Слишком большой AS [Количество],
"Слишком большой" AS [Причина]
ИЗ Таблицы 1
СОЕДИНЕНИЕ ВСЕ
ВЫБРАТЬ Table1. Season ID КАК идентификатор сезона,
Table1.Items — Слишком мал AS [Количество]
"Слишком маленький" AS [Причина]
ИЗ Таблицы 1
Результат запроса в таблице данных выглядит следующим образом:
Дополнительные сведения о параметре сводки см. в разделе Сведение данных из столбцов в строки.
Объединить (объединить) и агрегировать данные
Если вам нужно объединить таблицы и агрегировать данные, вы можете использовать параметры типа объединения и агрегации по умолчанию на физическом уровне холста в Tableau. В некоторых случаях вам может понадобиться вместо этого использовать пользовательский SQL.
Например, предположим, что у вас есть следующие две таблицы: Orders и Vendors.
Заказы | Продавцы |
---|---|
Вы можете использовать следующий пользовательский SQL-запрос, чтобы подсчитать количество заказов и выполнить левое соединение в таблицах Orders и Vendors:
ВЫБЕРИТЕ Vendors. Name,COUNT(Orders.Order) AS количество заказов
ОТ Заказы
ЛЕВОЕ СОЕДИНЕНИЕ Поставщики
ON Заказы.VendorID=Vendors.VendorID
ГРУППИРОВАТЬ ПО Имени;
Результат запроса выглядит так:
Дополнительные сведения о объединениях см. в разделе Объединение ваших данных.
Ошибки при ссылке на повторяющиеся столбцы
Если ваш пользовательский запрос SQL ссылается дублировать столбцы, вы можете получить ошибки при попытке использовать один из столбцы в вашем анализе в Tableau. Это произойдет, даже если запрос действителен. Например, рассмотрим следующий запрос:
ВЫБЕРИТЕ * ИЗ
авторы, название автора ГДЕ authors.au_id = titleauthor.au_id
запрос корректен, но поле au_id неоднозначно потому что в этом случае он существует как в таблице «authors», так и в таблице «titleauthor» стол. Tableau подключится к запросу, но вы получите сообщение об ошибке в любое время вы пытаетесь использовать поле au_id. Это потому что Tableau не знает, о какой таблице вы говорите.
Примечание: Рекомендуется по возможности определять псевдонимы столбцов с предложением AS в пользовательском SQL-запросе. Это связано с тем, что каждая база данных имеет свои собственные правила автоматического создания имени столбца всякий раз, когда псевдоним не используется.
Редактирование пользовательского SQL-запроса
Редактирование пользовательского SQL-запроса
- На странице источника данных на холсте дважды щелкните пользовательский запрос SQL в логическом слое.
- Наведите указатель мыши на настраиваемую таблицу SQL на физическом уровне, пока не появится стрелка.
- Щелкните стрелку и выберите «Редактировать пользовательский запрос SQL».
- В диалоговом окне отредактируйте пользовательский запрос SQL.
Чтобы изменить имя пользовательского запроса SQL
Когда вы перетаскиваете пользовательский SQL-запрос на логический слой холста, Tableau присваивает ему имя по умолчанию: Пользовательский SQL-запрос, Пользовательский SQL-запрос1 и т. д. Вы можете изменить имя по умолчанию на более значимое.
- На странице источника данных в логическом слое холста выберите стрелку раскрывающегося списка в пользовательской таблице SQL-запросов и выберите «Переименовать».
- Введите имя, которое вы хотите использовать для своего пользовательского SQL-запроса.
Использование параметров в пользовательском запросе SQL
Параметры в пользовательском операторе запроса SQL можно использовать для замены постоянного значения динамическим значением. Затем вы можете обновить параметр в книге, чтобы изменить соединение. Например, вы можете подключиться к пользовательскому SQL-запросу, который предоставляет данные о веб-трафике для конкретной страницы, указанной идентификатором страницы. Вместо использования постоянного значения для значения pageID в SQL-запросе вы можете вставить параметр. Затем, после завершения подключения, вы можете отобразить элемент управления параметрами в рабочей книге. Используйте элемент управления параметрами, чтобы отключить идентификатор страницы и получить данные для каждой интересующей страницы без необходимости редактирования или дублирования соединения.
В Tableau Desktop вы можете создать параметр непосредственно из диалогового окна Custom SQL или использовать любые параметры, являющиеся частью рабочей книги. Если вы создаете новый параметр, он становится доступным для использования в рабочей книге, как и любой другой параметр. См. раздел Создание параметров, чтобы узнать больше.
Для веб-разработки (в Tableau Cloud или Tableau Server) вы можете использовать существующий параметр, опубликованный из Tableau Desktop. Вы не можете создать новый параметр в веб-разработке.
Чтобы добавить параметр в пользовательский запрос SQL
- На странице источника данных на холсте наведите указатель мыши на таблицу, пока не отобразится значок редактирования, а затем нажмите кнопку редактирования.
- В нижней части диалогового окна нажмите «Вставить параметр».
- Выберите постоянное значение в операторе SQL, а затем в раскрывающемся меню «Вставить параметр» выберите параметр, который вы хотите использовать вместо этого. Если вы еще не создали параметр, выберите Создать новый параметр. Следуйте инструкциям в разделе Создание параметров, чтобы создать параметр.
Примечание. Параметры могут заменять только буквальные значения. Они не могут заменить выражения или идентификаторы, такие как имена таблиц.
В приведенном ниже примере пользовательский запрос SQL возвращает все заказы, отмеченные как срочные. В пользовательском операторе SQL приоритет порядка является постоянным значением. Если вы хотите изменить соединение, чтобы увидеть заказы с высоким приоритетом, вам придется отредактировать источник данных.
Вместо того, чтобы создавать и поддерживать множество вариантов одного и того же запроса, вы можете заменить постоянное значение приоритета порядка параметром. Параметр должен содержать все возможные значения приоритета заказа.
После создания параметра его можно вставить в оператор SQL, чтобы заменить постоянное значение.
После того, как вы закончите редактирование соединения, новый параметр появится в списке в области «Параметры» в нижней части панели «Данные», а элемент управления параметром отобразится в правой части экрана. При выборе других значений соединение обновляется.
Примечание: Если вы используете выписку, вы должны обновить выписку, чтобы отразить изменения в параметре. Публикация источника данных, использующего пользовательские параметры SQL, включает в себя параметры. Параметры передаются во все рабочие книги, подключенные к источнику данных.
Поддержка каталога Tableau для пользовательского SQL
Начиная с 2019.3, каталог Tableau доступен как часть предложения по управлению данными для Tableau Server и Tableau Cloud. Дополнительные сведения о каталоге Tableau см. в разделе «О каталоге Tableau» в справке Tableau Server или Tableau Cloud.
Поддерживаемые запросы
Каталог поддерживает пользовательские запросы SQL, соответствующие стандарту ANSI SQL-2003, за тремя известными исключениями:
- Выражения часовых поясов
- Мультимножественные выражения
- Параметры таблицы
Начиная с 2021. 4, каталог Tableau также поддерживает использование диалекта Transact-SQL (T-SQL) в пользовательском SQL со следующими исключениями:
- Советы
- ДЛЯ пунктов
- Функции OPENROWSET, OPENXML и OPENJSON
- Скалярные функции ODBC
- ДЛЯ СИСТЕМНОГО_ВРЕМЕНИ
- ТАБЛИЧНЫЙ ПРИМЕР
- ПОИСКПОЗ выражения
- СОДЕРЖИТ выражение
- Выражение FREETEXT
Поддерживаемые возможности и функции
Каталог поддерживает следующие дополнительные функции для источников данных, рабочих книг и потоков с подключениями, использующими драйверы MySQL или PostgreSQL, например, Amazon Aurora для MySQL, Amazon RedShift, Pivotal Greenplum Database, MemSQL, Denodo , и другие.
- Функция MySQL GROUP_CONCAT
- Массивы PostgreSQL
- Функция PostgreSQL EXTRACT()
Другие пользовательские сценарии и функции SQL могут работать, но Tableau специально не тестирует и не поддерживает их.
Поддерживаемое происхождение
Когда актив использует пользовательский SQL, на вкладке Происхождение страницы актива появляется сообщение с кнопкой Показать пользовательский SQL-запрос. Нажмите кнопку, чтобы увидеть пользовательский SQL, используемый в соединении. Затем, если вы хотите скопировать пользовательский SQL в буфер обмена, нажмите «Копировать».
Некоторые типы пользовательского SQL могут привести к неполной восходящей линии. Когда это происходит, появляется сообщение с этой информацией. Карточки сведений о полях могут не содержать ссылок на связанные столбцы или вообще не отображать связанные столбцы. Карточки сведений о столбцах могут не содержать ссылок на поля, использующие столбец, или вообще не отображать никаких полей.
Если вы изучаете происхождение таблицы, обратите внимание, что Каталог не поддерживает отображение информации столбца в происхождении для метаданных таблицы, собранных с помощью пользовательского SQL. Однако, если другие активы используют ту же таблицу и не используют пользовательский SQL, каталог Tableau может отображать информацию о столбцах, обнаруженных с помощью этих других активов.
На следующем снимке экрана таблица factAccountOpportunityByQuarter была проиндексирована, поскольку она используется источником данных. Однако, поскольку на него ссылается пользовательский запрос SQL, информация о столбце недоступна.
В случае, когда несколько источников данных, рабочих книг или потоков используют таблицу, любые ресурсы ниже по течению от этой таблицы, использующие пользовательский запрос SQL, исключаются при применении фильтров на уровне столбца. В результате в родословной отображается меньше нижестоящих активов, чем фактически используется.
Дополнительные сведения об использовании происхождения см. в разделе «Использование происхождения для анализа влияния» в справке Tableau Server (ссылка открывается в новом окне) или Tableau Cloud (ссылка открывается в новом окне).
См. также
Использование пользовательского SQL и RAWSQL для выполнения расширенного пространственного анализа (ссылка открывается в новом окне)
sql:запрос — Друш
Выполнить запрос к базе данных.
Примеры
-
drush sql:query "SELECT * FROM users WHERE uid=1"
. Просмотр записи пользователя. Префиксы таблиц, если они используются, должны добавляться к именам таблиц вручную. -
drush sql:query --db-prefix "SELECT * FROM {users}"
. Просмотр записи пользователя. Префиксы таблиц учитываются. Внимание: все фигурные скобки будут удалены. -
$(drush sql:connect) < example.sql
. Импорт операторов SQL из файла в текущую базу данных. -
drush sql:query --file=example.sql
. Альтернативный способ импорта операторов SQL из файла. -
drush ev "return db_query('SELECT * FROM users')->fetchAll()" --format=json
. Получить данные обратно в формате JSON. См. https://github.com/drush-ops/drush/issues/3071#issuecomment-347929777. -
драш sql: подключение
-e "выбрать * из лимита пользователей 5;"
Аргументы
- [запрос] . SQL-запрос. Игнорируется, если указан --file.
Опции
- --файл-результата[=ФАЙЛ-РЕЗУЛЬТАТА] . Сохранить в файл. Файл должен относиться к корню Drupal.
- --file=ФАЙЛ . Путь к файлу, содержащему SQL для запуска. Файлы Gzip принимаются.
- --file-delete . Удалите --file после его запуска.
- --extra=ДОПОЛНИТЕЛЬНО . Добавьте пользовательские параметры в строку подключения (например, --extra=--skip-column-names)
- --db-префикс . Включите замену фигурных скобок в вашем запросе.
- --база данных[=БАЗА ДАННЫХ] . Ключ подключения к БД при использовании нескольких подключений в settings.php. [по умолчанию: по умолчанию ]
- --цель[=ЦЕЛЬ] . Имя цели в указанном соединении с базой данных. [по умолчанию: по умолчанию ]
- --db-url=DB-URL . URL-адрес базы данных в стиле Drupal 6. Например, mysql://root:pass@localhost:port/dbname
- --показать-пароли . Показать пароль в CLI. Полезно для отладки.
Общие параметры
- -v|vv|vvv, --verbose .