Поделиться через


Мастер импорта неструктурированных файлов в SQL

Область применения: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure

Сведения о содержимом, связанном с мастером импорта и экспорта, см. в разделе "Импорт и экспорт данных" с помощью мастера импорта и экспорта SQL Server.

Мастер импорта неструктурированных файлов позволяет легко скопировать данные из неструктурированного файла (CSV-файл, TXT-файл) в новую таблицу в вашей базе данных. Мастер импорта файлов плоского текста поддерживает файлы, разделенные запятыми, и файлы с фиксированной шириной. В этом обзоре описано, почему нужно использовать этот мастер, как его найти, а также приведен простой пример.

Зачем мне использовать этот мастер?

Этот мастер создан на основе интеллектуальной платформы Program Synthesis using Examples (PROSE) и позволяет улучшить текущий процесс импорта. Для пользователей, которые не обладают глубокими знаниями в предметной области, импорт данных часто представляет собой трудную и утомительную задачу, чреватую ошибками. Процесс импорта значительно упрощается с помощью этого мастера: достаточно выбрать входной файл и уникальное имя таблицы, а остальное сделает платформа PROSE.

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

Необходимые условия

Эта функция доступна в SQL Server Management Studio (SSMS) 17.3 и более поздних версий. Убедитесь, что вы используете последнюю версию. Ее можно найти здесь.

Начало работы

Чтобы открыть мастер импорта неструктурированных файлов, выполните следующие действия.

  1. Откройте SQL Server Management Studio.
  2. Подключитесь к экземпляру ядра СУБД SQL Server или к узлу localhost.
  3. Разверните базы данных, щелкните правой кнопкой мыши базу данных (тестируйте в следующем примере), наведите указатель на задачи и выберите "Импортировать неструктурированный файл " над импортом данных.

Снимок экрана: меню импорта неструктурированных файлов.

Дополнительные сведения о различных функциях мастера см. в следующем руководстве:

Учебник

Для целей этого руководства вы можете использовать свой собственный плоский файл. В противном случае в этом руководстве используется следующий CSV-файл из Excel, который вы можете скопировать. Назовите этот файл example.csv и сохраните его в формате CSV в удобном месте, например на рабочем столе.

Снимок экрана: Excel.

Общие сведения.

  1. Мастер доступа
  2. Указание входного файла
  3. Предварительный просмотр данных
  4. Изменение столбцов
  5. Сводка
  6. Результаты

Шаг 1. Доступ к мастеру и вводной странице

Откройте мастер, как описано здесь.

Первая страница мастера — это страница приветствия. Если вы не хотите снова видеть эту страницу, вы можете выбрать не показывать эту начальную страницу снова.

Снимок экрана: меню

Шаг 2. Указание входного файла

Выберите пункт "Обзор", чтобы выбрать входной файл. По умолчанию мастер ищет файлы в форматах CSV и TXT. PROSE определяет, является ли файл разделенным запятыми или форматом фиксированной ширины независимо от расширения файла.

Новое имя таблицы должно быть уникальным, и мастер не позволяет продолжить работу, если это не так.

Снимок экрана мастера импорта файлов с фиксированной структурой, меню выбора входного файла.

Шаг 3. Предварительный просмотр данных

Мастер открывает окно предварительного просмотра для первых 50 строк данных. Если возникли проблемы, нажмите кнопку "Отмена", в противном случае перейдите на следующую страницу.

Снимок экрана: меню

Шаг 4. Изменение столбцов

Мастер определяет, что он считает правильными именами столбцов, типами данных и т. д. Вот где можно изменить поля, если они неверны (например, тип данных должен быть плавающей, а не int).

Столбцы, в которых обнаруживаются пустые значения, будут иметь установленный флажок "Разрешить значения NULL". Однако, если вы ожидаете значения NULL в столбце и опция "Разрешить Null" не отмечена, здесь вы можете изменить определение таблицы, чтобы разрешить NULL в одном или всех столбцах.

Когда все будет готово, нажмите кнопку "Далее".

Снимок экрана: меню

Шаг 5. Сводка

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

Снимок экрана: меню

Шаг 6. Результаты

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

Снимок экрана: меню

Устранение неполадок

Мастер импорта неструктурированных файлов определяет типы данных на основе первых 200 строк. В сценариях, когда данные в неструктурированном файле не соответствуют автоматически обнаруженным типам данных, во время импорта возникает ошибка. Сообщение об ошибке будет выглядеть следующим образом:

Error inserting data into table. (Microsoft.SqlServer.Prose.Import)
The given value of type String from the data source cannot be converted to type nvarchar of the specified target column. (System.Data)
String or binary data would be truncated. (System.Data)

Тактики устранения этой ошибки:

  • Расширение размеров типов данных на шаге "Изменение столбцов", например длина столбца nvarchar, может компенсировать изменения данных из оставшейся части неструктурированного файла.
  • Включение отчетности об ошибках на этапе "Изменить столбцы", особенно в меньшем объеме, покажет, какие строки в плоском файле содержат данные, которые не подходят выбранным типам данных. Например, в плоском файле, где во второй строке появляется ошибка, при выполнении импорта с отчетом об ошибках с диапазоном в 1 появляется конкретное сообщение об ошибке. Осмотр файла непосредственно на месте позволяет вносить более целенаправленные изменения в типы данных на основе данных в определённых строках.

Снимок экрана ошибки в мастере импорта плоского файла, сообщающего результаты.

Error inserting data into table occurred while inserting rows 1 - 2. (Microsoft.SqlServer.Prose.Import)
The given value of type String from the data source cannot be converted to type float of the specified target column. (System.Data)
Failed to convert parameter value from a String to a Double. (System.Data)

В настоящее время импортер использует кодировку на основе активной кодовой страницы системы. На большинстве компьютеров по умолчанию используется ANSI.

Дополнительные сведения о мастере.