Определение байтов поля в Redshift

Я перемещаю таблицу из SQL Server в Redshift. Я экспортировал данные и получил их в текстовый файл UTF-8. При попытке загрузить в Redshift команда COPY не работает, жалуясь, что данные превышают ширину поля.

Схема таблицы Redshift адресата соответствует таблице исходного SQL Server (т.е. ширина поля varchar одинакова). Если я правильно понимаю, размер varchar для Redshift находится в байтах, а не в символах, таких как SQL Server. Таким образом, многобайтовые символы вызывают "слишком широкую" проблему.

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

Как другие решили эту проблему?

1 ответ

В Redshift могут иметь решающее значение длины полей и типы полей последствий. Загрузите данные образца в таблицу RedShift с максимальными размерами полей. Образец должен быть как можно большим. Чем вы сможете рассчитать реальные размеры полей, не обращая внимания на определения в MSSQL Server, которые могут быть намного больше, чем вам действительно нужно.

licensed under cc by-sa 3.0 with attribution.