مشاركة عبر


المخططات المعرفة من قبل المستخدم داخل Synapse SQL

في الأقسام أدناه، ستجد نصائح مختلفة لاستخدام المخططات المعرفة من قبل المستخدم T-SQL لتطوير حلول داخل Synapse SQL.

مخططات لحدود التطبيق

غالبا ما تستخدم بنية التحليلات التقليدية قواعد بيانات منفصلة لإنشاء حدود التطبيق استنادا إلى حمل العمل أو المجال أو الأمان. على سبيل المثال، قد تتضمن البنية الأساسية التقليدية لتحليلات SQL Server قاعدة بيانات مرحلية وقاعدة بيانات تحليلات وقواعد بيانات سوق البيانات. في هذا المخطط، تعمل كل قاعدة بيانات كعبء عمل ون حدود أمان في البنية.

بدلا من ذلك، يقوم Synapse SQL بتشغيل حمل عمل التحليلات بالكامل داخل قاعدة بيانات واحدة. لا يسمح بالصلات عبر قاعدة البيانات. يتوقع Synapse SQL تخزين جميع الجداول المستخدمة من قبل المستودع داخل قاعدة البيانات الواحدة.

إشعار

لا تدعم تجمعات SQL المخصصة استعلامات قاعدة البيانات المشتركة من أي نوع. وبالتالي، يجب مراجعة تطبيقات التحليلات التي تستفيد من هذا النمط. يدعم تجمع SQL بلا خادم استعلامات قاعدة البيانات المشتركة.

توصيات المخطط المعرفة من قبل المستخدم

يتم تضمين توصيات لدمج أحمال العمل والأمان والمجال والحدود الوظيفية باستخدام المخططات المعرفة من قبل المستخدم:

  • استخدم قاعدة بيانات واحدة لتشغيل حمل عمل التحليلات بأكمله.
  • دمج بيئة التحليلات الحالية لاستخدام قاعدة بيانات واحدة.
  • استفد من المخططات المعرفة من قبل المستخدم لتوفير الحد الذي تم تنفيذه مسبقا باستخدام قواعد البيانات.

إذا لم يتم استخدام المخططات المعرفة من قبل المستخدم مسبقا، فسيكون لديك لوح نظيف. استخدم اسم قاعدة البيانات القديمة كأساس للمخططات المعرفة من قبل المستخدم في قاعدة بيانات Synapse SQL.

إذا تم استخدام المخططات بالفعل، فلديك بعض الخيارات:

  • إزالة أسماء المخططات القديمة والبدء من جديد
  • احتفظ بأسماء المخططات القديمة عن طريق إلحاق اسم المخطط القديم باسم الجدول
  • احتفظ بأسماء المخططات القديمة عن طريق تنفيذ طرق العرض على الجدول في مخطط إضافي، والذي يعيد إنشاء بنية المخطط القديمة.

إشعار

عند الفحص الأول، قد يبدو الخيار 3 الخيار الأكثر جاذبية. تتم قراءة طرق العرض فقط في Synapse SQL. يجب إجراء أي تعديل على البيانات أو الجدول مقابل الجدول الأساسي. يقدم الخيار 3 أيضا طبقة من طرق العرض في النظام الخاص بك. قد تحتاج إلى إعطاء هذا بعض الأفكار الإضافية إذا كنت تستخدم بالفعل طرق العرض في البنية الخاصة بك.

امثله

تنفيذ المخططات المعرفة من قبل المستخدم استنادا إلى أسماء قواعد البيانات.

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
,       ...
);

احتفظ بأسماء المخططات القديمة عن طريق إلحاقها باسم الجدول. استخدم المخططات لحدود حمل العمل.

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
,       ...
);

الاحتفاظ بأسماء المخططات القديمة باستخدام طرق العرض.

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
;

إشعار

يتطلب أي تغيير في استراتيجية المخطط مراجعة نموذج الأمان لقاعدة البيانات. في كثير من الحالات، قد تتمكن من تبسيط نموذج الأمان عن طريق تعيين أذونات على مستوى المخطط.

إذا كانت هناك حاجة إلى المزيد من الأذونات الدقيقة، يمكنك استخدام أدوار قاعدة البيانات. لمزيد من المعلومات حول أدوار قاعدة البيانات، راجع مقالة إدارة أدوار قاعدة البيانات والمستخدمين .

الخطوات التالية

لمزيد من نصائح التطوير، راجع Synapse SQL development overview.