BUAT TABEL EKSTERNAL DENGAN PILIHAN (CETAS)
Unit ini melihat lebih dekat perintah CREATE EXTERNAL TABLE AS SELECT (CETAS) dan manfaat yang diberikannya.
CETAS mendukung Azure Blob Storage, Azure Data Lake Storage, penyimpanan objek yang kompatibel dengan S3, dan database eksternal. CETAS juga mendukung ekspor format file sebagai file CSV atau Parquet.
Kemampuan CETAS yang paling kuat adalah menggabungkan dengan operasi SELECT lainnya, seperti menggabungkan dengan OPENROWSET atau dengan tabel eksternal lainnya. Kombinasi ini memungkinkan CETAS digunakan dengan cara yang berbeda dan fleksibel.
Kasus penggunaan untuk CETAS
Ada banyak kasus penggunaan yang berbeda untuk CETAS, tetapi tiga kasus utamanya adalah:
- Pelaporan
- Peningkatan atau pemindahan data
- Hub ekspor data
Pelaporan
Kasus penggunaan yang paling jelas untuk CETAS adalah menyederhanakan pelaporan dengan menggunakan semua kemampuan fleksibilitas PolyBase dan SQL Server. Anda dapat tersambung ke sumber data, tabel, atau file yang didukung, dan menggunakan T-SQL untuk memanipulasi dan mengekspor hasilnya. Misalnya, alih-alih menghubungkan alat pelaporan ke SQL Server, Anda dapat menggunakan CETAS untuk melakukan semua kueri yang diperlukan, mengekspor hasilnya sebagai file Parquet, dan mengarahkan alat pelaporan ke data yang diekspor.
Peningkatan atau pemindahan data
Skenario umum lainnya adalah mengekspor arsip atau data baca-saja dari tabel SQL Server ke penyimpanan jarak jauh, tetapi masih mengkuerinya secara normal melalui tabel eksternal. Dengan cara ini, Anda hanya dapat menyimpan data aktif di SQL Server, menyimpan sumber daya, tetapi masih mengakses data dengan cara transparan kapan pun diperlukan. Dari sudut pandang aplikasi, sama seperti mengakses tabel SQL Server biasa.
Misalnya, bayangkan tabel order Anda memiliki data historis tahun-tahun terakhir yang tidak berubah, tetapi Anda masih memerlukannya agar dapat diakses sepenuhnya. CETAS dapat membantu mengekspor semua data tabel order ke lokasi lain, mengurangi ukuran database dan waktu pemeliharaan yang diperlukan. Dengan tabel eksternal, data yang diekspor berulah seperti tabel biasa.
Hub ekspor data
Dengan menggunakan SQL Server 2025 sebagai hub data, Anda dapat menggabungkan CETAS dengan semua kemampuan PolyBase yang ada, termasuk menyambungkan ke sumber data lain seperti Oracle, Teradata, ODBC, atau versi SQL Server lainnya.
Persyaratan CETAS
Untuk menggunakan CETAS di SQL Server 2025, Anda perlu mengaktifkan properti ALLOW POLYBASE EXPORT dengan menggunakan sp_configure. Untuk detailnya, lihat latihan berikutnya.
Izin CETAS
Untuk menggunakan CETAS, Anda memerlukan tiga tingkat izin yang berbeda:
Izin untuk mengakses dan membaca sumber data. Jika data berada di luar SQL Server, baik di berbagi jaringan atau server database lain, akun layanan SQL Server harus memiliki izin untuk mengakses sumber data.
Izin pada SQL Server 2025 untuk menggunakan perintah CETAS. Agar pengguna database menjalankan perintah CETAS, mereka memerlukan izin untuk MENGELOLA OPERASI MASSAL, izin untuk MENGUBAH SUMBER DATA EKSTERNAL APA PUN, dan izin untuk MENGUBAH FORMAT FILE EKSTERNAL APA PUN.
Izin menulis pada tujuan untuk menyimpan hasil CETAS. Untuk dapat menulis ke file tujuan, file Parquet, atau file CSV, pengguna memerlukan izin tulis di tujuan. Misalnya, untuk menulis ke Azure Blob Storage atau Azure Data Lake Storage, pengguna memerlukan izin LIST, READ, CREATE, dan WRITE di tujuan tersebut.
Untuk informasi selengkapnya tentang izin pada CETAS, lihat CREATE EXTERNAL TABLE AS SELECT (CETAS) permissions.
Format yang didukung CETAS
CETAS menerima aliran data, menggunakan perintah SELECT sebagai input, dan mengekspor hasilnya dalam format CSV atau Parquet. Input mendukung format yang sama seperti perintah SELECT, termasuk hasil OPENROWSET.
Input dapat berupa tabel yang berjalan secara lokal pada instans SQL Server Anda, file jaringan yang diakses melalui operasi OPENROWSET, tabel dalam sistem database lain, atau file Delta yang disimpan di Azure Blob Storage, Azure Data Lake Storage, atau penyimpanan objek yang kompatibel dengan S3.
- Untuk daftar lengkap format yang didukung, lihat CREATE EXTERNAL FILE FORMAT.
- Untuk daftar lengkap sumber data yang didukung, lihat MEMBUAT SUMBER DATA EKSTERNAL.
- Untuk mempelajari tentang mengakses file jarak jauh dengan menggunakan OPENROWSET, lihat OPENROWSET.
Struktur T-SQL CETAS
Untuk lebih memahami CETAS, Anda dapat memecah sintaks T-SQL secara keseluruhan. Struktur T-SQL CETAS mengikuti pendekatan logika bottom-up. Lebih mudah untuk memulai dari akhir pernyataan, kemudian lanjut menyusun ke bagian atas pernyataan T-SQL.
- Bagian bawah struktur CETAS berisi pernyataan SELECT yang Anda gunakan untuk menentukan data apa yang akan diekspor.
- Di tengah, ada parameter opsional yang dapat Anda gunakan untuk menolak data yang tidak ingin Anda ekspor.
- Di bagian atas pernyataan CETAS, setelah mendeklarasikan CREATE EXTERNAL TABLE, Anda menambahkan informasi tentang lokasi tujuan, nama file, dan format file.
Struktur ini memungkinkan CETAS dikombinasikan dengan pernyataan SELECT apa pun untuk mengkueri data di luar SQL Server, dalam SQL Server, atau dari database lain yang didukung. SQL Server 2025 secara otomatis membuat nama file dan membagi hasil dalam beberapa file untuk pengoptimalan. Misalnya, tabel yang diekspor sebagai Parquet dapat menghasilkan beberapa file, tergantung pada ukuran data yang diekspor. Pernyataan pilih menentukan definisi dan jenis kolom tabel eksternal.
Mengekspor sebuah tabel dari SQL Server ke dalam format Parquet
Contoh berikut menggunakan CETAS untuk mengekspor tabel dari SQL Server sebagai Parquet:
CREATE EXTERNAL TABLE ext_sales
WITH (
LOCATION = '/cetas',
DATA_SOURCE = s3_eds,
FILE_FORMAT = ParquetFileFormat
) AS
SELECT *
FROM AdventureWorks2025.[Sales].[SalesOrderDetail];
Membaca sebuah file Delta dan mengekspor sebagai format Parquet
Contoh berikut menggunakan CETAS untuk membaca file Delta dan mengekspornya sebagai Parquet:
CREATE EXTERNAL TABLE Delta_to_Parquet
WITH (
LOCATION = N'/backup/sales',
DATA_SOURCE = s3_parquet,
FILE_FORMAT = ParquetFileFormat
) AS
SELECT *
FROM OPENROWSET(BULK N'/delta/sales_fy22/',
FORMAT = 'DELTA',
DATA_SOURCE = 's3_delta') AS [r];
Pada latihan berikutnya, Anda menggunakan CETAS untuk:
- Ekspor tabel sebagai Parquet.
- Pindahkan data dingin dari database ke penyimpanan eksternal.
- Buat tabel eksternal untuk mengakses data yang disimpan.
- Gunakan tampilan, pencarian wildcard, penghapusan folder, dan metadata sebagai strategi kueri.