Bagikan melalui


Tutorial: Memuat data eksternal menggunakan ID Microsoft Entra

Artikel ini menjelaskan cara membuat tabel eksternal menggunakan passthrough ID Microsoft Entra.

Prasyarat

Sumber daya berikut diperlukan untuk menyelesaikan tutorial ini:

  • Ruang kerja Azure Synapse Analytics dan kumpulan SQL khusus

Memberikan akses akun ID Microsoft Entra ke akun penyimpanan

Contoh ini menggunakan akun ID Microsoft Entra (atau grup) untuk mengautentikasi ke data sumber.

Untuk mengaktifkan akses ke data di akun Azure Data Lake Storage (ADLS) Gen2, Anda perlu memberi akun ID Microsoft Entra (atau grup) Anda akses ke akun sumber. Untuk memberikan izin yang tepat, ikuti langkah-langkah berikut:

  1. Di portal Azure, temukan akun penyimpanan Anda.
  2. Pilih Penyimpanan data ->Kontainer, dan navigasikan ke folder tempat data sumber yang perlu diakses tabel eksternal.
  3. Pilih Kontrol Akses (IAM).
  4. Pilih Tambahkan -> Tambahkan penugasan peran.
  5. Dalam daftar peran fungsi pekerjaan, pilih Storage Blob Data Reader dan kemudian pilih Berikutnya. Jika izin tulis diperlukan, pilih Kontributor Data Blob Penyimpanan.
  6. Di halaman Tambahkan penetapan peran, pilih + Pilih anggota. Panel Pilih anggota terbuka di sudut kanan.
  7. Ketik nama akun ID Microsoft Entra yang diinginkan. Saat ditampilkan, pilih akun yang Anda inginkan dan pilih Pilih.
  8. Di halaman Tambahkan penetapan peran, pastikan daftar Anggota menyertakan akun ID Microsoft Entra yang Anda inginkan. Setelah diverifikasi, pilih Tinjau + tetapkan.
  9. Di halaman konfirmasi, tinjau perubahan dan pilih Tinjau + tetapkan.

Akun atau grup ID Microsoft Entra sekarang menjadi anggota peran Pembaca Data Blob Penyimpanan dan memiliki akses ke folder sumber.

Memasukkan data menggunakan COPY INTO

Pernyataan COPY INTO T-SQL menyediakan penyerapan data throughput tinggi yang fleksibel ke dalam tabel Anda, dan merupakan strategi utama untuk menyerap data ke dalam tabel kumpulan SQL khusus Anda. Ini memungkinkan pengguna untuk menyerap data dari lokasi eksternal tanpa harus membuat salah satu objek database tambahan yang diperlukan untuk tabel eksternal.

Pernyataan COPY INTO menggunakan CREDENTIAL argumen untuk menentukan metode autentikasi yang digunakan untuk menyambungkan ke akun sumber. Namun, saat mengautentikasi menggunakan ID Microsoft Entra atau ke akun penyimpanan publik, CREDENTIAL tidak perlu ditentukan. Untuk menjalankan COPY INTO pernyataan menggunakan autentikasi ID Entra, gunakan perintah T-SQL berikut:

COPY INTO <TableName>
FROM 'https://<AccountName>.dfs.core.windows.net/<Container>/<Folder>/ '
WITH
(
    [<CopyIntoOptions>]
);

Di mana:

  • <TableName> adalah nama tabel untuk menyerap data.
  • <AccountName> adalah nama akun ADLS Gen2 Anda.
  • <Container> adalah nama kontainer dalam akun penyimpanan Anda tempat data sumber disimpan
  • <Folder> adalah folder (atau jalur dengan subfolder) tempat data sumber disimpan dalam kontainer Anda. Anda juga dapat memberikan nama file jika menunjuk langsung ke satu file.
  • <CopyIntoOptions> adalah daftar opsi lain yang ingin Anda berikan ke COPY INTO pernyataan.

Untuk mempelajari selengkapnya dan menjelajahi sintaks lengkapnya, lihat COPY INTO (Transact-SQL).

Mengkueri data di ADLS Gen2 menggunakan tabel eksternal

Tabel eksternal memungkinkan pengguna untuk mengkueri data dari akun Azure Data Lake Storage (ADLS) Gen2 tanpa perlu menyerap data terlebih dahulu. Pengguna dapat membuat tabel eksternal yang menunjuk ke file pada kontainer ADLS Gen2, dan mengkuerinya seperti tabel pengguna biasa.

