Bagikan melalui


Skema yang ditentukan pengguna dalam Synapse SQL

Di bagian di bawah ini, Anda akan menemukan berbagai tips untuk menggunakan skema yang ditentukan pengguna T-SQL untuk mengembangkan solusi dalam Synapse SQL.

Skema untuk batas aplikasi

Arsitektur analitik tradisional sering menggunakan database terpisah untuk membuat batas aplikasi berdasarkan beban kerja, domain, atau keamanan. Misalnya, infrastruktur analitik SQL Server tradisional mungkin menyertakan database penahapan, database analitik, dan database data mart. Dalam topologi ini, setiap database beroperasi sebagai beban kerja dan batas keamanan dalam arsitektur.

Sebagai gantinya, Synapse SQL menjalankan seluruh beban kerja analitik dalam satu database. Gabungan lintas database tidak diizinkan. Synapse SQL mengharapkan semua tabel yang digunakan oleh gudang disimpan dalam satu database.

Nota

Kumpulan SQL khusus tidak mendukung kueri lintas database dalam bentuk apa pun. Akibatnya, implementasi analitik yang memanfaatkan pola ini perlu direvisi. Kumpulan SQL tanpa server mendukung kueri lintas database.

Rekomendasi skema yang ditentukan pengguna

Disertakan adalah rekomendasi untuk mengonsolidasikan beban kerja, keamanan, domain, dan batas fungsional dengan menggunakan skema yang ditentukan pengguna:

  • Gunakan satu database untuk menjalankan seluruh beban kerja analitik Anda.
  • Konsolidasikan lingkungan analitik yang ada untuk menggunakan satu database.
  • Manfaatkan skema yang ditentukan pengguna untuk menyediakan batas yang sebelumnya diterapkan melalui database.

Jika skema yang ditentukan pengguna belum digunakan sebelumnya, maka Anda memiliki awal yang baru. Gunakan nama database lama sebagai dasar untuk skema yang ditentukan pengguna Anda di database Synapse SQL.

Jika skema telah digunakan, maka Anda memiliki beberapa opsi:

  • Hapus nama skema warisan dan mulai dari awal
  • Pertahankan nama skema warisan dengan mendahulukan nama skema warisan saat memberi nama pada tabel.
  • Pertahankan nama skema warisan dengan menerapkan tampilan atas tabel dalam skema tambahan, yang membuat ulang struktur skema lama.

Nota

Pada inspeksi pertama, opsi 3 mungkin tampak seperti pilihan yang paling menarik. View hanya dapat dibaca di Synapse SQL. Setiap data atau modifikasi tabel perlu dilakukan terhadap tabel dasar. Opsi 3 juga memperkenalkan lapisan tampilan ke dalam sistem Anda. Anda mungkin ingin memberikan topik ini beberapa pemikiran tambahan jika Anda sudah menggunakan view dalam arsitektur Anda.

Contoh

Menerapkan 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 analytics
GO
CREATE TABLE [stg].[customer] -- create staging tables in the stg schema
(       CustKey BIGINT NOT NULL
,       ...
);
GO
CREATE TABLE [edw].[customer] -- create analytics tables in the edw schema
(       CustKey BIGINT NOT NULL
,       ...
);

Pertahankan nama skema warisan 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 analytics 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 analytics 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 analytics 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 analytics tables in the analytics 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, Anda dapat menggunakan peran database. Untuk informasi selengkapnya tentang peran database, lihat artikel Mengelola peran database dan pengguna.

Langkah berikutnya

Untuk tips pengembangan lebih lanjut, lihat Ringkasan pengembangan Synapse SQL.