Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Belangrijk
Deze functie bevindt zich in de bètaversie. Werkruimtebeheerders kunnen de toegang tot deze functie beheren vanaf de pagina Previews . Zie Azure Databricks-previews beheren.
:::opmerking Naleving
De SharePoint-connector ondersteunt het gebruik in werkruimten met de Verbeterde beveiligings- en nalevingsinstellingen configureren ingeschakeld.
:::
U kunt gestructureerde, semi-gestructureerde en ongestructureerde bestanden uit Microsoft SharePoint opnemen in Delta-tabellen. De SharePoint-connector ondersteunt incrementele opname van SharePoint bestanden met behulp van batch- en streaming-API's, waaronder AutoLoader, spark.read en COPY INTO, allemaal met Unity Catalog-governance.
Kies uw SharePoint-connector
Lakeflow Connect biedt twee aanvullende SharePoint connectors. Ze hebben beide toegang tot gegevens in SharePoint, maar ze ondersteunen afzonderlijke doelen.
| Overweging | Beheerde SharePoint-connector | Standard SharePoint-connector |
|---|---|---|
| Beheer en aanpassing | Een volledig beheerde connector. Eenvoudige connectors met weinig onderhoud voor bedrijfstoepassingen die gegevens opnemen in Delta-tabellen en deze gesynchroniseerd houden met de bron. Zie Managed connectors in Lakeflow Connect. |
Bouw aangepaste opnamepijplijnen met SQL, PySpark of Lakeflow Spark-declaratieve pijplijnen met behulp van batch- en streaming-API's zoalsread_files, spark.readCOPY INTOen Automatisch laden.Biedt de flexibiliteit om tijdens invoer complexe transformaties uit te voeren, terwijl u meer verantwoordelijkheid hebt voor het beheren en onderhouden van uw datapijplijnen. |
| Uitvoerindeling | Tabel met uniforme binaire inhoud. Neemt elk bestand op in binaire indeling (één bestand per rij), samen met metagegevens van bestanden in extra kolommen. |
Gestructureerde Delta-tabellen. Hiermee worden gestructureerde bestanden (zoals CSV en Excel) opgenomen als Delta-tabellen. Kan ook worden gebruikt om op te nemen ongestructureerde bestanden in binaire indeling. |
| Granulariteit, filteren en selectie | Vandaag is er geen selectie van submappen of bestanden. Geen filter op basis van een patroon. Hiermee worden alle bestanden opgenomen in de opgegeven SharePoint documentbibliotheek. |
Granulair en aangepast. Selectie op basis van URL's om te importeren uit documentbibliotheken, submappen of afzonderlijke bestanden. Ondersteunt ook filteren op basis van patronen met behulp van de pathGlobFilter optie. |
Belangrijkste kenmerken
De standaard SharePoint connector biedt:
- Opname van gestructureerde, semi-gestructureerde en ongestructureerde bestanden
- Granulaire inname: een specifieke site, een subsite, een documentbibliotheek, een map of één bestand opnemen
- Batch- en streamingopname met behulp van
spark.read, Automatisch laden enCOPY INTO - Automatische schemadeductie en evolutie voor gestructureerde en semi-gestructureerde indelingen zoals CSV en Excel
- Beveiligde opslag van inloggegevens met een Unity Catalog-verbinding
- Bestandsselectie met patroonkoppeling met behulp van
pathGlobFilter
Requirements
Als u bestanden uit SharePoint wilt opnemen, moet u het volgende hebben:
- Een werkruimte waarvoor Unity Catalog is ingeschakeld.
-
CREATE CONNECTIONbevoegdheden voor het maken van een SharePoint verbinding of de juiste bevoegdheid om een bestaande te gebruiken op basis van uw clustertoegangsmodus:- Toegewezen toegangsmodus:
MANAGE CONNECTION. - Standaardtoegangsmodus:
USE CONNECTION.
- Toegewezen toegangsmodus:
- Compute die gebruikmaakt van Databricks Runtime versie 17.3 LTS of hoger.
- OAuth-verificatie ingesteld met het machtigingsbereik
Sites.Read.AllofSites.Selected. - De SharePoint bètafunctie is ingeschakeld op de pagina Voorbeelden. Zie Azure Databricks-previews beheren.
- Optioneel: schakel de functie Excel Bèta in voor het parseren van Excel bestanden. Zie Read Excel files.
De verbinding maken
Maak een Unity Catalog-verbinding om uw SharePoint referenties op te slaan. Het installatieproces voor verbindingen wordt gedeeld tussen zowel de standaard- als de beheerde SharePoint-connectors.
Zie Overzicht van de installatie van SharePoint-invoer voor volledige instructies voor het instellen van verbindingen, waaronder OAuth-authenticatieopties.
Bestanden lezen van SharePoint
Als u bestanden uit SharePoint wilt lezen met behulp van Spark, geeft u de verbinding op die u in de vorige stap hebt gemaakt met behulp van de optie databricks.connection gegevensbron en geeft u de URL op van de SharePoint resource die u wilt openen. Deze URL kan verwijzen naar een specifiek bestand, een map, een documentbibliotheek (drive) of een hele site. Voorbeelden zijn:
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
Voorbeelden
Er zijn een aantal manieren om bestanden te lezen met behulp van de standaardconnector SharePoint.
Stream SharePoint-bestanden met behulp van autolaadprogramma
Auto Loader biedt de meest efficiënte manier om gestructureerde bestanden incrementeel op te nemen uit SharePoint. Er worden automatisch nieuwe bestanden gedetecteerd en verwerkt deze zodra ze binnenkomen. Het kan ook gestructureerde en semi-gestructureerde bestanden zoals CSV en JSON opnemen met automatische schemadeductie en evolutie. Zie Algemene patronen voor het laden van gegevens voor meer informatie over het gebruik van automatisch laadprogramma's.
# 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")
)
Lees SharePoint-bestanden met Spark-batchlezen
In het volgende voorbeeld ziet u hoe u SharePoint bestanden opneemt in Python met behulp van de functie 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-bestanden met Spark SQL
In het volgende voorbeeld ziet u hoe u SharePoint bestanden in SQL opneemt met behulp van de functie read_files tabelwaarde. Zie de tabelwaardige functie voor meer informatie over het gebruik van read_filesread_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"
);
Incrementele opname met COPY INTO
COPY INTO biedt idempotente incrementele bestandsoverdracht in een Delta-tabel. Voor details over COPY INTO gebruik, zie Algemene patronen voor het laden van gegevens met behulp van 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');
Laad SharePoint-bestanden in declaratieve Lakeflow Spark-pijplijnen
Opmerking
Voor de SharePoint-connector is Databricks Runtime 17.3 of hoger vereist. Als u de connector wilt gebruiken, stelt u "CHANNEL" = "PREVIEW" in uw pijplijninstellingen in. Zie De referentie voor pijplijneigenschappen voor meer informatie over previews.
In de volgende voorbeelden ziet u hoe u SharePoint bestanden leest met behulp van Auto Loader in Lakeflow Spark-declaratieve pijplijnen.
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"
);
Ongestructureerde bestanden parseren
Bij het importeren van ongestructureerde bestanden uit SharePoint (zoals PDF-bestanden, Word-documenten of PowerPoint-bestanden) met de standaard SharePoint-connector in binaryFile-formaat, wordt de bestandsinhoud opgeslagen als onbewerkte binaire gegevens. Als u deze bestanden wilt voorbereiden voor AI-workloads, zoals RAG, zoeken, classificatie of documentbegrip, kunt u de binaire inhoud parseren in gestructureerde, doorzoekbare uitvoer met behulp van ai_parse_document.
In het volgende voorbeeld ziet u hoe u ongestructureerde documenten kunt parseren die zijn opgeslagen in een bronzen Delta-tabel met de naam documents, waarbij een nieuwe kolom met geparseerde inhoud wordt toegevoegd:
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;
De parsed_content kolom bevat geëxtraheerde tekst, tabellen, indelingsgegevens en metagegevens die rechtstreeks kunnen worden gebruikt voor downstream AI-pijplijnen.
Incrementeel parseren met Lakeflow Spark-declaratieve pijplijnen
U kunt ook declaratieve pijplijnen van Lakeflow Spark gebruiken ai_parse_document om incrementele parsering in te schakelen. Wanneer nieuwe bestanden vanuit SharePoint binnenkomen, worden ze automatisch verwerkt terwijl uw pijplijn geüpdatet wordt.
U kunt bijvoorbeeld een gerealiseerde weergave definiëren waarmee nieuw opgenomen documenten continu worden geparseerd:
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;
Deze aanpak zorgt ervoor dat:
- Nieuw opgenomen SharePoint bestanden worden automatisch geparseerd wanneer de gerealiseerde weergave wordt vernieuwd
- Geparseerde uitvoer blijft gesynchroniseerd met binnenkomende gegevens
- Downstream AI-pijplijnen werken altijd met actuele documentweergaven
Meer informatie: Zie ai_parse_document voor ondersteunde indelingen en geavanceerde opties.
Beperkingen
De standaardconnector SharePoint heeft de volgende beperkingen.
- Geen opname van meerdere sites: u kunt niet meerdere sites opnemen met dezelfde query. Als u gegevens van twee sites wilt opnemen, moet u twee afzonderlijke query's schrijven.
-
Filteren: U kunt de
pathGlobFilteroptie gebruiken om bestanden op naam te filteren. Filteren op basis van mappaden wordt niet ondersteund. - Niet-ondersteunde indelingen: SharePoint lijsten en .aspx sitepagina's worden niet ondersteund. Alleen bestanden in documentbibliotheken worden ondersteund.
- Terugschrijven naar een SharePoint-server wordt niet ondersteund.
- Automatisch laden
cleanSource(bestanden bij de bron verwijderen of archiveren na opname) wordt niet ondersteund.
Volgende stappen
- Meer informatie over Auto Loader voor geavanceerde streamingingestiepatronen
- Onderzoek COPY INTO voor idempotente incrementele ladingen
- Vergelijken met gegevensinvoerpatronen voor cloudobjectopslag
- Stel taakplanning in om uw invoerwerkstromen te automatiseren
- Declaratieve pijplijnen van Lakeflow Spark gebruiken om end-to-end gegevenspijplijnen te bouwen met transformaties