Mata in filer från SharePoint

Viktigt!

Den här funktionen finns i Beta. Arbetsyteadministratörer kan styra åtkomsten till den här funktionen från sidan Förhandsversioner . Se Hantera Azure Databricks förhandsversioner.

:::note Efterlevnad

SharePoint-anslutningsappen stöder användning i arbetsytor med Konfigurera förbättrade inställningar för säkerhet och efterlevnad aktiverat.

:::

Du kan mata in strukturerade, halvstrukturerade och ostrukturerade filer från Microsoft SharePoint till Delta-tabeller. SharePoint-anslutningsappen stöder inkrementell inmatning av SharePoint filer med hjälp av batch- och direktuppspelnings-API:er, inklusive Auto Loader, spark.read och COPY INTO, allt med styrning av Unity Catalog.

Välj din SharePoint-anslutning

Lakeflow Connect erbjuder två kompletterande SharePoint anslutningsappar. De har båda åtkomst till data i SharePoint, men de stöder distinkta mål.

Att tänka på Hanterad SharePoint-anslutning Standard SharePoint-koppling
Hantering och anpassning En fullt hanterad anslutning.
Enkla anslutningsprogram med lågt underhåll för företagsprogram som matar in data i Delta-tabeller och håller dem synkroniserade med källan. Se Hanterade kontakter i Lakeflow Connect.
Skapa anpassade inmatningspipelines med SQL, PySpark eller Lakeflow Spark deklarativa pipelines med batch- och direktuppspelnings-API:er som read_files, spark.read, COPY INTO och Automatisk inläsning.
Erbjuder flexibiliteten att utföra komplexa omvandlingar under inmatning, samtidigt som du får större ansvar för att hantera och underhålla dina pipelines.
Utdataformat Enhetlig binär innehållstabell. Matar in varje fil i binärt format (en fil per rad), tillsammans med filmetadata i
ytterligare kolumner.
Strukturerade Delta-tabeller. Matar in strukturerade filer (till exempel CSV och Excel) som Delta-tabeller. Kan också användas för att mata in
ostrukturerade filer i binärt format.
Kornighet, filtrering och urval Inget undermapps- eller filnivåval i dag. Ingen mönsterbaserad filtrering.
Läser in alla filer i det angivna SharePoint-dokumentbiblioteket.
Finkornig och anpassad.
URL-baserat val för att importera från dokumentbibliotek, undermappar eller enskilda filer. Stöder även mönsterbaserad filtrering med hjälp av pathGlobFilter alternativet .

Viktiga funktioner

Standard-SharePoint-anslutningsappen erbjuder:

  • Inmatning av strukturerade, halvstrukturerade och ostrukturerade filer
  • Detaljerad inmatning: Mata in en specifik webbplats, en underwebbplats, ett dokumentbibliotek, en mapp eller en enda fil
  • Batch- och strömmande inmatning med spark.read Auto Loader och COPY INTO
  • Automatisk schemainferens och utveckling för strukturerade och halvstrukturerade format som CSV och Excel
  • Skydda lagring av autentiseringsuppgifter med en Anslutning till Unity Catalog
  • Filval med mönstermatchning med hjälp av pathGlobFilter

Kravspecifikation

Om du vill mata in filer från SharePoint måste du ha följande:

  • En arbetsyta med Unity Catalog aktiverat.
  • CREATE CONNECTION behörigheter för att skapa en SharePoint anslutning eller rätt behörighet att använda en befintlig som baseras på ditt cluster-åtkomstläge:
    • Dedikerat åtkomstläge: MANAGE CONNECTION.
    • Standardåtkomstläge: USE CONNECTION.
  • Beräkning som använder Databricks Runtime version 17.3 LTS eller senare.
  • OAuth-autentisering konfigurerad med behörighetsomfånget Sites.Read.All eller Sites.Selected .
  • Funktionen SharePoint Beta är aktiverad från sidan Previews. Se Hantera Azure Databricks förhandsversioner.
  • Valfritt: Aktivera funktionen Excel Beta för att parsa Excel filer. Se Läs Excel filer.

Skapa anslutningen

Skapa en Unity Catalog-anslutning för att lagra dina SharePoint autentiseringsuppgifter. Processen för anslutningsinställningar delas av både standard- och hanterade SharePoint-anslutningar.

Fullständiga installationsinstruktioner för anslutningar, inklusive autentiseringsalternativ för OAuth, finns i Översikt över konfiguration av SharePoint inmatning.

Läs filer från SharePoint

Om du vill läsa filer skickar du anslutningen som du skapade med alternativet databricks.connection och en URL som pekar på den SharePoint resurs som du vill komma åt. Url:en som du anger avgör inmatningens omfattning.

Följande sökvägstyper stöds på Databricks Runtime 17.3 LTS och senare:

Sökvägstyp Description
Site Kopiera webbplats-URL:en från adressfältet.
https://mytenant.sharepoint.com/sites/test-site
Underwebbplats Kopiera underwebbplatsens URL från adressfältet.
https://mytenant.sharepoint.com/sites/test-site/test-subsite
Dokumentbibliotek Öppna biblioteket från webbplatsinnehållet och kopiera URL:en från adressfältet.
https://mytenant.sharepoint.com/sites/test-site/Shared%20Documents
https://mytenant.sharepoint.com/sites/test-site/custom-drive
Folder Öppna mappen från webbplatsinnehållet och kopiera URL:en från adressfältet. Du kan också öppna mappens fönstret Details i SharePoint och klicka på kopieringsikonen bredvid 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
File Välj filen, klicka på spillmenyn (...) och välj Förhandsgranska. Kopiera URL:en från adressfältet. Du kan också öppna filens fönster Details i SharePoint och klicka på kopieringsikonen bredvid 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 och senare lägger till stöd för följande sökvägstyper:

