Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Important
Le connecteur SharePoint standard est en version bêta. Les administrateurs d’espace de travail peuvent contrôler l’accès à cette fonctionnalité à partir de la page Aperçus . Consultez Gérer les préversions d’Azure Databricks.
Découvrez comment ingérer des fichiers structurés, semi-structurés et non structurés de Microsoft SharePoint dans des tables Delta. Le connecteur SharePoint prend en charge l’ingestion incrémentielle de fichiers SharePoint à l’aide d’API de traitement par lots et de diffusion en continu, y compris Auto Loader, spark.read et COPY INTO, toutes étant régies par Unity Catalog.
Choisir votre connecteur SharePoint
Lakeflow Connect offre deux connecteurs SharePoint complémentaires. Ils accèdent tous deux aux données dans SharePoint, mais ils prennent en charge des objectifs distincts.
| Considération | Connecteur SharePoint managé | Connecteur SharePoint standard |
|---|---|---|
| Gestion et personnalisation | Connecteur complètement managé. Connecteurs simples et à faible maintenance pour les applications d’entreprise qui ingèrent des données dans des tables Delta et les conservent synchronisées avec la source. Consultez Connecteurs gérés dans Lakeflow Connect. |
Créez des pipelines d’ingestion personnalisés avec SQL, PySpark ou des pipelines déclaratifs Lakeflow Spark, en utilisant des API de traitement par lots et de diffusion en continu telles que read_files, spark.read, COPY INTO, et Auto Loader.Offre la possibilité d’effectuer des transformations complexes pendant l’ingestion, tout en vous donnant une plus grande responsabilité pour la gestion et la maintenance de vos pipelines. |
| Format de sortie | Table de contenu binaire uniforme. Ingère chaque fichier au format binaire (un fichier par ligne), ainsi que les métadonnées de fichier dans colonnes supplémentaires. |
Tables Delta structurées. Ingestion de fichiers structurés (comme CSV et Excel) en tant que tables Delta. Peut également être utilisé pour ingérer fichiers non structurés au format binaire. |
| Granularité, filtrage et sélection | Aujourd’hui, aucune sélection au niveau des sous-dossiers ou des fichiers. Aucun filtrage basé sur des modèles. Ingère tous les fichiers dans la bibliothèque de documents SharePoint spécifiée. |
Granulaire et personnalisé. Sélection basée sur l’URL à ingérer à partir de bibliothèques de documents, de sous-dossiers ou de fichiers individuels. Prend également en charge le filtrage basé sur des modèles à l’aide de l’option pathGlobFilter . |
Fonctionnalités clés
Le connecteur SharePoint standard offre les fonctionnalités suivantes :
- Ingestion de fichiers structurés, semi-structurés et non structurés
- Ingestion granulaire : ingérer un site spécifique, un sous-site, une bibliothèque de documents, un dossier ou un seul fichier
- Ingestion par lots et en flux à l'aide de
spark.read, du chargeur automatique, et deCOPY INTO - Inférence de schéma automatique et évolution pour les formats structurés et semi-structurés tels que CSV et Excel
- Sécuriser le stockage des informations d’identification avec une connexion de catalogue Unity
- Sélection de fichiers avec correspondance de modèle à l’aide de
pathGlobFilter
Spécifications
Pour ingérer des fichiers à partir de SharePoint, vous devez disposer des éléments suivants :
- Un espace de travail avec le catalogue Unity activé
-
CREATE CONNECTIONprivilèges pour créer une connexion SharePoint (ouUSE CONNECTIONpour utiliser une connexion existante) - Calcul qui utilise Databricks Runtime version 17.3 LTS ou ultérieure
- Authentification OAuth configurée avec la plage d'autorisations
Sites.Read.All - La fonctionnalité Bêta de SharePoint est activée à partir de la page Aperçus . Consultez Gérer les préversions d’Azure Databricks
- Facultatif : activez la fonctionnalité Bêta d’Excel pour analyser les fichiers Excel. Voir Lire les fichiers Excel
Créer la connexion
Créez une connexion de catalogue Unity pour stocker vos informations d’identification SharePoint. Le processus d’installation de la connexion est partagé entre les connecteurs SharePoint standard et gérés.
Pour obtenir des instructions complètes sur la configuration de la connexion, notamment les options d’authentification OAuth, consultez Vue d’ensemble de la configuration de l’ingestion SharePoint.
Lire des fichiers à partir de SharePoint
Pour lire des fichiers à partir de SharePoint à l’aide de Spark, spécifiez la connexion que vous avez créée à l’étape précédente à l’aide de l’option databricks.connection de source de données et fournissez l’URL de la ressource SharePoint à accéder. Cette URL peut faire référence à un fichier spécifique, un dossier, une bibliothèque de documents (lecteur) ou un site entier. Voici quelques exemples :
https://mytenant.sharepoint.com/sites/test-site/https://mytenant.sharepoint.com/sites/test-site/test-subsitehttps://mytenant.sharepoint.com/sites/test-site/test-drivehttps://mytenant.sharepoint.com/sites/test-site/Shared%20Documents/Forms/AllItems.aspxhttps://mytenant.sharepoint.com/sites/test-site/test-drive/test-folderhttps://mytenant.sharepoint.com/sites/test-site/test-drive/test-folder/test.csvhttps://mytenant.sharepoint.com/sites/test-site/another-subsite/another-drive/test.csv
Examples
Recherchez des exemples de code pour lire des fichiers à l’aide du connecteur SharePoint standard.
Diffuser des fichiers SharePoint à l’aide du chargeur automatique
Le chargeur automatique offre le moyen le plus efficace d’ingérer de manière incrémentielle des fichiers structurés à partir de SharePoint. Il détecte automatiquement les nouveaux fichiers et les traite à mesure qu’ils arrivent. Il peut également ingérer des fichiers structurés et semi-structurés tels que CSV et JSON avec l’inférence et l’évolution automatiques du schéma. Pour plus d’informations sur l’utilisation du chargeur automatique, consultez Modèles de chargement de données courants.
# 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")
)
Lire des fichiers SharePoint à l’aide de la lecture par lots Spark
# 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"))
Lire des fichiers SharePoint à l’aide de Spark SQL
L’exemple suivant montre comment ingérer des fichiers SharePoint dans SQL à l’aide read_files de la fonction table. Pour plus d’informations sur read_files l’utilisation, consultez read_files la fonction valeur de table.
-- 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"
);
Ingestion incrémentielle avec COPY INTO
COPY INTO fournit un chargement incrémentiel idempotent de fichiers dans une table Delta. Pour plus d'informations sur l'utilisation de COPY INTO, consultez Modèles de chargement de données courants à l'aide de 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');
Ingérer des fichiers SharePoint dans des pipelines déclaratifs Spark Lakeflow
Note
SharePoint Connector nécessite Databricks Runtime 17.3 ou version ultérieure. Cette option n’est pas encore disponible dans la version des pipelines déclaratifs Spark Lakeflow. Pour voir les versions de Databricks Runtime utilisées avec une version des pipelines déclaratifs Spark Lakeflow, consultez les notes de publication de cette version.
Les exemples suivants montrent comment lire des fichiers SharePoint à l’aide du chargeur automatique dans les pipelines déclaratifs 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"
);
Analyser des fichiers non structurés
Lors de l’ingestion de fichiers non structurés à partir de SharePoint (tels que des fichiers PDF, documents Word ou PowerPoint) à l’aide du connecteur SharePoint standard avec binaryFile format, le contenu du fichier est stocké sous forme de données binaires brutes. Pour préparer ces fichiers pour les charges de travail IA, telles que RAG, la recherche, la classification ou la compréhension des documents, vous pouvez analyser le contenu binaire en sortie structurée et interrogeable à l’aide ai_parse_documentde .
L’exemple suivant montre comment analyser des documents non structurés stockés dans une table Delta bronze nommée documents, en ajoutant une nouvelle colonne avec du contenu analysé :
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;
La parsed_content colonne contient du texte extrait, des tables, des informations de disposition et des métadonnées qui peuvent être utilisées directement pour les pipelines IA en aval.
Analyse incrémentielle avec les pipelines déclaratifs de Spark Lakeflow
Vous pouvez également utiliser ai_parse_document dans les pipelines déclaratifs Spark Lakeflow pour activer l’analyse incrémentielle. À mesure que les nouveaux fichiers sont diffusés à partir de SharePoint, ils sont automatiquement analysés en tant que mises à jour de votre pipeline.
Par exemple, vous pouvez définir une vue matérialisée qui analyse en continu les documents nouvellement ingérés :
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;
Cette approche garantit que :
- Les fichiers SharePoint récemment ingérés sont analysés automatiquement chaque fois que l’affichage matérialisé est actualisé
- Les sorties analysées restent synchronisées avec les données entrantes
- Les pipelines IA en aval fonctionnent toujours sur des représentations de documents à jour
En savoir plus : consultez ai_parse_document pour connaître les formats pris en charge et les options avancées.
Limites
Le connecteur SharePoint standard présente les limitations suivantes :
- Aucune importation multisite : vous ne pouvez pas importer plusieurs sites à l'aide de la même requête. Pour ingérer à partir de deux sites, vous devez écrire deux requêtes distinctes.
-
Filtrage : vous pouvez utiliser l’option
pathGlobFilterpour filtrer les fichiers par nom. Le filtrage basé sur le chemin d’accès au dossier n’est pas pris en charge. - Formats non pris en charge : les listes SharePoint et les pages de site .aspx ne sont pas prises en charge. Seuls les fichiers des bibliothèques de documents sont pris en charge.
- L'écriture sur un serveur SharePoint n'est pas prise en charge.
- Le chargeur
cleanSourceautomatique (suppression ou archivage de fichiers à la source après l’ingestion) n’est pas pris en charge.
Étapes suivantes
- En savoir plus sur le chargeur automatique pour les modèles d’ingestion de streaming avancés
- Découvrez COPY INTO pour des charges incrémentielles idempotentes
- Comparer avec les modèles d’ingestion de stockage d’objets cloud
- Configurer la planification des travaux pour automatiser vos flux de travail d’ingestion
- Utilisez Lakeflow Spark Declarative Pipelines pour créer des pipelines de données de bout en bout avec des transformations