Pular para o conteúdo principal

Importar arquivos do SharePoint

info

Beta

Este recurso está em versão Beta. Os administradores do espaço de trabalho podem controlar o acesso a este recurso na página de Pré-visualizações . Veja as prévias do Gerenciador Databricks.

:::nota conformidade

O conector do SharePoint suporta o uso no espaço de trabalho com a opção "Configurar configurações aprimoradas de segurança e compliance ativada.

:::

Você pode importar arquivos estruturados, semiestruturados e não estruturados do Microsoft SharePoint para tabelas Delta. O conector do SharePoint suporta a ingestão incremental de arquivos do SharePoint usando APIs de lotes e transmissões, incluindo Auto Loader, spark.read e COPY INTO, tudo com governança Unity Catalog .

Escolha seu conector do SharePoint

LakeFlow Connect oferece dois conectores complementares para SharePoint. Ambos acessam dados no SharePoint, mas atendem a objetivos distintos.

Consideração

gerenciamento do conector do SharePoint

Conector padrão do SharePoint

Gestão e personalização

Um conector totalmente gerenciado.

Conectores simples e de baixa manutenção para aplicações empresariais que ingerem dados em tabelas Delta e os mantêm sincronizados com a fonte. Consulte a seção de gerenciamento de conectores no LakeFlow Connect.

Crie um pipeline de ingestão personalizado com SQL, PySpark ou LakeFlow . Pipeline declarativo Spark usando APIs de lotes e transmissões como read_files, spark.read, COPY INTO e Auto Loader.

Oferece a flexibilidade para realizar transformações complexas durante a ingestão, ao mesmo tempo que lhe confere maior responsabilidade pela gestão e manutenção do seu pipeline.

Formato de saída

Tabela de conteúdo binário uniforme. Ingere cada arquivo em formato binário (um arquivo por linha), juntamente com os metadados do arquivo em colunas adicionais.

Tabelas Delta estruturadas. Importa arquivos estruturados (como CSV e Excel) como tabelas Delta. Também pode ser usado para ingestão. Arquivos não estruturados em formato binário.

Granularidade, filtragem e seleção

Não é possível selecionar subpastas ou arquivos em nível atual. Sem filtragem baseada em padrões.

Importa todos os arquivos da biblioteca de documentos do SharePoint especificada.

Granular e personalizado.

Seleção baseada em URL para importar dados da biblioteca de documentos, subpastas ou arquivos individuais. Também suporta filtragem baseada em padrões usando a opção pathGlobFilter .

recurso principal

O conector padrão do SharePoint oferece:

  • Ingestão de arquivos estruturados, semiestruturados e não estruturados.
  • Ingestão granular: Ingerir um site específico, um subsite, uma biblioteca de documentos, uma pasta ou um único arquivo.
  • ingestão de lotes e transmissão usando spark.read, Auto Loader e COPY INTO
  • Inferência e evolução automática de esquemas para formatos estruturados e semiestruturados, como CSV e Excel.
  • Armazenamento seguro de credenciais com uma conexão Unity Catalog
  • Seleção de arquivos com correspondência de padrões usando pathGlobFilter

Requisitos

Para importar arquivos do SharePoint, você precisa do seguinte:

  • Um workspace com Unity Catalog ativado.

  • CREATE CONNECTION privilégios para criar uma conexão SharePoint ou o privilégio apropriado para usar uma conexão existente, com base no seu modo de acesso ao cluster:

    • Mode de acesso dedicado: MANAGE CONNECTION.
    • Mode de acesso padrão: USE CONNECTION.
  • Computação que utiliza Databricks Runtime versão 17.3 LTS ou posterior.

  • Autenticação OAuth configurada com o escopo de permissão Sites.Read.All ou Sites.Selected .

  • O recurso Beta do SharePoint é ativado na página de Pré-visualizações . Veja as prévias do Gerenciador Databricks.

  • Opcional: Ative o recurso Excel Beta para analisar arquivos do Excel. Consulte Ler arquivos do Excel.

Criar a conexão

