Данные, введенные в SQL DB, слишком велики по сравнению с исходным кодом Oracle

#oracle #azure #csv #azure-sql-database #azure-data-factory-2

#Oracle #azure #csv #azure-sql-database #azure-data-factory-2

Вопрос:

Здравствуйте, я использую Azure Data Factory для ввода данных из Oracle в SQL DB, данные извлекаются в формате csv. Проблема заключается в источнике, который я читаю, как данные 10 Go, но когда они вводятся в Azure SQL DB, размер данных становится 40 Go.

Это нормально? и есть ли способ уменьшить размер данных назначения?

Спасибо

Комментарии:

1. Как вы получаете эти цифры? Данные внутри базы данных обычно имеют служебные данные, которых не существует, когда эти данные находятся в простом файле csv.

2. @EdStevens когда вы используете фабрику данных, вы можете видеть слева объем считываемых данных, а справа — записанные данные.

3. Что вы подразумеваете под 10 Go и 40 Go? Вы имеете в виду ГБ или гигабайт вместо этого? У вас одинаковое количество строк? Это более важно, чем размер данных для миграции.

4. @JeffRamos да, количество строк одинаковое, и да, я имею в виду ГБ.

5. Если вы измеряете размеры базы данных до / после, то, скорее всего, проблема заключается в размере файла журнала транзакций.

Ответ №1:

Попробуйте установить уровень сжатия таблицы. Если в таблице много числовых столбцов, сжатие строк SQL Server аналогично стилю хранения чисел Oracle по умолчанию и должно обеспечить размер хранилища, аналогичный Oracle

Сжатие СТРАНИЦЫ предоставляет дополнительные стратегии сжатия и может дать вам ~ 3-кратное сжатие.

И если в таблице много миллионов строк, используйте кластеризованную таблицу cloumnstore, которая может обеспечить сжатие ~ 10X.

Комментарии:

1. Сжатие страницы работало хорошо, но сжатие строк увеличивало размер данных.