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.
Artikel ini berfokus pada penyediaan beberapa tips untuk menggunakan skema yang ditentukan pengguna T-SQL untuk mengembangkan solusi di kumpulan SQL khusus.
Skema untuk batas aplikasi
Gudang data tradisional sering menggunakan database terpisah untuk membuat batas aplikasi berdasarkan beban kerja, domain, atau keamanan.
Sebagai contoh, gudang data SQL Server tradisional mungkin menyertakan database penahapan, database gudang data, dan beberapa database data mart. Dalam topologi ini, setiap database beroperasi sebagai beban kerja dan batas keamanan dalam arsitektur.
Sebaliknya, kumpulan SQL khusus menjalankan seluruh beban kerja gudang data dalam satu database. Gabungan lintas database tidak diizinkan. Kumpulan SQL khusus mengharapkan semua tabel yang digunakan oleh gudang disimpan dalam satu database.
Nota
Kumpulan SQL tidak mendukung kueri lintas database dalam bentuk apa pun. Akibatnya, implementasi gudang data yang memanfaatkan pola ini perlu direvisi.
Rekomendasi
Berikut ini adalah rekomendasi untuk mengonsolidasikan beban kerja, keamanan, domain, dan batas fungsional dengan menggunakan skema yang ditentukan pengguna:
- Gunakan satu database dalam kumpulan SQL khusus untuk menjalankan seluruh beban kerja gudang data Anda.
- Konsolidasikan lingkungan gudang data yang ada untuk menggunakan satu database kumpulan SQL khusus.
- Manfaatkan skema yang ditentukan pengguna untuk menyediakan batas yang sebelumnya diterapkan melalui database.
Jika skema yang ditentukan pengguna belum digunakan sebelumnya, maka Anda akan memiliki lembaran baru. Gunakan nama database lama sebagai dasar untuk skema yang ditentukan pengguna Anda dalam database kumpulan SQL khusus.
Jika skema telah digunakan, maka Anda memiliki beberapa opsi:
- Hapus nama skema warisan dan mulai dari awal.
- Pertahankan nama skema warisan dengan menambahkan nama skema warisan sebelumnya ke nama tabel.
- Pertahankan nama skema warisan dengan menerapkan tampilan atas tabel dalam skema tambahan untuk membuat ulang struktur skema lama.
Nota
Pada pandangan pertama, opsi nomor 3 mungkin terlihat sebagai pilihan yang paling menarik. Namun, setan dalam detailnya. Tampilan hanya dibaca di kumpulan SQL khusus. Setiap data atau modifikasi tabel perlu dilakukan terhadap tabel dasar. Opsi 3 juga memperkenalkan lapisan tampilan ke dalam sistem Anda. Anda mungkin ingin mempertimbangkan ini lebih lanjut jika sudah menggunakan tampilan dalam arsitektur Anda.
Contoh:
Terapkan skema yang ditentukan pengguna berdasarkan nama database:
CREATE SCHEMA [stg]; -- stg previously database name for staging database
GO
CREATE SCHEMA [edw]; -- edw previously database name for the data warehouse
GO
CREATE TABLE [stg].[customer] -- create staging tables in the stg schema
( CustKey BIGINT NOT NULL
, ...
);
GO
CREATE TABLE [edw].[customer] -- create data warehouse tables in the edw schema
( CustKey BIGINT NOT NULL
, ...
);
Pertahankan nama skema lama dengan menambahkannya di depan nama tabel. Gunakan skema untuk batas beban kerja:
CREATE SCHEMA [stg]; -- stg defines the staging boundary
GO
CREATE SCHEMA [edw]; -- edw defines the data warehouse boundary
GO
CREATE TABLE [stg].[dim_customer] --pre-pend the old schema name to the table and create in the staging boundary
( CustKey BIGINT NOT NULL
, ...
);
GO
CREATE TABLE [edw].[dim_customer] --pre-pend the old schema name to the table and create in the data warehouse boundary
( CustKey BIGINT NOT NULL
, ...
);
Pertahankan nama skema warisan menggunakan tampilan:
CREATE SCHEMA [stg]; -- stg defines the staging boundary
GO
CREATE SCHEMA [edw]; -- stg defines the data warehouse boundary
GO
CREATE SCHEMA [dim]; -- edw defines the legacy schema name boundary
GO
CREATE TABLE [stg].[customer] -- create the base staging tables in the staging boundary
( CustKey BIGINT NOT NULL
, ...
)
GO
CREATE TABLE [edw].[customer] -- create the base data warehouse tables in the data warehouse boundary
( CustKey BIGINT NOT NULL
, ...
)
GO
CREATE VIEW [dim].[customer] -- create a view in the legacy schema name boundary for presentation consistency purposes only
AS
SELECT CustKey
, ...
FROM [edw].customer
;
Nota
Setiap perubahan strategi skema memerlukan tinjauan model keamanan untuk database. Dalam banyak kasus, Anda mungkin dapat menyederhanakan model keamanan dengan menetapkan izin di tingkat skema. Jika diperlukan izin yang lebih terperinci, maka Anda dapat menggunakan peran database.
Langkah selanjutnya
Untuk tips pengembangan selengkapnya, lihat ringkasan pengembangan.