Crie uma conexão com Unity Catalog para armazenar suas credenciais do SharePoint. O processo de configuração da conexão é o mesmo para os conectores padrão e gerenciados do SharePoint.

Para obter instruções completas de configuração de conexão, incluindo opções de autenticação OAuth, consulte Visão geral da configuração de ingestão do SharePoint.

Leia arquivos do SharePoint

Para ler arquivos, passe a conexão que você criou usando a opção databricks.connection e um URL que aponte para o recurso do SharePoint que você deseja acessar. O URL que você fornecer determinará o escopo da ingestão.

Os seguintes tipos de caminho são suportados no Databricks Runtime 17.3 LTS e versões posteriores:

Tipo de caminho

Descrição

Site

Copie o URL do site da barra de endereços.

https://mytenant.sharepoint.com/sites/test-site

Subsite

Copie o URL do subsite da barra de endereços.

https://mytenant.sharepoint.com/sites/test-site/test-subsite

Biblioteca de documentos

Abra a biblioteca em Conteúdo do site e copie o URL da barra de endereços.

https://mytenant.sharepoint.com/sites/test-site/Shared%20Documents

https://mytenant.sharepoint.com/sites/test-site/custom-drive

Pasta

Abra a pasta em Conteúdo do Site e copie o URL da barra de endereços. Como alternativa, abra o painel Detalhes da pasta no SharePoint e clique no ícone de copiar ao lado de Caminho .

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

Arquivo

Selecione o arquivo, clique no menu de opções ( ... ) e selecione Visualizar . Copie o URL da barra de endereços. Como alternativa, abra o painel Detalhes do arquivo no SharePoint e clique no ícone de copiar ao lado de Caminho .

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

O Databricks Runtime 18.3 e versões posteriores adicionam suporte aos seguintes tipos de caminho:

Tipo de caminho

Descrição

tenant

Copie o URL raiz do tenant da barra de endereços.

https://mytenant.sharepoint.com

Subsite aninhado

Copie o URL do subsite da barra de endereços.

https://mytenant.sharepoint.com/sites/test-site/subsite/nested-subsite/nested-nested-subsite

Compartilhar link

Selecione o arquivo ou pasta, clique no menu de opções ( ... ) e selecione Copiar link . A Databricks recomenda configurar o link de compartilhamento para nunca expirar.

https://mytenant.sharepoint.com/:i:/s/test-site/1A2B3C4D5E6F7G8H9I

Microsoft 365 para a web (anteriormente Office)

Abra o arquivo no Microsoft 365 para a Web e copie o URL da barra de endereços.

https://mytenant.sharepoint.com/:x:/r/sites/test-site/_layouts/15/Doc.aspx?sourcedoc=%1A2B...

Exemplos

Existem algumas maneiras de ler arquivos usando o conector padrão do SharePoint.

transmissão de arquivos do SharePoint usando Auto Loader

O Auto Loader oferece a maneira mais eficiente de importar arquivos estruturados do SharePoint de forma incremental. Ele detecta automaticamente novos arquivos e os processa à medida que chegam. Ele também pode importar arquivos estruturados e semiestruturados, como CSV e JSON, com inferência e evolução automática de esquemas. Para obter detalhes sobre o uso do Auto Loader, consulte Padrões comuns de carregamento de dados.

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

Leia arquivos do SharePoint usando Spark .

O exemplo a seguir mostra como importar arquivos do SharePoint em Python usando a função spark.read .

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

Leia arquivos do SharePoint usando Spark SQL

O exemplo a seguir mostra como ingerir arquivos do SharePoint no SQL usando a função de tabela read_files . Para obter detalhes sobre o uso de read_files , consulte a função com valor de tabelaread_files.

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

Ingestão incremental com COPY INTO

COPY INTO Fornece carregamento incremental idempotente de arquivos em uma tabela Delta. Para obter detalhes sobre o uso de COPY INTO , consulte Padrões comuns de carregamento de dados usando COPY INTO.

SQL
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');

Ingerir arquivos do SharePoint em um pipeline declarativo LakeFlow Spark

nota

