Ingerir dados do OneDrive
Beta
Este recurso está em beta. Os administradores do Workspace podem controlar o acesso a este recurso na página Pré-visualizações ao optar pela prévia do Lakeflow Connect for OneDrive For Business . Consulte Gerenciar prévias do Databricks.
Esta página mostra como criar um pipeline de ingestão gerenciada do Microsoft OneDrive usando o Lakeflow Connect. O pipeline ingere arquivos do OneDrive em tabelas Delta e as mantém sincronizadas com a origem.
Antes de começar
-
Para criar o pipeline de ingestão, você deve primeiro atender aos seguintes requisitos:
-
Seu workspace deve estar habilitado para o Unity Catalog.
-
O compute serverless deve estar habilitado para seu workspace. Consulte Requisitos de compute serverless.
-
Para criar uma nova conexão, você deve ter os privilégios
CREATE CONNECTIONno metastore. Consulte Gerenciar privilégios no Unity Catalog.Se o conector for compatível com a criação de pipelines baseada na IU, um administrador poderá criar a conexão e o pipeline ao mesmo tempo concluindo os passos desta página. No entanto, se os usuários que criam pipelines usarem a criação de pipelines baseada em API ou não forem administradores, um administrador deverá primeiro criar a conexão no Catalog Explorer. Consulte Conectar-se a fontes de ingestão gerenciadas.
-
Para usar uma conexão existente, você deve ter os privilégios
USE CONNECTIONouALL PRIVILEGESno objeto de conexão. -
Você deve ter os privilégios
USE CATALOGno catálogo de destino. -
Você deve ter os privilégios
USE SCHEMAeCREATE TABLEem um esquema existente ou os privilégiosCREATE SCHEMAno catálogo de destino.
-
-
Use o Databricks Runtime 19 ou acima. Em uma definição de pipeline da API, defina
channelcomoPREVIEW. -
Para ingerir dados do OneDrive, primeiro configure um método de autenticação compatível e crie uma conexão. Consulte Criar uma conexão do OneDrive.
Criar pipeline de ingestão
Para obter uma lista dos formatos de arquivo compatíveis, consulte parâmetros de file_ingestion_options. Para ver as limitações específicas do conector, consulte limitações do conector do Microsoft OneDrive.
- Importe o seguinte Notebook no seu Workspace do Databricks:
-
Não modifique a célula dois.
-
Modifique a célula três com os detalhes da configuração do seu pipeline. Consulte a referência do conector do Microsoft OneDrive e os exemplos.
-
Clique em Executar tudo .
A execução do notebook cria o pipeline, mas não o começa. Para começar e programar o pipeline, consulte Tarefas comuns de manutenção de pipelines.
Escolha um URL de origem
Cada objeto em uma definição de pipeline especifica sua origem em connector_options.onedrive_options.url. A URL deve resolver para um dos seguintes recursos em uma unidade Meus arquivos do OneDrive for Business:
- A raiz da unidade
- Uma pasta
- Um arquivo
- Um link de compartilhamento válido
O URL deve usar um host pessoal do OneDrive, como <tenant>-my.sharepoint.com. Os URLs a seguir não são compatíveis:
- URLs de sites do SharePoint (
/sites/...) - URLs do OneDrive do consumidor, como
onedrive.live.comou1drv.ms - URLs de host simples
- Caminhos fora de uma unidade pessoal
Para obter exemplos de URLs e instruções para copiar um URL do OneDrive, consulte Ler arquivos do OneDrive.
Exemplos
Use estes exemplos para configurar seu pipeline. Substitua cada espaço reservado por valores para seu ambiente.
Ingerir arquivos como dados não estruturados
Ingira arquivos do OneDrive como conteúdo binário. Cada arquivo se torna uma linha que contém os bytes e os metadados do arquivo. Use esta abordagem para PDFs, documentos do Office, imagens e outros arquivos que você pretende processar posteriormente, por exemplo, para aplicativos RAG.
Disponível na versão Beta, o tipo FILE armazena uma referência governada a cada arquivo e seus metadados, em vez dos bytes do arquivo, o que melhora o desempenho de leitura. Para ingerir arquivos como o tipo FILE em vez de BINARYFILE, consulte Ingerir arquivos como o tipo FILE (Beta).
pipeline_spec = {
"name": "onedrive_binary_pipeline",
"catalog": "main",
"schema": "ingest_destination_schema",
"ingestion_definition": {
"connection_name": "<onedrive-connection>",
"objects": [
{
"table": {
"destination_catalog": "main",
"destination_schema": "ingest_destination_schema",
"destination_table": "drive_files",
"connector_options": {
"onedrive_options": {
"entity_type": "FILE",
"url": "https://mytenant-my.sharepoint.com/personal/user_mytenant_onmicrosoft_com/Documents",
"file_ingestion_options": {
"format": "BINARYFILE",
"schema_evolution_mode": "NONE"
}
}
}
}
}
]
},
"channel": "PREVIEW"
}
json_payload = json.dumps(pipeline_spec, indent=2)
create_pipeline(json_payload)
Ingerir arquivos como tipo FILE (Beta)
Beta
Esse recurso está na versão beta.
Ingerir arquivos como o tipo FILE para copiar cada arquivo de origem para um volume do Unity Catalog e armazenar uma referência governada a cada arquivo e aos respectivos metadados na tabela de destino. A tabela de destino expõe uma coluna file que você pode passar para funções como ai_parse_document e para funções definidas pelo usuário (UDFs).
Para usar o tipo FILE, configure o seguinte no pipeline:
- Defina o pipeline
channelcomoPREVIEW. - Defina
file_ingestion_options.formatcomoFILE. - Defina a propriedade de tabela
databricks.filespace-previewpara declarar o volume que o Unity Catalog usa como armazenamento gerenciado.
Para obter os requisitos e o comportamento de FILE, consulte Ingerir arquivos como tipo FILE.
pipeline_spec = {
"name": "onedrive_file_pipeline",
"catalog": "<catalog>",
"schema": "<schema>",
"ingestion_definition": {
"connection_name": "<onedrive-connection>",
"objects": [
{
"table": {
"destination_catalog": "<catalog>",
"destination_schema": "<schema>",
"destination_table": "<destination-table>",
"table_configuration": {
"table_properties": {
"databricks.filespace-preview": "/Volumes/<catalog>/<schema>/<volume>/"
}
},
"connector_options": {
"onedrive_options": {
"entity_type": "FILE",
"url": "https://mytenant-my.sharepoint.com/personal/user_mytenant_onmicrosoft_com/Documents",
"file_ingestion_options": {
"format": "FILE",
"schema_evolution_mode": "NONE"
}
}
}
}
}
]
},
"channel": "PREVIEW"
}
json_payload = json.dumps(pipeline_spec, indent=2)
create_pipeline(json_payload)
Ingerir arquivos estruturados
Ingerir arquivos estruturados (por exemplo, arquivos JSON) de uma pasta do OneDrive. Cada linha nos arquivos de origem se torna uma linha na tabela de destino.
pipeline_spec = {
"name": "onedrive_json_pipeline",
"catalog": "main",
"schema": "ingest_destination_schema",
"ingestion_definition": {
"connection_name": "<onedrive-connection>",
"objects": [
{
"table": {
"destination_catalog": "main",
"destination_schema": "ingest_destination_schema",
"destination_table": "json_files",
"connector_options": {
"onedrive_options": {
"entity_type": "FILE",
"url": "https://mytenant-my.sharepoint.com/personal/user_mytenant_onmicrosoft_com/Documents/json_folder",
"file_ingestion_options": {
"format": "JSON",
"schema_evolution_mode": "NONE"
}
}
}
}
}
]
},
"channel": "PREVIEW"
}
json_payload = json.dumps(pipeline_spec, indent=2)
create_pipeline(json_payload)
Ingerir somente metadados do arquivo
Ingerir metadados de arquivo (nome, tamanho, Timestamp, caminho) sem fazer download do conteúdo dos arquivos. Use esta abordagem quando precisar de um inventário de arquivos sem a sobrecarga de ingerir seu conteúdo.
Defina entity_type como FILE_METADATA. A ingestão de FILE_METADATA deve usar o formato BINARYFILE. Os formatos estruturados e semiestruturados não são compatíveis com a ingestão somente de metadados.
pipeline_spec = {
"name": "onedrive_metadata_pipeline",
"catalog": "main",
"schema": "ingest_destination_schema",
"ingestion_definition": {
"connection_name": "<onedrive-connection>",
"objects": [
{
"table": {
"destination_catalog": "main",
"destination_schema": "ingest_destination_schema",
"destination_table": "file_metadata",
"connector_options": {
"onedrive_options": {
"entity_type": "FILE_METADATA",
"url": "https://mytenant-my.sharepoint.com/personal/user_mytenant_onmicrosoft_com/Documents",
"file_ingestion_options": {
"format": "BINARYFILE",
"schema_evolution_mode": "NONE"
}
}
}
}
}
]
},
"channel": "PREVIEW"
}
json_payload = json.dumps(pipeline_spec, indent=2)
create_pipeline(json_payload)
Configurar opções de ingestão de arquivos
O bloco file_ingestion_options controla como os arquivos são processados. Todas as opções são definidas dentro do bloco connector_options.onedrive_options.file_ingestion_options na definição do pipeline. Os trechos de código a seguir mostram o fragmento file_ingestion_options de uma definição de pipeline. Para ver todos os parâmetros, consulte Parâmetros de file_ingestion_options.
Filtros de arquivo
Use file_filters para restringir os arquivos ingeridos do URL de origem:
"file_ingestion_options": {
"format": "CSV",
"file_filters": [
{ "path_filter": "invoices/*.csv" },
{ "modified_after": "2026-01-01T00:00:00" }
]
}
Evolução do esquema e dicas de esquema
Defina schema_evolution_mode para controlar como as novas colunas nos arquivos recebidos são tratadas. Substitua os tipos de coluna inferidos usando schema_hints.
A evolução do esquema se aplica somente a CSV, JSON, XML, PARQUET e AVRO. Para outros formatos (BINARYFILE, FILE, EXCEL e ORC), defina schema_evolution_mode como NONE.
"file_ingestion_options": {
"format": "CSV",
"schema_evolution_mode": "ADD_NEW_COLUMNS_WITH_TYPE_WIDENING",
"schema_hints": "order_id INT, amount DOUBLE, ts TIMESTAMP"
}
Para obter mais informações sobre a evolução do esquema e as dicas de esquema, consulte Configurar a inferência e a evolução do esquema no Auto Loader.
Opções específicas do formato
Passe opções específicas do formato usando format_options:
"file_ingestion_options": {
"format": "CSV",
"format_options": {
"header": "true",
"sep": ","
}
}
Os keys compatíveis são as opções de formato padrão do Auto Loader. Consulte opções de fonte de dados do Spark.
Padrões comuns
Para configurações avançadas de pipeline, consulte Padrões comuns para pipelines de ingestão gerenciados.
Próximos os passos
Comece, programe e defina alertas no seu pipeline. Consulte Tarefas comuns de manutenção de pipeline.