Langkah-langkah berikut menjelaskan proses untuk membuat tabel eksternal baru yang menunjuk ke data di ADLS Gen2, menggunakan autentikasi ID Entra.

Membuat objek database yang diperlukan

Tabel eksternal mengharuskan objek berikut dibuat:

  1. Sumber data eksternal yang menunjuk ke folder sumber
  2. Format file eksternal yang menentukan format file sumber
  3. Definisi tabel eksternal yang digunakan untuk kueri

Untuk mengikuti langkah-langkah ini, Anda perlu menggunakan editor SQL di Ruang Kerja Azure Synapse, atau klien SQL pilihan Anda yang terhubung ke kumpulan SQL khusus Anda. Mari kita lihat langkah-langkah ini secara rinci.

Buat sumber data eksternal

Langkah selanjutnya adalah membuat sumber data eksternal yang menentukan tempat data sumber yang digunakan oleh tabel eksternal berada.

Untuk membuat sumber data eksternal, gunakan perintah T-SQL berikut:

CREATE EXTERNAL DATA SOURCE <ExternalDataSourceName>
WITH (
    TYPE = HADOOP,
    LOCATION = 'abfss://<Container>@<AccountName>.dfs.core.windows.net/<Folder>/'
);

Di mana:

  • <ExternalDataSourceName> adalah nama yang ingin Anda gunakan untuk sumber data eksternal Anda.
  • <AccountName> adalah nama akun ADLS Gen2 Anda.
  • <Container> adalah nama kontainer dalam akun penyimpanan Anda tempat data sumber disimpan.
  • <Folder> adalah folder (atau jalur dengan subfolder) tempat data sumber disimpan dalam kontainer Anda.

Untuk mempelajari selengkapnya tentang sumber data eksternal, lihat MEMBUAT SUMBER DATA EKSTERNAL (Transact-SQL).

Buat format file eksternal

Langkah selanjutnya adalah membuat format file eksternal. Ini menentukan tata letak aktual data yang dirujuk oleh tabel eksternal.

Untuk membuat format file eksternal, gunakan perintah T-SQL berikut. Ganti <FileFormatName> dengan nama yang ingin Anda gunakan untuk format file eksternal Anda.

CREATE EXTERNAL FILE FORMAT <FileFormatName>
WITH (
    FORMAT_TYPE = DELIMITEDTEXT,
    FORMAT_OPTIONS (
        FIELD_TERMINATOR = ',',
        STRING_DELIMITER = '"',
        FIRST_ROW = 2,
        USE_TYPE_DEFAULT = True
    )
);

Dalam contoh ini, sesuaikan parameter seperti FIELD_TERMINATOR, , STRING_DELIMITERFIRST_ROW, dan lainnya sesuai dengan data sumber Anda. Untuk opsi pemformatan lainnya dan untuk mempelajari selengkapnya, lihat MEMBUAT FORMAT FILE EKSTERNAL (Transact-SQL).

Membuat tabel eksternal

Sekarang setelah objek yang diperlukan yang menyimpan metadata untuk mengakses data eksternal dengan aman dibuat, saatnya untuk membuat tabel eksternal. Untuk membuat tabel eksternal, gunakan perintah T-SQL berikut:

-- Adjust the table name and columns to your desired name and external table schema
CREATE EXTERNAL TABLE <ExternalTableName> (
    Col1 INT,
    Col2 NVARCHAR(100),
    Col4 INT
)
WITH
(
    LOCATION = '<Path>',
    DATA_SOURCE = <ExternalDataSourceName>,
    FILE_FORMAT = <FileFormatName>
);

Di mana:

Pastikan untuk menyesuaikan nama dan skema tabel dengan nama yang diinginkan dan skema data dalam file sumber Anda.

Mengkueri tabel eksternal

Pada titik ini, semua metadata yang diperlukan untuk mengakses tabel eksternal dibuat. Untuk menguji tabel eksternal Anda, gunakan kueri seperti sampel T-SQL berikut untuk memvalidasi pekerjaan Anda:

SELECT TOP 10 Col1, Col2 FROM <ExternalTableName>;

Jika semuanya dikonfigurasi dengan benar, Anda akan melihat data dari data sumber Anda sebagai hasil dari kueri ini.

Untuk informasi selengkapnya tentang CREATE EXTERNAL TABLE, lihat MEMBUAT TABEL EKSTERNAL (Transact-SQL).