O conector do SharePoint requer o Databricks Runtime 17.3 ou posterior. Para usar o conector, defina "CHANNEL" = "PREVIEW" nas configurações do seu pipeline. Para obter mais informações sobre visualizações, consulte referência de propriedades do pipeline.

Os exemplos a seguir mostram como ler arquivos do SharePoint usando Auto Loader em um pipeline declarativo LakeFlow Spark .

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

Analisar arquivos não estruturados

Ao importar arquivos não estruturados do SharePoint (como PDFs, documentos do Word ou arquivos do PowerPoint) usando o conector padrão do SharePoint com formato binaryFile , o conteúdo do arquivo é armazenado como dados binários brutos. Para preparar esses arquivos para cargas de trabalho AI — como RAG, pesquisa, classificação ou compreensão de documentos — você pode analisar o conteúdo binário em uma saída estruturada e pesquisável usando ai_parse_document.

O exemplo a seguir mostra como analisar documentos não estruturados armazenados em uma tabela Delta bronze chamada documents, adicionando uma nova coluna com o conteúdo analisado:

SQL
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;

A coluna parsed_content contém texto extraído, tabelas, provisão de informação e metadados que podem ser usados diretamente para pipeline AI downstream.

Análise incremental com o pipeline declarativo LakeFlow Spark

Você também pode usar ai_parse_document dentro do pipeline declarativo LakeFlow Spark para habilitar a análise incremental. À medida que novos arquivos são transmitidos do SharePoint, eles são analisados automaticamente conforme seu pipeline é atualizado.

Por exemplo, você pode definir uma view materializada que analisa continuamente os documentos recém-ingeridos:

SQL
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;

Essa abordagem garante que:

  • Os arquivos do SharePoint recém-incorporados são analisados automaticamente sempre que a view materializada é atualizada.
  • Os dados analisados permanecem sincronizados com os dados recebidos.
  • O fluxo de trabalho AI subsequente opera sempre com representações de documentos atualizadas.

Saiba mais: Consulte a função ai_parse_document para obter informações sobre formatos suportados e opções avançadas.

Coluna de metadados do SharePoint

info

Visualização

Este recurso está em versão prévia privada. Para experimentar, entre em contato com seu representante da Databricks.

A coluna _sharepoint_metadata é uma coluna de metadados oculta que fornece acesso a propriedades específicas do SharePoint de arquivos ingeridos, provenientes do recurso gráfico driveItemMicrosoft. Requer Databricks Runtime 18.1 ou superior e está disponível para todos os formatos de arquivo ao ler do SharePoint. Para incluir a coluna _sharepoint_metadata no DataFrame retornado, você deve selecioná-la explicitamente na consulta de leitura.

Se a fonte de dados contiver uma coluna chamada _sharepoint_metadata, a coluna de metadados do SharePoint será renomeada para __sharepoint_metadata (com um sublinhado inicial extra) para desduplicar. Sublinhados adicionais são adicionados até que o nome seja único.

Metadados comuns de arquivos, como o caminho ou o tamanho do arquivo, podem ser consultados usando a coluna _metadata . Para mais informações, consulte Coluna de metadados do arquivo.

Esquema

A coluna _sharepoint_metadata é um STRUCT contendo os seguintes campos. Todos os campos podem ser nulos.

Nome

Tipo

Descrição

Exemplo

Versão mínima Databricks Runtime

item_id

STRING

O ID do item (driveItem ID).

01OMQ3MNLH42C5J675CBEI5CRK7SPKQUTZ

18.1

site_id

STRING

O ID do site do SharePoint que contém o item.

mytenant.sharepoint.com,69dc7b12-f92c-498d-9514-596b793a1f77,c6c1db8d-2b8d-48a1-a549-394b63d74725

18.1

drive_id

STRING

O ID da unidade que contém o item.

b!EnvcaSz5jUmVFFlreTofd43bwcaNK6FIpUk5S2PXRyWTvQraaWQkSpwQEgThHDS-

18.1

tipo_de_unidade

STRING

O tipo de unidade, por exemplo documentLibrary para biblioteca do SharePoint ou business para OneDrive for Business.

documentLibrary

