Рубрики
Без рубрики

Изучите схему Вашей базы данных с помощью SchemaCrawler

Как вы исследуете новую базу данных? Скорее всего, вы приступили к новой работе и быстро пробуете ее… С тегом database, java.

Как вы исследуете новую базу данных? Скорее всего, вы приступили к новой работе и быстро пытаетесь разобраться в том, как распределяются данные. Или вы консультант, пытающийся выглядеть достойно своих денег и разумно говорить о дизайне схемы клиента. Возможно, вы только что вернулись из отпуска и хотите посмотреть, какие изменения другие разработчики внесли в базу данных.

SchemaCrawler позволяет вам очень быстро добраться до сути того, что вам нужно. Допустим, вы знаете, что в приложении есть часть, которая имеет дело с клиентами. Можно было бы ожидать, что там будут столбцы с названием “клиент” или что-то в этом роде. Вы можете попросить SchemaCrawler подключиться к базе данных и использовать регулярное выражение, такое как .*CUSTOMER. * , чтобы найти все таблицы, в которых есть столбец со словом “клиент”. Затем вы можете найти связанные таблицы, основанные на связях внешних ключей. Наконец, вы можете отобразить результат на диаграмме базы данных. Используя этот метод, вы обнаружите, что очень быстро можете получить интересующую вас информацию о схеме – обычно за считанные минуты. SchemaCrawler уникален функциями, которые он предлагает для такого рода детализации.

В большой базе данных у вас могут быть сотни таблиц. Большинство людей пытаются распечатать всю эту схему в виде диаграммы и наклеить ее на пустую стену для справки. Это непродуктивный способ получения информации, особенно в современную эпоху, когда люди привыкли к поиску в Google. SchemaCrawler – это своего рода “поиск в Google” для метаданных базы данных. Тогда вместо одной гигантской диаграммы на стене у вас будет множество диаграмм меньшего размера, созданных по запросу для конкретной исследовательской задачи.

Рассмотрим случай, когда вы вернулись из отпуска, а разработчики были очень активны. Вы не сможете найти ни одну из новых таблиц и столбцов, которые они создали бы на диаграмме на вашей стене. Однако, если бы вы сохранили свою командную строку SchemaCrawler до вашего отпуска, все, что вам нужно было бы сделать, это повторно запустить SchemaCrawler, и вы получили бы совершенно новую схему. SchemaCrawler нашел бы и учел все новые таблицы и столбцы, о которых вы не собирались знать.

Вот несколько конкретных примеров с использованием базы данных Microsoft AdventureWorks: Поиск таблиц, в которых есть столбец с именем VendorID (используйте --grep-columns=.*\.VendorID )

schemacrawler --server=sqlserver --host=**** --database=AdventureWorks --schemas=AdventureWorks\..* --user=**** --password=**** --info-level=standard --table-types=TABLE --grep-columns=.*\.VendorID --command=schema

Затем, чтобы построить диаграмму базы данных таблиц, имеющих столбец с именем VendorID , со связанными таблицами (используйте --родители=1 )

schemacrawler --server=sqlserver --host=**** --database=AdventureWorks --schemas=AdventureWorks\..* --user=**** --password=**** --info-level=standard --table-types=TABLE --grep-columns=.*\.VendorID --command=schema --parents=1 --children=1 --only-matching --output-format=pdf

(Вы можете использовать SchemaCrawler live tutorials на Katacoda , чтобы увидеть это в действии.)

SchemaCrawler предназначен для использования в качестве инструмента исследования схемы базы данных, предназначенного для многих типов пользователей.

Для программистов существует богатый Java API для метаданных об объектах базы данных и интеграции с репозиториями Maven. Вы можете писать сценарии с помощью нескольких языков сценариев, таких как JavaScript, Python, Ruby, Scala, Groovy и так далее. Для непрерывной сборки вы можете использовать SchemaCrawler с рабочими процессами GitHub Actions или GitLab, а также интеграцию сборки ant и Maven, а также отчеты для сайтов, созданных Maven. Программисты также могут создавать плагины для lint и расширять поддержку метаданных, специфичных для базы данных.

Инженеры по контролю качества могут автоматизировать тесты базы данных, выводя ожидаемые результаты для метаданных, а также данных в удобном для сравнения формате SchemaCrawler и сравнивая их со своими тестовыми прогонами. Этот метод также можно использовать для сравнения схем между серверами разработки и производства, а также для отслеживания изменений схемы с течением времени.

Архитекторы баз данных и администраторы баз данных могут быстро изучить структуру базы данных, используя мощную функциональность grep, основанную на регулярных выражениях. Затем они могут использовать результаты своего поиска для создания ERD. ERD Schemacrawler очень полезны, когда схемы постоянно меняются. Вам не нужно знать, в чем заключаются изменения, но вы можете просто повторно запустить ту же команду SchemaCrawler, чтобы выяснить это. Например, если член команды добавил новый столбец, связанный с клиентом, в таблицу, когда вы были в отпуске, вы можете добавить его в свою схему базы данных, просто повторно запустив команду SchemaCrawler, которая выполняет поиск по всем таблицам со столбцами с именем CUSTOMER_ID . Конечно, архитекторы баз данных сочли бы возможность lint действительно полезной для отслеживания плохих методов проектирования схем и даже добавили бы некоторые из своих собственных пользовательских линтеров.

Посетите веб-сайт SchemaCrawler , чтобы узнать больше о SchemaCrawler. Используйте SchemaCrawler live tutorials на Katacoda , чтобы получить представление о том, что возможно.

Оригинал: “https://dev.to/sualeh/explore-your-database-schema-with-schemacrawler-5341”