Вопрос или проблема
В чем разница между “Извлечь приложение уровня данных” и “Экспортировать приложение уровня данных” в параметрах SSMS при щелчке правой кнопкой мыши на базе данных?
Короче говоря = Извлечение используется для информации о схеме, Экспорт используется для информации о схеме и данных.
Таким образом, “Экспорт” создает файл .bacpac
, а “Извлечение” создает файл .dacpac
.
После того, как я попробовал оба варианта и увидел, что они имеют разные типы файлов, я нашел эту информацию здесь;
DACPAC и BACPAC похожи, но нацелены на разные сценарии. DACPAC ориентирован на захват и развертывание схемы, включая обновление существующей базы данных. Основной случай использования DACPAC – это развертывание четко определенной схемы в средах разработки, тестирования, а затем и в производственной среде. А также обратное: захват схемы производства и ее повторное применение в средах тестирования и разработки.
С другой стороны, BACPAC ориентирован на захват схемы и данных, поддерживая две основные операции:
-
ЭКСПОРТ – Пользователь может экспортировать схему и данные базы данных в BACPAC.
-
ИMПОРТ – Пользователь может импортировать схему и данные в новую базу данных на хост-сервере.
Обе эти возможности поддерживаются инструментами управления базами данных: SQL Server Management Studio, Azure Portal и DACFx API.
Ответ или решение
Различия между «Извлечением» и «Экспортом» данных в контексте SQL Data-Tier Applications
Когда дело доходит до управления базами данных через SQL Server Management Studio (SSMS), пользователи могут столкнуться с опцией «Извлечение данных» или «Экспорт данных», когда щелкают правой кнопкой мыши на базе данных. Понимание различий между этими двумя операциями имеет решающее значение для эффективного управления данными и схемами в SQL Server.
Понятия DACPAC и BACPAC
Прежде всего, разберемся с терминами DACPAC и BACPAC, которые относятся к операциям извлечения и экспорта.
-
DACPAC (Data-tier Application Package) – это файл, который содержит схемы баз данных. DACPAC фокусируется на захвате и развертывании схемы базы данных без учета фактических данных. Этот формат файла идеально подходит для сценариев развертывания и обновления схемы базы данных в различных средах, таких как разработка, тестирование и производство. Используя DACPAC, разработчики могут гарантировать, что развертываемая схема строго соответствует утвержденной спецификации, что уменьшает риск несоответствий.
-
BACPAC (Backup Package) – это файл, который содержит как схему, так и данные базы данных. BACPAC призван обеспечить простоту передачи баз данных между различными средами путем экспорта как структуры, так и содержимого. Этот формат полезен не только для резервного копирования данных, но и для миграции баз данных в облачные сервисы, такие как Azure.
Ключевые различия
Теперь давайте рассмотрим основные различия между операциями «Извлечение» и «Экспорт»:
-
Функциональность:
-
Извлечение (Extract):
-
Создает файл DACPAC.
-
Фокусируется исключительно на схемах баз данных.
-
Предназначен для разработки и развертывания схемы, улучшения ее при необходимости, а также для синхронизации схемы между разными окружениями.
-
Экспорт (Export):
-
Создает файл BACPAC.
-
Захватывает как схемы, так и данные баз данных.
-
Включает возможность резервного копирования базы данных с последующим восстановлением или миграцией в другие серверы или облачные сервисы.
-
-
Использование:
-
Чтобы использовать DACPAC, вы можете применять его в сценариях, связанных только с изменением структуры базы данных (например, добавление новых таблиц или изменение их схем). В таких случаях, если ваши нужды состоят в обновлении или развертывании, DACPAC будет предпочтительным выбором.
-
BACPAC подходит, когда вам необходимо перенести данные вместе со схемой или создать резервную копию всей базы данных. Например, BACPAC можно использовать для переноса базы данных из локального SQL Server в Azure SQL Database.
-
Заключение
Таким образом, правильный выбор между «Извлечением» и «Экспортом» зависит от ваших требований. Если ваша цель состоит в управлении схемой и ее версионировании, используйте Извлечение для создания DACPAC. Если же вам нужно переносить как данные, так и схему, выбирайте Экспорт для генерации BACPAC.
Оба метода поддерживаются в инструментах управления базами данных, включая SQL Server Management Studio, Azure Portal и DACFx API, что обеспечивает гибкость и доступность данных при выполнении операций. Правильное использование этих методов позволит повысить эффективность разработки и управления базами данных в вашей организации.