18.1

id_pai

STRING

O ID do item de unidade da pasta pai.

01OMQ3MNN6Y2GOVW7725BZO354PWSELRRZ

18.1

nome_do_pai

STRING

O nome da pasta principal.

Shared Documents

18.1

caminho_pai

STRING

O caminho relativo à unidade de disco da pasta principal.

/drives/b!EnvcaSz5.../root:

18.1

URL da web

STRING

O URL do item no SharePoint, acessado pelo navegador.

https://mytenant.sharepoint.com/sites/TestSite/_layouts/15/Doc.aspx?sourcedoc=...

18.1

tipo_mime

STRING

O tipo MIME do item.

application/vnd.ms-excel

18.1

criado_por_email

STRING

O email do usuário que criou o item.

alice@example.onmicrosoft.com

18.1

criado_por_nome

STRING

O nome de exibição do usuário que criou o item.

Alice Example

18.1

carimbo_de_data_criado

TIMESTAMP

A hora em que o item foi criado.

2025-12-03 13:33:12

18.1

última_modificação_por_email

STRING

O email do usuário que modificou o item pela última vez.

alice@example.onmicrosoft.com

18.1

último_modificado_por_nome

STRING

O nome de exibição do usuário que modificou o item pela última vez.

Alice Example

18.1

etag

STRING

O ETag do item. Alterações ocorrem quando o item ou qualquer um de seus metadados é alterado.

"{D485E667-FDFB-4810-8E8A-2AFC9EA85279},1"

18.1

ctag

STRING

A tag de alteração do item. As alterações ocorrem somente quando o conteúdo do item é alterado.

"c:{D485E667-FDFB-4810-8E8A-2AFC9EA85279},1"

18.1

Descrição

STRING

A descrição do item, se definida.

Q4 financial report

18.1

metadados_adicionais

VARIANT

Quaisquer outros campos driveItem retornados pelo Microsoft Gráfico, mas não extraídos acima.

{"shared":{"scope":"users"},...}

18.1

nota

O campo additional_metadata é retornado como VARIANT. Veja VARIANT tipo.

Exemplos

Os exemplos a seguir mostram como incluir a coluna _sharepoint_metadata em uma consulta de leitura, selecionar campos específicos da coluna e extrair valores do campo additional_metadata VARIANT .

Python
df = (spark.read
.format("binaryFile")
.option("databricks.connection", "my_sharepoint_conn")
.load("https://mytenant.sharepoint.com/sites/Marketing/Shared%20Documents")
.select("*", "_metadata", "_sharepoint_metadata"))

Selecione campos específicos da estrutura _sharepoint_metadata :

Python
df = (spark.read
.format("binaryFile")
.option("databricks.connection", "my_sharepoint_conn")
.load("https://mytenant.sharepoint.com/sites/Marketing/Shared%20Documents")
.select("_sharepoint_metadata.item_id", "_sharepoint_metadata.etag"))

Extraia os valores do campo additional_metadata VARIANT usando o operador de conversão :: :

SQL
SELECT
*,
_sharepoint_metadata.additional_metadata:shared:scope::STRING AS shared_scope
FROM read_files(
"https://mytenant.sharepoint.com/sites/Marketing/Shared%20Documents",
`databricks.connection` => "my_sharepoint_conn",
format => "binaryFile"
);

Limitações

O conector padrão do SharePoint apresenta as seguintes limitações.

  • Sem ingestão em vários sites : Não é possível ingerir dados de vários sites com a mesma consulta. Para ingerir dados de dois sites diferentes, você precisa escrever duas consultas separadas.
  • Filtragem : Você pode usar a opção pathGlobFilter para filtrar arquivos por nome. A filtragem baseada no caminho da pasta não é suportada.
  • Formatos não suportados : Listas do SharePoint e .aspx Páginas do site não são suportadas. Somente arquivos na biblioteca de documentos são suportados.
  • Não há suporte para gravação de dados em um servidor SharePoint.
  • O Auto Loader cleanSource (excluir ou arquivar arquivos na origem após a ingestão) não é suportado.

Próximos passos