Metabase SQL графики и запросы. Metabase base. Easy Metabase
Работа с графиками.
Предварительная настройка:
sudo apt install -y openjdk-21-jre-headless
sudo useradd -p your_password -s /bin/false -U -m metabase
sudo vim /etc/default/metabase
MB_DB_TYPE=postgres
MB_DB_DBNAME=metabase_db
MB_DB_PORT=5432
MB_DB_USER=metabase_user
MB_DB_PASS=your_db_user_password
MB_DB_HOST=localhost
sudo chmod 640 /etc/default/metabase
Установка
wget https://downloads.metabase.com/v0.53.3/metabase.jar
sudo mv metabase.jar /home/metabase/
sudo vim /etc/systemd/system/metabase.service
[Unit]
Description=Metabase server
After=network.target
[Service]
WorkingDirectory=/home/metabase
ExecStart=/usr/lib/jvm/java-21-openjdk-amd64/bin/java --add-opens java.base/java.nio=ALL-UNNAMED -jar /home/metabase/metabase.jar
EnvironmentFile=/etc/default/metabase
User=metabase
Type=simple
Restart=on-failure
[Install]
WantedBy=multi-user.target
java -jar metabase.jar
Операторы SQL для построения графиков в Metabase
SELECT
Выбор столбцов или вычисляемых значений для отображения на графике.
Пример:SELECT column1, column2 FROM table;
FROM
Указание таблицы или источника данных.
Пример:SELECT * FROM sales_data;
WHERE
Фильтрация строк по условию.
Пример:SELECT * FROM sales_data WHERE region = 'Europe';
GROUP BY
Группировка данных для агрегации.
Пример:SELECT region, SUM(sales) FROM sales_data GROUP BY region;
ORDER BY
Сортировка данных по указанному столбцу.
Пример:SELECT * FROM sales_data ORDER BY date DESC;
LIMIT
Ограничение количества возвращаемых строк.
Пример:SELECT * FROM sales_data LIMIT 10;
JOIN
Объединение данных из нескольких таблиц.
Пример:SELECT * FROM sales s JOIN products p ON s.product_id = p.id;
SUM, COUNT, AVG, MIN, MAX
Агрегатные функции для вычисления суммы, количества, среднего, минимума или максимума.
Пример:SELECT SUM(sales) FROM sales_data;
DATE_TRUNC
Округление даты до указанной точности (день, месяц, год и т.д.).
Пример:SELECT DATE_TRUNC('month', date) FROM sales_data;
EXTRACT
Извлечение части даты (год, месяц, день и т.д.).
Пример:SELECT EXTRACT(YEAR FROM date) FROM sales_data;
CASE
Условные выражения для создания новых столбцов.
Пример:SELECT CASE WHEN sales > 1000 THEN 'High' ELSE 'Low' END FROM sales_data;
OVER, PARTITION BY
Оконные функции для вычислений внутри групп строк.
Пример:SELECT AVG(sales) OVER (PARTITION BY region) FROM sales_data;
ROW_NUMBER, RANK
Присвоение номеров строкам или ранжирование.
Пример:SELECT ROW_NUMBER() OVER (ORDER BY sales DESC) FROM sales_data;
UNION
Объединение результатов нескольких запросов.
Пример:SELECT * FROM sales_2022 UNION SELECT * FROM sales_2023;
WITH (CTE)
Создание временных таблиц для сложных запросов.
Пример:WITH top_products AS ( SELECT product_id FROM sales_data ORDER BY sales DESC LIMIT 5 ) SELECT * FROM top_products;
HAVING
Фильтрация результатов агрегации.
Пример:SELECT region, SUM(sales) FROM sales_data GROUP BY region HAVING SUM(sales) > 10000;
COALESCE
Возврат первого не NULL значения из списка.
Пример:SELECT COALESCE(column1, column2, 'N/A') FROM table;
NULLIF
Возврат NULL, если значения равны.
Пример:SELECT NULLIF(column1, 0) FROM table;
CAST
Преобразование типа данных.
Пример:SELECT CAST(column1 AS FLOAT) FROM table;
DISTINCT
Удаление дубликатов.
Пример:SELECT DISTINCT region FROM sales_data;
Эти операторы помогут вам подготовить данные для построения графиков в Metabase.