Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Это важно
Эта функция доступна в бета-версии. Администраторы рабочей области могут управлять доступом к этой функции на странице "Предварительные версии ". См. Управление предварительными версиями Azure Databricks.
:::note Соответствие
Соединитель SharePoint поддерживает использование в рабочих областях с включенными параметрами Configure расширенной безопасности и соответствия требованиям.
:::
Вы можете получать структурированные, полуструктурированные и неструктурированные файлы из Microsoft SharePoint в таблицы Delta. Соединитель SharePoint поддерживает добавочное прием файлов SharePoint с помощью API пакетной и потоковой передачи, включая автозагрузчик, spark.read и COPY INTO, все с управлением каталогом Unity.
Выберите ваш соединитель SharePoint
Lakeflow Connect предлагает два дополнительных соединителя SharePoint. Они оба получают доступ к данным в SharePoint, но поддерживают разные цели.
| Рассмотрение | Управляемый соединитель SharePoint | Стандартный соединитель SharePoint |
|---|---|---|
| Управление и настройка | Полностью управляемый соединитель. Простые, малозатратные в обслуживании соединители для корпоративных приложений, которые загружают данные в Delta-таблицы и поддерживают их синхронизацию с источником. См. раздел "Управляемые соединители" в Lakeflow Connect. |
Создавайте настраиваемые конвейеры приема с помощью SQL, PySpark или декларативных конвейеров Lakeflow Spark, используя пакетные и потоковые API, такие как read_files, spark.read, COPY INTO и автозагрузчик.Обеспечивает гибкость для выполнения сложных преобразований во время загрузки, возлагая на вас большую ответственность за управление и обслуживание пайплайнов. |
| Формат вывода | Единая таблица двоичного содержимого. Загрузка каждого файла в двоичном формате (один файл на строку) вместе с метаданными файла дополнительные столбцы. |
Структурированные разностные таблицы. Прием структурированных файлов (например, CSV и Excel) в виде разностных таблиц. Также может быть использовано для приема неструктурированные файлы в двоичном формате. |
| Детализация, фильтрация и выбор | На сегодняшний день функция выбора вложенных папок или уровня файла недоступна. Фильтрация на основе шаблонов отсутствует. Прием всех файлов в указанной библиотеке документов SharePoint. |
Детализированный и настраиваемый. Выбор с использованием URL-адресов для получения из библиотек документов, вложенных папок или отдельных файлов. Кроме того, поддерживает фильтрацию на основе шаблонов с помощью pathGlobFilter параметра. |
Ключевые особенности
Стандартный соединитель SharePoint предлагает:
- Прием структурированных, полуструктурированных и неструктурированных файлов
- Гранулированная загрузка: загрузка определенного сайта, под-сайта, библиотеки документов, папки или одного файла
- Прием пакетной и потоковой передачи с использованием
spark.read, Автозагрузчика иCOPY INTO - Автоматическое вывод схемы и эволюция для структурированных и полуструктурированных форматов, таких как CSV и Excel
- Безопасное хранение учетных данных через интеграцию с каталогом Unity
- Выбор файла с сопоставлением шаблонов с помощью
pathGlobFilter
Требования
Чтобы получить файлы из SharePoint, необходимо следующее:
- Рабочая область с включённым каталогом Unity.
-
CREATE CONNECTIONпривилегии для создания подключения SharePoint или соответствующего привилегии для использования существующего на основе режима доступа кластера:- Выделенный режим доступа:
MANAGE CONNECTION. - Стандартный режим доступа:
USE CONNECTION.
- Выделенный режим доступа:
- Вычисления, использующие Databricks Runtime версии 17.3 LTS или более поздней.
- Проверка подлинности OAuth настроена с помощью области
Sites.Read.Allили области разрешенийSites.Selected. - Функция бета-версии SharePoint включена на странице Previews. См. Управление предварительными версиями Azure Databricks.
- Необязательно. Включите функцию Excel бета-версии для синтаксического анализа файлов Excel. См. раздел Read Excel files.
Создание подключения
Создайте подключение каталога Unity для хранения учетных данных SharePoint. Процесс установки подключения используется как между стандартными, так и управляемыми соединителями SharePoint.
Полные инструкции по настройке подключения, включая параметры проверки подлинности OAuth, см. в разделе Overview установки приема SharePoint.
Чтение файлов из SharePoint
Чтобы прочитать файлы, передайте соединение, созданное с помощью параметра databricks.connection, и URL-адрес, указывающий на ресурс SharePoint, к которому требуется получить доступ. Указанный URL-адрес определяет область приема.
Следующие типы путей поддерживаются в Databricks Runtime 17.3 LTS и более поздних версиях:
| Тип пути | Description |
|---|---|
| Site | Скопируйте URL-адрес сайта из адресной строки.https://mytenant.sharepoint.com/sites/test-site |
| Подсайт | Скопируйте URL-адрес дочернего сайта из адресной строки.https://mytenant.sharepoint.com/sites/test-site/test-subsite |
| Библиотека документов | Откройте библиотеку из содержимого сайта и скопируйте URL-адрес из адресной строки.https://mytenant.sharepoint.com/sites/test-site/Shared%20Documentshttps://mytenant.sharepoint.com/sites/test-site/custom-drive |
| Folder | Откройте папку из содержимого сайта и скопируйте URL-адрес из адресной строки. Кроме того, откройте область Details в SharePoint и щелкните значок копирования рядом с Path.https://mytenant.sharepoint.com/sites/test-site/Shared%20Documents/Forms/AllItems.aspx?id=%2Fsites...https://mytenant.sharepoint.com/sites/test-site/custom-drive/test-folder |
| Файл | Выберите файл, щелкните меню переполнения (...) и выберите "Предварительный просмотр". Скопируйте URL-адрес из адресной строки. Кроме того, откройте область Details в SharePoint и щелкните значок копирования рядом с Path.https://mytenant.sharepoint.com/sites/test-site/Shared%20Documents/Forms/AllItems.aspx?viewid=1a2b3c...https://mytenant.sharepoint.com/sites/test-site/custom-drive/test-folder/test.csv |
Databricks Runtime 18.3 и более поздних версий добавляет поддержку следующих типов путей:
| Тип пути | Description |
|---|---|
| Tenant | Скопируйте корневой URL-адрес клиента из адресной строки.https://mytenant.sharepoint.com |
| Вложенный подсайт | Скопируйте URL-адрес дочернего сайта из адресной строки.https://mytenant.sharepoint.com/sites/test-site/subsite/nested-subsite/nested-nested-subsite |
| Ссылка для обмена | Выберите файл или папку, щелкните меню переполнения (...) и выберите ссылку "Копировать". Databricks рекомендует установить ссылку общего доступа, чтобы она не истекала.https://mytenant.sharepoint.com/:i:/s/test-site/1A2B3C4D5E6F7G8H9I |
| Microsoft 365 для Интернета (ранее — Office) | Откройте файл в Microsoft 365 для Интернета и скопируйте URL-адрес из адресной строки.https://mytenant.sharepoint.com/:x:/r/sites/test-site/_layouts/15/Doc.aspx?sourcedoc=%1A2B... |
Примеры
Существует несколько способов чтения файлов с помощью стандартного соединителя SharePoint.
Stream SharePoint файлы с помощью автозагрузчика
Автозагрузчик предоставляет наиболее эффективный способ добавочного приема структурированных файлов из SharePoint. Он автоматически обнаруживает новые файлы и обрабатывает их по мере их поступления. Он также может получать структурированные и полуструктурированные файлы, такие как CSV и JSON с автоматическим выводом схемы и эволюцией. Дополнительные сведения об использовании автозагрузчика см. в общих шаблонах загрузки данных.
# Incrementally ingest new PDF files
df = (spark.readStream.format("cloudFiles")
.option("cloudFiles.format", "binaryFile")
.option("databricks.connection", "my_sharepoint_conn")
.option("cloudFiles.schemaLocation", <path to a schema location>)
.option("pathGlobFilter", "*.pdf")
.load("https://mytenant.sharepoint.com/sites/Marketing/Shared%20Documents")
)
# Incrementally ingest CSV files with automatic schema inference and evolution
df = (spark.readStream.format("cloudFiles")
.option("cloudFiles.format", "csv")
.option("databricks.connection", "my_sharepoint_conn")
.option("pathGlobFilter", "*.csv")
.option("inferColumnTypes", True)
.option("header", True)
.load("https://mytenant.sharepoint.com/sites/Engineering/Data/IoT_Logs")
)
Read SharePoint файлы с помощью пакетного чтения Spark
В следующем примере показано, как загружать файлы SharePoint в Python с помощью функции spark.read.
# Read unstructured data as binary files
df = (spark.read
.format("binaryFile")
.option("databricks.connection", "my_sharepoint_conn")
.option("recursiveFileLookup", True)
.option("pathGlobFilter", "*.pdf") # optional. Example: only ingest PDFs
.load("https://mytenant.sharepoint.com/sites/Marketing/Shared%20Documents"))
# Read a batch of CSV files, infer the schema, and load the data into a DataFrame
df = (spark.read
.format("csv")
.option("databricks.connection", "my_sharepoint_conn")
.option("pathGlobFilter", "*.csv")
.option("recursiveFileLookup", True)
.option("inferSchema", True)
.option("header", True)
.load("https://mytenant.sharepoint.com/sites/Engineering/Data/IoT_Logs"))
# Read a specific Excel file from SharePoint, infer the schema, and load the data into a DataFrame
df = (spark.read
.format("excel")
.option("databricks.connection", "my_sharepoint_conn")
.option("headerRows", 1) # optional
.option("dataAddress", "Sheet1!A1:M20") # optional
.load("https://mytenant.sharepoint.com/sites/Finance/Shared%20Documents/Monthly/Report-Oct.xlsx"))
Read SharePoint файлы с помощью Spark SQL
В следующем примере показано, как принять SharePoint файлы в SQL с помощью функции read_files табличное значение. Дополнительные сведения об использовании read_files см. в read_files функции, возвращающей таблицу.
-- Read pdf files
CREATE TABLE my_table AS
SELECT * FROM read_files(
"https://mytenant.sharepoint.com/sites/Marketing/Shared%20Documents",
`databricks.connection` => "my_sharepoint_conn",
format => "binaryFile",
pathGlobFilter => "*.pdf", -- optional. Example: only ingest PDFs
schemaEvolutionMode => "none"
);
-- Read a specific Excel sheet and range
CREATE TABLE my_sheet_table AS
SELECT * FROM read_files(
"https://mytenant.sharepoint.com/sites/Finance/Shared%20Documents/Monthly/Report-Oct.xlsx",
`databricks.connection` => "my_sharepoint_conn",
format => "excel",
headerRows => 1, -- optional
dataAddress => "Sheet1!A2:D10", -- optional
schemaEvolutionMode => "none"
);
Инкрементный прием с COPY INTO
COPY INTO обеспечивает идемпотентную инкрементную загрузку файлов в таблицу Delta. Дополнительные сведения об использовании см. в COPY INTOстандартных шаблонах загрузки данных с помощью COPY INTO.
CREATE TABLE IF NOT EXISTS sharepoint_pdf_table;
CREATE TABLE IF NOT EXISTS sharepoint_csv_table;
CREATE TABLE IF NOT EXISTS sharepoint_excel_table;
# Incrementally ingest new PDF files
COPY INTO sharepoint_pdf_table
FROM "https://mytenant.sharepoint.com/sites/Marketing/Shared%20Documents"
FILEFORMAT = BINARYFILE
PATTERN = '*.pdf'
FORMAT_OPTIONS ('databricks.connection' = 'my_sharepoint_conn')
COPY_OPTIONS ('mergeSchema' = 'true');
# Incrementally ingest CSV files with automatic schema inference and evolution
COPY INTO sharepoint_csv_table
FROM "https://mytenant.sharepoint.com/sites/Engineering/Data/IoT_Logs"
FILEFORMAT = CSV
PATTERN = '*.csv'
FORMAT_OPTIONS ('databricks.connection' = 'my_sharepoint_conn', 'header' = 'true', 'inferSchema' = 'true')
COPY_OPTIONS ('mergeSchema' = 'true');
# Ingest a single Excel file
COPY INTO sharepoint_excel_table
FROM "https://mytenant.sharepoint.com/sites/Finance/Shared%20Documents/Monthly/Report-Oct.xlsx"
FILEFORMAT = EXCEL
FORMAT_OPTIONS ('databricks.connection' = 'my_sharepoint_conn', 'headerRows' = '1')
COPY_OPTIONS ('mergeSchema' = 'true');
Ingest-файлы SharePoint в декларативных конвейерах Spark Lakeflow
Замечание
Соединитель SharePoint требует Databricks Runtime 17.3 или более поздней версии. Чтобы использовать соединитель, установите "CHANNEL" = "PREVIEW" в настройках конвейера. Дополнительные сведения о предварительных версиях см. в справочнике по свойствам конвейера.
В следующих примерах показано, как считывать файлы SharePoint с помощью автозагрузчика в Декларативных конвейерах Spark Lakeflow.
Python
from pyspark import pipelines as dp
# Incrementally ingest new PDF files
@dp.table
def sharepoint_pdf_table():
return (spark.readStream.format("cloudFiles")
.option("cloudFiles.format", "binaryFile")
.option("databricks.connection", "my_sharepoint_conn")
.option("pathGlobFilter", "*.pdf")
.load("https://mytenant.sharepoint.com/sites/Marketing/Shared%20Documents")
)
# Incrementally ingest CSV files with automatic schema inference and evolution
@dp.table
def sharepoint_csv_table():
return (spark.readStream.format("cloudFiles")
.option("cloudFiles.format", "csv")
.option("databricks.connection", "my_sharepoint_conn")
.option("pathGlobFilter", "*.csv")
.option("inferColumnTypes", True)
.option("header", True)
.load("https://mytenant.sharepoint.com/sites/Engineering/Data/IoT_Logs")
)
# Read a specific Excel file from SharePoint in a materialized view
@dp.table
def sharepoint_excel_table():
return (spark.read.format("excel")
.option("databricks.connection", "my_sharepoint_conn")
.option("headerRows", 1) # optional
.option("inferColumnTypes", True) # optional
.option("dataAddress", "Sheet1!A1:M20") # optional
.load("https://mytenant.sharepoint.com/sites/Finance/Shared%20Documents/Monthly/Report-Oct.xlsx")
SQL
-- Incrementally ingest new PDF files
CREATE OR REFRESH STREAMING TABLE sharepoint_pdf_table
AS SELECT * FROM STREAM read_files(
"https://mytenant.sharepoint.com/sites/Marketing/Shared%20Documents",
format => "binaryFile",
`databricks.connection` => "my_sharepoint_conn",
pathGlobFilter => "*.pdf");
-- Incrementally ingest CSV files with automatic schema inference and evolution
CREATE OR REFRESH STREAMING TABLE sharepoint_csv_table
AS SELECT * FROM STREAM read_files(
"https://mytenant.sharepoint.com/sites/Engineering/Data/IoT_Logs",
format => "csv",
`databricks.connection` => "my_sharepoint_conn",
pathGlobFilter => "*.csv",
"header", "true");
-- Read a specific Excel file from SharePoint in a materialized view
CREATE OR REFRESH MATERIALIZED VIEW sharepoint_excel_table
AS SELECT * FROM read_files(
"https://mytenant.sharepoint.com/sites/Finance/Shared%20Documents/Monthly/Report-Oct.xlsx",
`databricks.connection` => "my_sharepoint_conn",
format => "excel",
headerRows => 1, -- optional
dataAddress => "Sheet1!A2:D10", -- optional
`cloudFiles.schemaEvolutionMode` => "none"
);
Анализ неструктурированных файлов
При приеме неструктурированных файлов из SharePoint (например, PDF-файлов, Word документов или PowerPoint файлов) с помощью стандартного соединителя SharePoint с форматом binaryFile содержимое файла хранится в виде необработанных двоичных данных. Чтобы подготовить эти файлы для рабочих нагрузок ИИ, таких как RAG, поиск, классификация или понимание документов, можно проанализировать двоичное содержимое в структурированные, запрашиваемые выходные данные с помощью ai_parse_document.
В следующем примере показано, как проанализировать неструктурированные документы, хранящиеся в бронзовой таблице Delta с именем documents, добавив новый столбец с проанализированным содержимым:
CREATE TABLE documents AS
SELECT * FROM read_files(
"https://mytenant.sharepoint.com/sites/Marketing/Shared%20Documents",
`databricks.connection` => "my_sharepoint_conn",
format => "binaryFile",
pathGlobFilter => "*.{pdf,docx}",
schemaEvolutionMode => "none"
);
SELECT *, ai_parse_document(content) AS parsed_content
FROM documents;
Столбец parsed_content содержит извлеченный текст, таблицы, сведения о макете и метаданные, которые можно непосредственно использовать для последующих этапов ИИ-конвейера.
Инкрементный синтаксический анализ с использованием декларативных конвейеров Lakeflow Spark
Вы также можете использовать ai_parse_document в декларативных конвейерах Lakeflow Spark для включения инкрементного синтаксического анализа. В качестве потока новых файлов из SharePoint они автоматически анализируются в качестве обновлений конвейера.
Например, можно определить материализованное представление, которое постоянно анализирует недавно обработанные документы:
CREATE OR REFRESH STREAMING TABLE sharepoint_documents_table
AS SELECT * FROM STREAM read_files(
"https://mytenant.sharepoint.com/sites/Marketing/Shared%20Documents",
format => "binaryFile",
`databricks.connection` => "my_sharepoint_conn",
pathGlobFilter => "*.{pdf,docx}");
CREATE OR REFRESH MATERIALIZED VIEW documents_parsed
AS
SELECT *, ai_parse_document(content) AS parsed_content
FROM sharepoint_documents_table;
Такой подход гарантирует следующее:
- Новые SharePoint файлы анализируются автоматически при обновлении материализованного представления.
- Выходные данные остаются в синхронизации с входящими данными
- Нисходящие конвейеры ИИ всегда работают с актуальными представлениями документов.
Дополнительные сведения: сведения о поддерживаемых форматах и дополнительных параметрах см. в ai_parse_document .
Ограничения
Стандартный соединитель SharePoint имеет следующие ограничения.
- Нет многосайтового ввода данных: вы не можете вводить данные с нескольких сайтов с одним и тем же запросом. Чтобы выполнить выборку из двух узлов, необходимо написать два отдельных запроса.
-
Фильтрация: можно использовать
pathGlobFilterпараметр для фильтрации файлов по имени. Фильтрация на основе пути к папке не поддерживается. - форматы Unsupported: SharePoint Списки и страницы сайта .aspx не поддерживаются. Поддерживаются только файлы в библиотеках документов.
- Обратная запись на сервер SharePoint не поддерживается.
- Автозагрузчик
cleanSource(удаление или архивация файлов в источнике после приема) не поддерживается.
Дальнейшие шаги
- Узнайте о Автозагрузчике для расширенных шаблонов приема потоковых данных
- Исследуйте COPY INTO для идемпотентных добавочных нагрузок
- Сравните с шаблонами загрузки в облачное объектное хранилище
- Настройте планирование заданий для автоматизации рабочих процессов интеграции
- Использование декларативных конвейеров Spark Lakeflow для создания сквозных конвейеров данных с помощью преобразований