Как сделать резервную копию и поддерживать таблицу SQL Server в Azure?

Я создал конвейер в Azure ADF, который выполняет ETL для создания чистого файла «Final_Data_2023.csv» размером 15 ГБ в контейнере хранилища Azure, и этот чистый файл будет скопирован в таблицу SQL Server dbo.Final_Table.

Этот процесс происходит каждый месяц, и в следующем месяце мы снова подготовим чистый файл Final_Data_2023.csv. Мне нужно обрезать dbo.Final_Table и снова вставить в него новые данные. Но я обеспокоен тем, что мои новые данные имеют совершенно неверные значения, и для быстрого исправления мне нужно, чтобы мой старый Final_Data_2023.csv находился в таблице dbo.Final_Table. Поскольку я усекаю все данные из таблицы, вернуть их будет невозможно.

Как мне спроектировать свою архитектуру, чтобы я мог быстро получить или сохранить таблицу предыдущего месяца и отменить ее, если что-то пойдет не так?

Это не обязательно должен быть небольшой обходной путь.

Вы можете переименовать dbo.Final_Table во что-то вроде dbo.Final_Table_bkp, а затем воссоздать пустой dbo.Final_Table

Anthony Norwood 14.02.2023 08:26
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
1
50
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Контейнер хранилища Azure в основном используется для хранения больших объемов данных. Таким образом, вы можете разработать конвейер для хранения всех данных резервного копирования в контейнере и копирования только последнего файла в таблицу SQL-сервера.

Подход:

  • Вы можете сохранить имя файла вместе с датой при копировании в контейнер хранилища Azure.
  • Скопируйте тот же файл из контейнера в базу данных.

Ниже приведены подробные шаги.

  • Сохраните имя файла с текущей датой в переменной, используя заданную переменную. @concat(substring(utcnow(),0,10),'_filename.csv')

  • Добавьте действие копирования для копирования данных с сервера SQL в контейнер хранилища.

  • В действии копирования вы можете взять исходный набор данных, а в наборе данных приемника создать параметр для имени файла.

  • Добавьте параметр @dataset().fileName в путь к файлу, как показано на изображении ниже.

  • В наборе данных Sink передайте значение переменной в параметр набора данных.

  • Добавьте еще одно действие копирования для копирования из контейнера в БД и сохраните тот же исходный набор данных, который использовался в действии копирования1, и передайте переменную в параметре набора данных.

  • В наборе данных приемника укажите набор данных для SQL-сервера.

Таким образом, вы можете хранить данные резервной копии в контейнере Azure и копировать новый чистый файл в базу данных. Если необходимо откатиться к предыдущим версиям файла, мы можем скопировать эти данные из контейнера.

Другие вопросы по теме