Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Penting
Fitur ini ada di Beta. Admin ruang kerja dapat mengontrol akses ke fitur ini dari halaman Pratinjau . Lihat Kelola pratinjau Azure Databricks.
:::catatan Kepatuhan
Konektor SharePoint mendukung penggunaan di ruang kerja dengan Konfigurasi pengaturan keamanan dan kepatuhan yang ditingkatkan diaktifkan.
:::
Anda dapat menyerap file terstruktur, semi terstruktur, dan tidak terstruktur dari Microsoft SharePoint ke dalam tabel Delta. Konektor SharePoint mendukung penyerapan bertahap file SharePoint menggunakan API batch dan streaming, termasuk Auto Loader, spark.read dan COPY INTO, semuanya dengan tata kelola Katalog Unity.
Memilih konektor SharePoint Anda
Lakeflow Connect menawarkan dua konektor SharePoint pelengkap. Keduanya mengakses data dalam SharePoint, tetapi mendukung tujuan yang berbeda.
| Pertimbangan | Konektor SharePoint yang diatur | Konektor SharePoint standar |
|---|---|---|
| Manajemen dan kustomisasi | Konektor yang dikelola sepenuhnya. Konektor sederhana dan pemeliharaan rendah untuk aplikasi perusahaan yang menyerap data ke tabel Delta dan menjaganya tetap sinkron dengan sumbernya. Lihat Penghubung Terkelola di Lakeflow Connect. |
Buat alur penyerapan kustom dengan SQL, PySpark, atau Lakeflow Spark Declarative Pipelines menggunakan API batch dan streaming seperti read_files, , spark.readCOPY INTO, dan Auto Loader.Menawarkan fleksibilitas untuk melakukan transformasi kompleks selama penyerapan, sekaligus memberi Anda tanggung jawab yang lebih besar untuk mengelola dan memelihara alur Anda. |
| Format keluaran | Tabel seragam isi biner. Menyerap setiap file dalam format biner (satu file per baris), bersama dengan metadata file di kolom tambahan |
Tabel Delta terstruktur. Menyerap file terstruktur (seperti CSV dan Excel) sebagai tabel Delta. Juga dapat digunakan untuk menyerap file yang tidak terstruktur dalam format biner. |
| Granularitas, pemfilteran, dan pilihan | Tidak ada opsi untuk memilih tingkat subfolder atau file hari ini. Tidak ada pemfilteran berbasis pola. Menyerap semua file dalam pustaka dokumen SharePoint yang ditentukan. |
Granular dan kustom. Pilihan berbasis URL untuk menyerap dari pustaka dokumen, subfolder, atau file individual. Juga mendukung pemfilteran berbasis pola menggunakan pathGlobFilter opsi . |
Fitur utama
Konektor SharePoint standar menawarkan:
- Penyerapan file terstruktur, semi terstruktur, dan tidak terstruktur
- Penyerapan terperinci: Menyerap situs tertentu, subsitus, pustaka dokumen, folder, atau satu file
- Penyerapan batch dan streaming menggunakan
spark.read, Auto Loader, danCOPY INTO - Inferensi dan evolusi skema otomatis untuk format terstruktur dan semi terstruktur seperti CSV dan Excel
- Penyimpanan kredensial aman dengan koneksi Katalog Unity
- Pemilihan file dengan pencocokan pola menggunakan
pathGlobFilter
Persyaratan
Untuk menyerap file dari SharePoint, Anda harus memiliki hal berikut:
- Ruang kerja dengan Katalog Unity yang sudah diaktifkan.
-
CREATE CONNECTIONhak istimewa untuk membuat koneksi SharePoint, atau hak istimewa yang sesuai untuk menggunakan yang sudah ada berdasarkan mode akses kluster Anda:- Mode Akses Khusus:
MANAGE CONNECTION. - Mode Akses Standar:
USE CONNECTION.
- Mode Akses Khusus:
- Komputasi yang menggunakan Databricks Runtime versi 17.3 LTS atau yang lebih baru.
- Autentikasi OAuth diatur dengan cakupan izin
Sites.Read.AllatauSites.Selected. - Fitur SharePoint Beta diaktifkan dari halaman Previews. Lihat Kelola pratinjau Azure Databricks.
- Opsional: Aktifkan fitur Excel Beta untuk mengurai file Excel. Lihat file Excel Read.
Membuat koneksi
Buat koneksi Katalog Unity untuk menyimpan kredensial SharePoint Anda. Proses penyiapan koneksi dibagi antara konektor SharePoint standar dan terkelola.
Untuk instruksi penyiapan koneksi lengkap termasuk opsi autentikasi OAuth, lihat Gambaran umum penyiapan penyerapan SharePoint.
Membaca file dari SharePoint
Untuk membaca file, teruskan koneksi yang Anda buat menggunakan opsi databricks.connection dan URL yang menunjuk ke sumber daya SharePoint yang ingin Anda akses. URL yang Anda berikan menentukan cakupan penyerapan.
Jenis jalur berikut didukung pada Databricks Runtime 17.3 LTS dan yang lebih baru:
| Jenis jalur | Deskripsi |
|---|---|
| Situs | Salin URL situs dari bilah alamat.https://mytenant.sharepoint.com/sites/test-site |
| Subsitus | Salin URL subsitus dari bilah alamat.https://mytenant.sharepoint.com/sites/test-site/test-subsite |
| Perpustakaan Dokumen | Buka pustaka dari konten Situs dan salin URL dari bilah alamat.https://mytenant.sharepoint.com/sites/test-site/Shared%20Documentshttps://mytenant.sharepoint.com/sites/test-site/custom-drive |
| Folder | Buka folder dari konten Situs dan salin URL dari bilah alamat. Atau, buka panel Details folder di SharePoint dan klik ikon salin di samping 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 | Pilih file, klik menu luapan (...), dan pilih Pratinjau. Salin URL dari bilah alamat. Atau, buka panel Details file di SharePoint dan klik ikon salin di samping 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 dan yang lebih baru menambahkan dukungan untuk jenis jalur berikut:
| Jenis jalur | Deskripsi |
|---|---|
| Tenant | Salin URL akar penyewa dari bilah alamat.https://mytenant.sharepoint.com |
| Subsitus berlapis | Salin URL subsitus dari bilah alamat.https://mytenant.sharepoint.com/sites/test-site/subsite/nested-subsite/nested-nested-subsite |
| Bagikan tautan | Pilih file atau folder, klik menu luapan (...), dan pilih Salin tautan. Databricks merekomendasikan pengaturan tautan berbagi agar tidak pernah kedaluwarsa.https://mytenant.sharepoint.com/:i:/s/test-site/1A2B3C4D5E6F7G8H9I |
| Microsoft 365 untuk web (sebelumnya Office) | Buka file di Microsoft 365 untuk web dan salin URL dari bilah alamat.https://mytenant.sharepoint.com/:x:/r/sites/test-site/_layouts/15/Doc.aspx?sourcedoc=%1A2B... |
Examples
Ada beberapa cara untuk membaca file menggunakan konektor SharePoint standar.
Stream SharePoint file menggunakan Auto Loader
Auto Loader menyediakan cara paling efisien untuk menyerap file terstruktur secara bertahap dari SharePoint. Ini secara otomatis mendeteksi file baru dan memprosesnya saat tiba. Ini juga dapat menyerap file terstruktur dan semi-terstruktur seperti CSV dan JSON dengan inferensi dan evolusi skema otomatis. Untuk detail tentang penggunaan Auto Loader, lihat Pola pemuatan data umum.
# 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")
)
Baca file SharePoint menggunakan pembacaan batch Spark
Contoh berikut menunjukkan cara menyerap file SharePoint di Python menggunakan fungsi 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"))
Membaca file SharePoint menggunakan Spark SQL
Contoh berikut menunjukkan cara menyerap file SharePoint di SQL menggunakan fungsi read_files bernilai tabel. Untuk detail penggunaan read_files, lihat read_files fungsi bernilai tabel.
-- 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"
);
Penyerapan inkremental dengan COPY INTO
COPY INTO menyediakan pemuatan file inkremental idempotensi ke dalam tabel Delta. Untuk detail tentang COPY INTO penggunaan, lihat Pola pemuatan data umum menggunakan 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');
Muat file SharePoint di Pipeline Deklaratif Lakeflow Spark
Nota
Konektor SharePoint memerlukan Databricks Runtime 17.3 atau yang lebih baru. Untuk menggunakan konektor, atur "CHANNEL" = "PREVIEW" di pengaturan alur Anda. Untuk mendapatkan informasi lebih lanjut tentang pratinjau, lihat Rujukan properti alur.
Contoh berikut menunjukkan cara membaca file SharePoint menggunakan Auto Loader di Lakeflow Spark Declarative 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"
);
Mengurai file yang tidak terstruktur
Saat menyerap file yang tidak terstruktur dari SharePoint (seperti PDF, dokumen Word, atau file PowerPoint) menggunakan konektor SharePoint standar dengan format binaryFile, konten file disimpan sebagai data biner mentah. Untuk menyiapkan file-file ini untuk beban kerja AI—seperti RAG, pencarian, klasifikasi, atau pemahaman dokumen—Anda dapat mengurai konten biner ke dalam output terstruktur dan dapat dikueri menggunakan ai_parse_document.
Contoh berikut menunjukkan cara mengurai dokumen yang tidak terstruktur yang disimpan dalam tabel Delta perunggu bernama documents, menambahkan kolom baru dengan konten yang diurai:
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;
Kolom parsed_content berisi teks, tabel, informasi tata letak, dan metadata yang diekstrak yang dapat langsung digunakan untuk alur AI hilir.
Penguraian bertahap dengan Alur Deklaratif Lakeflow Spark
Anda juga dapat menggunakan ai_parse_document dalam Alur Deklaratif Lakeflow Spark untuk mengaktifkan penguraian bertahap. Saat file baru mengalir dari SharePoint, file tersebut secara otomatis diurai sebagai pembaruan alur Anda.
Misalnya, Anda dapat menentukan tampilan materialisasi yang terus mengurai dokumen yang baru diserap:
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;
Pendekatan ini memastikan bahwa:
- Berkas SharePoint yang baru diserap diurai secara otomatis setiap kali tampilan terwujud diperbarui.
- Output yang diurai tetap sinkron dengan data masuk
- Alur AI lanjutan selalu beroperasi pada representasi dokumen terbaru
Pelajari selengkapnya: Lihat ai_parse_document untuk format dan opsi tingkat lanjut yang didukung.
Keterbatasan
Konektor SharePoint standar memiliki batasan berikut.
- Tidak ada penyerapan multi-situs: Anda tidak dapat menyerap beberapa situs dengan kueri yang sama. Untuk menyerap dari dua situs, Anda harus menulis dua kueri terpisah.
-
Pemfilteran: Anda dapat menggunakan
pathGlobFilteropsi untuk memfilter file menurut nama. Pemfilteran berbasis jalur folder tidak didukung. - Format yang tidak didukung: Daftar SharePoint dan halaman situs .aspx tidak didukung. Hanya file di Pustaka Dokumen yang didukung.
- Menulis kembali ke server SharePoint tidak didukung.
- Auto Loader
cleanSource(menghapus atau mengarsipkan file di sumber setelah penyerapan) tidak didukung.
Langkah selanjutnya
- Pelajari tentang Auto Loader untuk pola penyerapan streaming tingkat lanjut
- Jelajahi COPY INTO untuk pemuatan inkremental yang idempoten
- Bandingkan dengan pola penyerapan penyimpanan objek cloud
- Atur penjadwalan job untuk mengotomatiskan alur kerja ingestasi Anda
- Gunakan Alur Deklaratif Lakeflow Spark untuk membangun alur data end-to-end dengan transformasi