Файлы с разделителями для запросов

Применимо к:✅ Конечная точка аналитики SQL и хранилище в Microsoft Fabric

Из этой статьи вы узнаете, как запрашивать CSV-файлы с помощью Fabric SQL, включая хранилище данных Fabric и конечную точку аналитики SQL. CSV—это часто используемый и гибкий формат данных, но файлы могут значительно отличаться в структуре, что влияет на их запросы.

В примерах в этой статье показано, как запрашивать CSV-файлы, которые отличаются общими характеристиками, в том числе:

  • Файлы с строкой заголовка или без нее
  • Значения, разделенные запятыми и табуляцией
  • Окончания строк Windows (CRLF) и Unix (LF)
  • Цитируемые и нецитируемые значения, включая экранированные символы

Каждый вариант рассматривается в следующих разделах с практическими примерами, в которых показано, как правильно интерпретировать формат файла и возвращать точные результаты при работе с данными CSV в Fabric.

Чтение CSV-файла с помощью OPENROWSET

Самый простой способ проверить содержимое CSV-файла — предоставить URL-адрес файла непосредственно функции OPENROWSET .

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

SELECT TOP 10 *
FROM OPENROWSET(
    BULK 'https://pandemicdatalake.blob.core.windows.net/public/curated/covid-19/ecdc_cases/latest/ecdc_cases.csv',
    HEADER_ROW = TRUE
);

Чтение TSV-файла с помощью OPENROWSET

Вы можете использовать OPENROWSET для чтения файлов с разделяемыми табуляцией значениями (TSV), указав URL-адрес файла напрямую.

Убедитесь, что URL-адрес указывает на правильный файл и заканчивается расширением TSV, чтобы четко указать формат:

SELECT TOP 10 *
FROM OPENROWSET(
    BULK '/Files/curated/covid-19/ecdc_cases/latest/ecdc_cases.tsv'
);

Замечание

В этом примере используется относительный путь без источника данных, который работает при запросе файлов в Lakehouse через конечную точку аналитики SQL. В хранилище данных Fabric необходимо выполнить следующие действия.

  • Используйте абсолютный путь к файлу или
  • Укажите корневой URL-адрес во внешнем источнике данных и сослаться на него в инструкции OPENROWSET .

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

FIELDTERMINATOR = '\t' Используйте параметр в инструкцииOPENROWSET, чтобы указать символ табуляции в качестве разделителя столбцов.

Чтение файла с разделителями с помощью OPENROWSET

OPENROWSET позволяет читать универсальные файлы с разделителями, такие как CSV, TSV или другие текстовые форматы, указав соответствующие разделители и параметры.

SELECT TOP 10 *
FROM OPENROWSET(
    BULK '/Files/covid-19/ecdc_cases/latest/ecdc_cases.txt',
    FORMAT = 'CSV',                -- Use CSV for delimited files
    FIELDTERMINATOR = ';',         -- Column delimiter
    ROWTERMINATOR = '\n',          -- Row delimiter
    FIELDQUOTE = '0x0A',           -- Optional: quote character
    FIRSTROW = 2,                  -- Skip header row
    CODEPAGE = '855'               -- Character encoding
);
  1. Используйте FIELDTERMINATOR и ROWTERMINATOR, чтобы определить разделители столбцов и строк для файла. Эти параметры гарантируют, что запрос правильно интерпретирует структуру данных.
  2. Если файл содержит строку заголовка, которую вы не хотите включить в результаты, используйте FIRSTROW этот параметр, чтобы пропустить его. Этот параметр особенно полезен для файлов, в которых первая строка содержит имена столбцов, а не данные.
  3. Наконец, укажите CODEPAGE для обеспечения правильной кодировки символов. Этот параметр важен при работе с файлами, которые включают специальные символы или используют нестандартные кодировки, так как это гарантирует точную интерпретацию данных.

Замечание

В этом примере используется относительный путь без источника данных, который работает при запросе файлов в Lakehouse через конечную точку аналитики SQL. В хранилище данных Fabric необходимо выполнить следующие действия.

  • Используйте абсолютный путь к файлу или
  • Укажите корневой URL-адрес во внешнем источнике данных и сослаться на него в инструкции OPENROWSET .