Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makale, ayrılmış SQL havuzunda çözümler geliştirmek için T-SQL kullanıcı tanımlı şemaları kullanmaya yönelik çeşitli ipuçları sağlamaya odaklanmaktadır.
Uygulama sınırları için şemalar
Geleneksel veri ambarları genellikle iş yüküne, etki alanına veya güvenliğe dayalı uygulama sınırları oluşturmak için ayrı veritabanları kullanır.
Örneğin, geleneksel bir SQL Server veri ambarı hazırlama veritabanı, veri ambarı veritabanı ve bazı veri reyonu veritabanları içerebilir. Bu topolojide, her veritabanı mimaride bir iş yükü ve güvenlik sınırı olarak çalışır.
Buna karşılık, ayrılmış bir SQL havuzu veri ambarı iş yükünün tamamını tek bir veritabanında çalıştırır. Çapraz veritabanı birleştirmelerine izin verilmez. Ayrılmış SQL havuzu, ambar tarafından kullanılan tüm tabloların tek bir veritabanında depolanmasını bekler.
Uyarı
SQL havuzu herhangi bir türde çapraz veritabanı sorgularını desteklemez. Sonuç olarak, bu desenden yararlanan veri ambarı uygulamalarının düzeltilmesi gerekir.
Öneriler
Aşağıda, kullanıcı tanımlı şemaları kullanarak iş yüklerini, güvenlik, etki alanı ve işlevsel sınırları birleştirme önerileri yer almaktadır:
- Veri ambarı iş yükünüzün tamamını çalıştırmak için ayrılmış sql havuzunda bir veritabanı kullanın.
- Ayrılmış bir SQL havuzu veritabanı kullanmak için mevcut veri ambarı ortamınızı birleştirin.
- Daha önce veritabanları kullanılarak uygulanan sınırı sağlamak için kullanıcı tanımlı şemalardan yararlanın.
Kullanıcı tanımlı şemalar daha önce kullanılmadıysa temiz bir sayfanız vardır. Ayrılmış SQL havuzu veritabanında kullanıcı tanımlı şemalarınızın temeli olarak eski veritabanı adını kullanın.
Şemalar zaten kullanılmışsa birkaç seçeneğiniz vardır:
- Eski şema adlarını kaldırın ve yeni bir başlangıç başlatın.
- Tablo adının önüne eski şema adını ekleyerek eski şema adlarını koruyun.
- Eski şema yapısını yeniden oluşturmak için ek bir şemada tablo üzerinde görünümler uygulayarak eski şema adlarını koruyun.
Uyarı
İlk inceleme seçeneğinde 3 en çekici seçenek gibi görünebilir. Ancak, şeytan ayrıntıdadır. Görünümler, ayrılmış SQL havuzunda sadece okunabilir. Temel tabloya göre herhangi bir veri veya tablo değişikliğinin gerçekleştirilmesi gerekir. 3. seçenek, sisteminize bir görünüm katmanı da ekler. Mimarinizde görünümleri zaten kullanıyorsanız, bu konuda biraz daha düşünmek isteyebilirsiniz.
Örnekler:
Veritabanı adlarına göre kullanıcı tanımlı şemalar uygulayın:
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
, ...
);
Eski şema adlarını tablo adına önceden sabitleyerek tutun. İş yükü sınırı için şemaları kullanın:
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
, ...
);
Görünümleri kullanarak eski şema adlarını koruyun:
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
;
Uyarı
Şema stratejisindeki herhangi bir değişiklik için veritabanı için güvenlik modelinin gözden geçirilmesi gerekir. Çoğu durumda, şema düzeyinde izinler atayarak güvenlik modelini basitleştirebilirsiniz. Daha ayrıntılı izinler gerekiyorsa veritabanı rollerini kullanabilirsiniz.
Sonraki adımlar
Daha fazla geliştirme ipucu için bkz . geliştirmeye genel bakış.