Это требует нескольких шагов, чтобы заставить его работать успешно. В качестве предварительных условий вам необходимо убедиться, что SQL Server 2019 обновлен до CU4 (KB4548597).), чтобы исправить несколько известных проблем. Для бесплатного решения вам потребуется установить 64-разрядную версию Распространяемый компонент Microsoft Access Database Engine 2016. Это установит 64-разрядную версию драйверов ODBC.
С этими двумя вещами теперь вы можете создать внешний источник данных. Я рекомендую отключить PUSHDOWN
. Я видел, что это вызывает некоторые проблемы с этим конкретным драйвером.
Если вы хотите напрямую подключиться к CSV-файлу, содержащему строку заголовка, вы можете создать внешний источник данных, просто указав текстовый драйвер Access и папку, которая будет содержать файлы:
CREATE EXTERNAL DATA SOURCE MyODBC
WITH
(
LOCATION = 'odbc://localhost',
CONNECTION_OPTIONS = 'Driver=Microsoft Access Text Driver (*.txt, *.csv);Dbq=F:\data\files\',
PUSHDOWN = OFF
);
Чтобы использовать источник данных, необходимо создать определение внешней таблицы, отражающее формат файла. Параметр LOCATION
будет именем загружаемого файла. Вы можете заключить имя файла и имя драйвера в фигурные скобки, чтобы избежать проблем со специальными символами. Важно убедиться, что имена столбцов, которые вы определяете для этой таблицы, совпадают с именами в строке заголовка. Поскольку вы используете CU4, если тип данных не соответствует ожиданиям драйвера, вы получите сообщение об ошибке, указывающее, какие типы данных ожидаются.
CREATE EXTERNAL TABLE dbo.CsvData
(
Name nvarchar(128),
Count int,
Description nvarchar(255)
)
WITH
(
LOCATION='[filename.csv]',
DATA_SOURCE = [MyODBC]
)
Если вы хотите определить имена столбцов, типы данных и т. д., в пользовательском интерфейсе Источники данных ODBC (64-разрядная версия) выберите Текстовый драйвер Microsoft Access. Затем вы можете выбрать папку, типы файлов и определение формата текстового файла. Обязательно используйте 64-битные источники данных. Как только вы закончите определение деталей формата, вы увидите, что в папке создается файл schema.ini
, содержащий эти детали.
Для внешнего источника данных вы укажете имя DSN:
CREATE EXTERNAL DATA SOURCE MyODBC
WITH
(
LOCATION = 'odbc://localhost',
CONNECTION_OPTIONS = 'DSN=LocalCSV',
PUSHDOWN = OFF
);
EXTERNAL TABLE
создается так же, как и раньше, с именами столбцов и типами данных, соответствующими определению, объявленному вами в DSN.
person
Ken Muse
schedule
10.04.2020