update Readme
This commit is contained in:
42
README.md
42
README.md
@@ -1,3 +1,5 @@
|
|||||||
|
Вот обновлённый README с информацией о работе со скриптами:
|
||||||
|
|
||||||
# Инструменты автоматизации Superset
|
# Инструменты автоматизации Superset
|
||||||
|
|
||||||
## Обзор
|
## Обзор
|
||||||
@@ -9,6 +11,7 @@
|
|||||||
- `backup_script.py`: Основной скрипт для выполнения запланированного резервного копирования дашбордов Superset.
|
- `backup_script.py`: Основной скрипт для выполнения запланированного резервного копирования дашбордов Superset.
|
||||||
- `migration_script.py`: Основной скрипт для переноса конкретных дашбордов между окружениями, включая переопределение соединений с базами данных.
|
- `migration_script.py`: Основной скрипт для переноса конкретных дашбордов между окружениями, включая переопределение соединений с базами данных.
|
||||||
- `search_script.py`: Скрипт для поиска данных во всех доступных датасетах на сервере
|
- `search_script.py`: Скрипт для поиска данных во всех доступных датасетах на сервере
|
||||||
|
- `run_mapper.py`: CLI-скрипт для маппинга метаданных датасетов.
|
||||||
- `superset_tool/`:
|
- `superset_tool/`:
|
||||||
- `client.py`: Python-клиент для взаимодействия с API Superset.
|
- `client.py`: Python-клиент для взаимодействия с API Superset.
|
||||||
- `exceptions.py`: Пользовательские классы исключений для структурированной обработки ошибок.
|
- `exceptions.py`: Пользовательские классы исключений для структурированной обработки ошибок.
|
||||||
@@ -17,6 +20,8 @@
|
|||||||
- `fileio.py`: Утилиты для работы с файловой системой (работа с архивами, парсинг YAML).
|
- `fileio.py`: Утилиты для работы с файловой системой (работа с архивами, парсинг YAML).
|
||||||
- `logger.py`: Конфигурация логгера для единообразного логирования в проекте.
|
- `logger.py`: Конфигурация логгера для единообразного логирования в проекте.
|
||||||
- `network.py`: HTTP-клиент для сетевых запросов с обработкой аутентификации и повторных попыток.
|
- `network.py`: HTTP-клиент для сетевых запросов с обработкой аутентификации и повторных попыток.
|
||||||
|
- `init_clients.py`: Утилита для инициализации клиентов Superset для разных окружений.
|
||||||
|
- `dataset_mapper.py`: Логика маппинга метаданных датасетов.
|
||||||
|
|
||||||
## Настройка
|
## Настройка
|
||||||
|
|
||||||
@@ -66,17 +71,34 @@ python migration_script.py
|
|||||||
`from_c` и `to_c`.
|
`from_c` и `to_c`.
|
||||||
|
|
||||||
### Скрипт поиска (`search_script.py`)
|
### Скрипт поиска (`search_script.py`)
|
||||||
Строка для поиска и клиенты для поиска задаются здесь
|
Для поиска по текстовым паттернам в метаданных датасетов Superset:
|
||||||
# Поиск всех таблиц в датасете
|
```bash
|
||||||
```python
|
python search_script.py
|
||||||
results = search_datasets(
|
|
||||||
client=clients['dev'],
|
|
||||||
search_pattern=r'dm_view\.account_debt',
|
|
||||||
search_fields=["sql"],
|
|
||||||
logger=logger
|
|
||||||
)
|
|
||||||
```
|
```
|
||||||
|
Скрипт использует регулярные выражения для поиска в полях датасетов, таких как SQL-запросы. Результаты поиска выводятся в лог и в консоль.
|
||||||
|
|
||||||
|
### Скрипт маппинга метаданных (`run_mapper.py`)
|
||||||
|
Для обновления метаданных датасета (например, verbose names) в Superset:
|
||||||
|
```bash
|
||||||
|
python run_mapper.py --source <source_type> --dataset-id <dataset_id> [--table-name <table_name>] [--table-schema <table_schema>] [--excel-path <path_to_excel>] [--env <environment>]
|
||||||
|
```
|
||||||
|
Если вы используете XLSX - файл должен содержать два столбца - column_name | verbose_name
|
||||||
|
|
||||||
|
|
||||||
|
Параметры:
|
||||||
|
- `--source`: Источник данных ('postgres', 'excel' или 'both').
|
||||||
|
- `--dataset-id`: ID датасета для обновления.
|
||||||
|
- `--table-name`: Имя таблицы для PostgreSQL.
|
||||||
|
- `--table-schema`: Схема таблицы для PostgreSQL.
|
||||||
|
- `--excel-path`: Путь к Excel-файлу.
|
||||||
|
- `--env`: Окружение Superset ('dev', 'prod' и т.д.).
|
||||||
|
|
||||||
|
Пример использования:
|
||||||
|
```bash
|
||||||
|
python run_mapper.py --source postgres --dataset-id 123 --table-name account_debt --table-schema dm_view --env dev
|
||||||
|
|
||||||
|
python run_mapper.py --source=excel --dataset-id=286 --excel-path=H:\dev\ss-tools\286_map.xlsx --env=dev
|
||||||
|
```
|
||||||
|
|
||||||
## Логирование
|
## Логирование
|
||||||
Логи пишутся в файл в директории `Logs` (например, `P:\Superset\010 Бекапы\Logs` для резервных копий) и выводятся в консоль. Уровень логирования по умолчанию — `INFO`.
|
Логи пишутся в файл в директории `Logs` (например, `P:\Superset\010 Бекапы\Logs` для резервных копий) и выводятся в консоль. Уровень логирования по умолчанию — `INFO`.
|
||||||
@@ -90,4 +112,4 @@ results = search_datasets(
|
|||||||
---
|
---
|
||||||
[COHERENCE_CHECK_PASSED] README.md создан и согласован с модулями.
|
[COHERENCE_CHECK_PASSED] README.md создан и согласован с модулями.
|
||||||
|
|
||||||
Перевод выполнен с сохранением оригинальной Markdown-разметки и стиля документа. [1]
|
Перевод выполнен с сохранением оригинальной Markdown-разметки и стиля документа.
|
||||||
@@ -97,7 +97,7 @@ class DatasetMapper:
|
|||||||
self.logger.info("[load_excel_mappings][Enter] Loading mappings from %s.", file_path)
|
self.logger.info("[load_excel_mappings][Enter] Loading mappings from %s.", file_path)
|
||||||
try:
|
try:
|
||||||
df = pd.read_excel(file_path)
|
df = pd.read_excel(file_path)
|
||||||
mappings = df.set_index('column_name')['column_comment'].to_dict()
|
mappings = df.set_index('column_name')['verbose_name'].to_dict()
|
||||||
self.logger.info("[load_excel_mappings][Success] Loaded %d mappings.", len(mappings))
|
self.logger.info("[load_excel_mappings][Success] Loaded %d mappings.", len(mappings))
|
||||||
return mappings
|
return mappings
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
|||||||
Reference in New Issue
Block a user