Sökvägstyp Description
Hyresgäst Kopiera klientorganisationens rot-URL från adressfältet.
https://mytenant.sharepoint.com
Kapslad underwebbplats Kopiera underwebbplatsens URL från adressfältet.
https://mytenant.sharepoint.com/sites/test-site/subsite/nested-subsite/nested-nested-subsite
Dela länk Välj filen eller mappen, klicka på spillmenyn (...) och välj Kopiera länk. Databricks rekommenderar att du ställer in resurslänken så att den aldrig upphör att gälla.
https://mytenant.sharepoint.com/:i:/s/test-site/1A2B3C4D5E6F7G8H9I
Microsoft 365 för webben (tidigare Office) Öppna filen i Microsoft 365 för webben och kopiera URL:en från adressfältet.
https://mytenant.sharepoint.com/:x:/r/sites/test-site/_layouts/15/Doc.aspx?sourcedoc=%1A2B...

Examples

Det finns några sätt att läsa filer med hjälp av standardanslutningsappen SharePoint.

Stream SharePoint-filer med Auto Loader (automatisk inläsare)

Automatisk inläsning är det mest effektiva sättet att stegvis mata in strukturerade filer från SharePoint. Den identifierar automatiskt nya filer och bearbetar dem när de tas emot. Den kan också mata in strukturerade och halvstrukturerade filer som CSV och JSON med automatisk schemainferens och utveckling. Mer information om användning av automatisk inläsning finns i Vanliga datainläsningsmönster.

# 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")
)

Läs SharePoint filer med Spark batch read

I följande exempel visas hur du matar in SharePoint filer i Python med hjälp av funktionen 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"))

Läs SharePoint filer med Spark SQL

I följande exempel visas hur du matar in SharePoint filer i SQL med hjälp av funktionen read_files tabellvärde. Mer information om read_files användning finns i read_files tabellvärdesfunktionen.

-- 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"
);

Inkrementell inmatning med COPY INTO

COPY INTO tillhandahåller idempotent inkrementell inläsning av filer i en Delta-tabell. Mer information om COPY INTO användning finns i Vanliga datainläsningsmönster med hjälp av 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-filer i Lakeflow Spark Deklarativa Pipelines

Anmärkning

SharePoint-anslutningsprogrammet kräver Databricks Runtime 17.3 eller senare. Om du vill använda anslutningsappen anger du "CHANNEL" = "PREVIEW" i dina pipelineinställningar. Mer information om förhandsversioner finns i Referens för pipelineegenskaper.

I följande exempel visas hur du läser SharePoint-filer med Auto Loader i Lakeflow Spark deklarativa pipelines.

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"
);

Parsa ostrukturerade filer

När du matar in ostrukturerade filer från SharePoint (till exempel PDF-filer, Word dokument eller PowerPoint filer) med standard-SharePoint-anslutningsappen med binaryFile format lagras filinnehållet som binära rådata. Om du vill förbereda dessa filer för AI-arbetsbelastningar , till exempel RAG, sökning, klassificering eller dokumenttolkning, kan du parsa det binära innehållet i strukturerade, frågebara utdata med hjälp av ai_parse_document.

I följande exempel visas hur du parsar ostrukturerade dokument som lagras i en deltatabell i brons med namnet documentsoch lägger till en ny kolumn med tolkat innehåll:

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;

Kolumnen parsed_content innehåller extraherad text, tabeller, layoutinformation och metadata som kan användas direkt för underordnade AI-pipelines.

Inkrementell parsning med Lakeflow Spark Deklarativa Pipelines

Du kan också använda ai_parse_document i Lakeflow Spark Deklarativa pipelines för att aktivera inkrementell parsning. När nya filer strömmas in från SharePoint parsas de automatiskt som dina pipelineuppdateringar.

Du kan till exempel definiera en materialiserad vy som kontinuerligt parsar nyligen inmatade dokument:

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;

Den här metoden säkerställer att:

  • Nyligen inmatade SharePoint filer parsas automatiskt när den materialiserade vyn uppdateras
  • Parsade utdata är synkroniserade med inkommande data
  • Nedströms AI-pipelines opererar alltid på uppdaterade dokumentrepresentationer

Läs mer: Se ai_parse_document för format som stöds och avancerade alternativ.

Begränsningar

Standard-SharePoint-anslutningsappen har följande begränsningar.

  • Ingen inmatning för flera platser: Du kan inte mata in flera platser med samma fråga. Om du vill mata in från två platser måste du skriva två separata frågor.
  • Filtrering: Du kan använda alternativet pathGlobFilter för att filtrera filer efter namn. Mappsökvägsbaserad filtrering stöds inte.
  • Format som inte stöds: SharePoint listor och .aspx webbplatssidor stöds inte. Endast filer i dokumentbibliotek stöds.
  • Det går inte att skriva tillbaka till en SharePoint server.
  • Automatisk inläsare cleanSource (borttagning eller arkivering av filer vid källan efter inmatning) stöds inte.

Nästa steg