مشاركة عبر


نسخ البيانات وتحويلها في Snowflake V2 باستخدام Azure Data Factory أو Azure Synapse Analytics

ينطبق على: Azure Data Factory Azure Synapse Analytics

Tip

جرب Data Factory في Microsoft Fabric، وهو حل تحليلي متكامل للمؤسسات. يغطي Microsoft Fabric كل شيء بدءا من حركة البيانات إلى علم البيانات والتحليلات في الوقت الحقيقي والمعلومات المهنية وإعداد التقارير. تعرف على كيفية بدء إصدار تجريبي جديد مجانا!

توضح هذه المقالة كيفية استخدام نشاط النسخ في Azure Data Factory ومسارات Azure Synapse لنسخ البيانات من وإلى Snowflake واستخدام تدفق البيانات لتحويل البيانات في Snowflake. لمزيد من المعلومات، راجع المقالة التمهيدية ل Data Factory أو Azure Synapse Analytics.

Important

موصل Snowflake V1 في مرحلة الإزالة. يوصى بترقية موصل Snowflake من V1 إلى V2.

الإمكانات المدعومة

يتم دعم موصل Snowflake هذا للإمكانات التالية:

الإمكانات المدعومة IR
نشاط النسخ (المصدر/المتلقي) (1) (2)
تعيين تدفق البيانات (المصدر/المتلقي)
نشاط البحث (1) (2)
نشاط البرنامج النصي (تطبيق الإصدار 1.1 عند استخدام معلمة البرنامج النصي) (1) (2)

(1) وقت تشغيل تكامل Azure (2) وقت تشغيل التكامل المستضاف ذاتيا

للنشاط نسخ، هذا الموصل Snowflake يدعم الوظائف التالية:

  • انسخ البيانات من Snowflake التي تستخدم الأمر COPY الخاص ب Snowflake في [الموقع] لتحقيق أفضل أداء.
  • انسخ البيانات إلى Snowflake التي تستفيد من الأمر COPY الخاص ب Snowflake في [table] لتحقيق أفضل أداء. وهو يدعم Snowflake على Azure.
  • إذا كان الوكيل مطلوباً للاتصال بـ Snowflake من وقت تشغيل التكامل المستضاف ذاتياً، فيجب عليك تكوين متغيرات البيئة لـ HTTP_PROXY وHTTPS_PROXY على مضيف وقت تشغيل التكامل.

Prerequisites

إذا كان مخزن البيانات الخاص بك موجودا داخل شبكة محلية أو شبكة Azure ظاهرية أو سحابة Amazon الظاهرية الخاصة، فأنت بحاجة إلى تكوين وقت تشغيل تكامل مستضاف ذاتيا للاتصال به. تأكد من إضافة عناوين IP التي يقوم باستخدامها وقت تشغيل التكامل المستضاف ذاتيًا إلى القائمة المسموح بها.

إذا كان مخزن البيانات الخاص بك عبارة عن خدمة بيانات سحابية مُدارة، يمكنك استخدام Azure Integration Runtime. إذا كان الوصول مقيدا ب IPs التي تمت الموافقة عليها في قواعد جدار الحماية، يمكنك إضافة عناوين IP لوقت تشغيل تكامل Azure إلى القائمة المسموح بها.

يجب أن يكون لحساب Snowflake المستخدم للمصدر أو المتلقي حق الوصول الضروري USAGE على قاعدة البيانات والوصول للقراءة/الكتابة على المخطط والجداول/طرق العرض الموجودة ضمنه. بالإضافة إلى ذلك، يجبCREATE STAGE أن يكون أيضًا على المخطط لتتمكن من إنشاء المرحلة الخارجية باستخدام SAS URI.

يجب أن تقوم بتعيين قيم خصائص الحساب التالية

Property Description Required Default
REQUIRE_STORAGE_INTEGRATION_FOR_STAGE_CREATION يتم تحديد ما إذا كان يلزم طلب كائن تكامل التخزين كمؤهلات اعتماد سحابية عند إنشاء مرحلة خارجية مسماة (باستخدام CREATE STAGE) للوصول إلى موقع تخزين سحابي خاص. FALSE FALSE
REQUIRE_STORAGE_INTEGRATION_FOR_STAGE_OPERATION يتم تحديد ما إذا كنت تريد استخدام مرحلة خارجية مسماة تشير إلى كائن تكامل التخزين على أنها بيانات اعتماد سحابية عند تحميل البيانات من أو إلغاء تحميل البيانات إلى موقع تخزين سحابي خاص. FALSE FALSE

لمزيد من المعلومات حول آليات وخيارات أمان الشبكة التي يدعمها Data Factory، راجع استراتيجيات الوصول إلى البيانات.

Get started

لتنفيذ نشاط النسخ باستخدام خط أنابيب ، يمكنك استخدام إحدى الأدوات أو مجموعات SDK التالية:

إنشاء خدمة مرتبطة بـ Snowflake باستخدام واجهة المستخدم

استخدم الخطوات التالية لإنشاء خدمة مرتبطة إلى Snowflake في واجهة مستخدم مدخل Microsoft Azure.

  1. استعرض للوصول إلى علامة التبويب "Manage" في مصنع بيانات Azure أو مساحة عمل Synapse، وحدد "Linked Services"، ثم انقر فوق "New":

  2. البحث عن Snowflake وتحديد موصل Snowflake.

    لقطة شاشة لموصل Snowflake.

  3. قم بتكوين تفاصيل الخدمة، واختبر الاتصال، وأنشئ الخدمة المرتبطة الجديدة.

    لقطة شاشة لتكوين الخدمة المرتبطة ل Snowflake.

تفاصيل تكوين الموصل

توفر المقاطع التالية تفاصيل حول الخصائص التي تعرف الكيانات الخاصة بموصل Snowflake.

خصائص الخدمة المرتبطة

يتم دعم هذه الخصائص العامة لخدمة Snowflake المرتبطة:

Property Description Required
type يجب تعيين خاصية النوع إلى SnowflakeV2. Yes
version الإصدار الذي تحدده. يوصي بالترقية إلى أحدث إصدار للاستفادة من أحدث التحسينات. نعم للإصدار 1.1
accountIdentifier اسم الحساب مع مؤسسته. على سبيل المثال، myorg-account123. Yes
database قاعدة البيانات الافتراضية المستخدمة لجلسة العمل بعد الاتصال. Yes
warehouse المستودع الظاهري الافتراضي المستخدم لجلسة العمل بعد الاتصال. Yes
authenticationType نوع المصادقة المستخدمة للاتصال بخدمة Snowflake. القيم المسموح بها هي: أساسي (افتراضي) وKeyPair. راجع الأقسام المقابلة أدناه حول المزيد من الخصائص والأمثلة على التوالي. No
role دور الأمان الافتراضي المستخدم لجلسة العمل بعد الاتصال. No
host اسم المضيف لحساب Snowflake. على سبيل المثال: contoso.snowflakecomputing.com. .cn مدعوم أيضا. No
connectVia وقت تشغيل التكامل المستخدم للاتصال بمخزن البيانات. يمكنك استخدام Azure Integration Runtime أو وقت تشغيل التكامل المستضاف ذاتياً (إذا كان مخزن بياناتك في شبكة اتصال خاصة). إذا لم يكن محدداً، فإنه يستخدم وقت تشغيل تكامل Azure الافتراضي. No

يمكنك تعيين خصائص الاتصال الإضافية التالية في الخدمة المرتبطة اعتمادا على حالتك.

Property Description Required القيمة الافتراضية
UseUtcTimestamps حدد ذلك لإعادة false نوع TIMESTAMP_LTZ و TIMESTAMP_TZ الكتابة في المنطقة الزمنية الصحيحة، وكتابة TIMESTAMP_NTZ بدون معلومات المنطقة الزمنية. حدد ذلك لإعادة true جميع أنواع الطوابع الزمنية لسنوفلايك في UTC. No false
schema يحدد مخطط جلسة الاستعلام بعد الاتصال. No /

يدعم موصل Snowflake هذا أنواع المصادقة التالية. راجع الأقسام المقابلة للاطلاع على التفاصيل.

Basic authentication

لاستخدام المصادقة الأساسية ، بالإضافة إلى الخصائص العامة الموضحة في القسم السابق، حدد الخصائص التالية:

Property Description Required
user اسم تسجيل الدخول لمستخدم Snowflake. Yes
password كلمة المرور لمستخدم Snowflake. وضع علامة على هذا الحقل كنوع SecureString لتخزينه بشكل آمن. يمكنك أيضا الرجوع إلى سر مخزن في Azure Key Vault. Yes

Example:

{
    "name": "SnowflakeV2LinkedService",
    "properties": {
        "type": "SnowflakeV2",
        "typeProperties": {
            "accountIdentifier": "<accountIdentifier>",
            "database": "<database>",
            "warehouse": "<warehouse>",
            "authenticationType": "Basic",
            "user": "<username>",
            "password": {
                "type": "SecureString",
                "value": "<password>"
            },
            "role": "<role>"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

كلمة المرور في Azure Key Vault:

{
    "name": "SnowflakeV2LinkedService",
    "properties": {
        "type": "SnowflakeV2",
        "typeProperties": {
            "accountIdentifier": "<accountIdentifier>",
            "database": "<database>",
            "warehouse": "<warehouse>",
            "authenticationType": "Basic",
            "user": "<username>",
            "password": {
                "type": "AzureKeyVaultSecret",
                "store": { 
                    "referenceName": "<Azure Key Vault linked service name>",
                    "type": "LinkedServiceReference"
                }, 
                "secretName": "<secretName>"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

مصادقة زوج المفاتيح

لاستخدام مصادقة زوج المفاتيح ، تحتاج إلى تكوين وإنشاء مستخدم مصادقة زوج مفاتيح في Snowflake بالإشارة إلى مصادقة زوج المفاتيح وتدارة زوج المفاتيح. بعد ذلك، دون ملاحظة عن المفتاح الخاص وعبارة المرور (اختياري)، التي تستخدمها لتعريف الخدمة المرتبطة.

بالإضافة إلى الخصائص العامة الموصوفة في القسم السابق، حدد الخصائص التالية:

Property Description Required
user اسم تسجيل الدخول لمستخدم Snowflake. Yes
privateKey المفتاح الخاص المستخدم لمصادقة زوج المفاتيح.

للتأكد من أن المفتاح الخاص صالح عند إرساله إلى Azure Data Factory، ومع الأخذ في الاعتبار أن ملف privateKey يتضمن أحرفا جديدة (\n)، من الضروري تنسيق محتوى privateKey بشكل صحيح في نموذج السلسلة الحرفي الخاص به. تتضمن هذه العملية إضافة \n بشكل صريح إلى كل سطر جديد.
Yes
privateKeyPassphrase عبارة المرور المستخدمة لفك تشفير المفتاح الخاص، إذا كان مشفرا. No

Example:

{
    "name": "SnowflakeV2LinkedService",
    "properties": {
        "type": "SnowflakeV2",
        "typeProperties": {
            "accountIdentifier": "<accountIdentifier>",
            "database": "<database>",
            "warehouse": "<warehouse>",
            "authenticationType": "KeyPair",
            "user": "<username>",
            "privateKey": {
                "type": "SecureString",
                "value": "<privateKey>"
            },
            "privateKeyPassphrase": { 
                "type": "SecureString",
                "value": "<privateKeyPassphrase>"
            },
            "role": "<role>"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Note

لتعيين تدفقات البيانات، نوصي بإنشاء مفتاح خاص RSA جديد باستخدام معيار PKCS#8 بتنسيق PEM (ملف.p8).

خصائص مجموعة البيانات

للحصول على قائمة كاملة بالأقسام والخصائص المتوفرة لتعريف مجموعات البيانات، راجع مقالة مجموعات البيانات .

يتم اعتماد الخصائص التالية لمجموعة بيانات Snowflake.

Property Description Required
type يجب تعيين خاصية نوع مجموعة البيانات إلى SnowflakeV2Table. Yes
schema اسم المخطط. ملاحظة: اسم المخطط حساسة لحالة الأحرف. لا للمصدر، نعم للمتلقي
table اسم الجدول/طريقة العرض. لاحظ أن اسم الجدول حساس لحالة الأحرف. لا للمصدر، نعم للمتلقي

Example:

{
    "name": "SnowflakeV2Dataset",
    "properties": {
        "type": "SnowflakeV2Table",
        "typeProperties": {
            "schema": "<Schema name for your Snowflake database>",
            "table": "<Table name for your Snowflake database>"
        },
        "schema": [ < physical schema, optional, retrievable during authoring > ],
        "linkedServiceName": {
            "referenceName": "<name of linked service>",
            "type": "LinkedServiceReference"
        }
    }
}

انسخ خصائص النشاط

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

Snowflake كمصدر

يستخدم موصل Snowflake الأمر COPY في [الموقع] الخاص ب Snowflake لتحقيق أفضل أداء.

إذا كان تخزين بيانات المتلقي وتنسيقه مدعومين أصلاً بواسطة أمر Snowflake COPY، فيمكنك استخدام نشاط النسخ للنسخ مباشرةً من Snowflake إلى المتلقي. للحصول على التفاصيل، راجع نسخة مباشرة من Snowflake. وإلا، استخدم نسخة مرحلية مضمنة من Snowflake.

لنسخ البيانات من Snowflake، يتم دعم الخصائص التالية في قسم مصدر نشاط النسخ.

Property Description Required
type يجب تعيين خاصية نوع مصدر نشاط النسخ إلى SnowflakeV2Source. Yes
query تحديد الاستعلام SQL لقراءة البيانات من Snowflake. إذا كانت أسماء المخطط والجدول والأعمدة تحتوي على أحرف صغيرة، فاقتبس معرّف العنصر في الاستعلام، على سبيل المثال select * from "schema"."myTable".
تنفيذ الإجراء المخزن غير مدعوم.
No
exportSettings إعدادات متقدمة تستخدم لاسترداد البيانات من Snowflake. يمكنك تكوين تلك المدعومة من قبل COPY في الأمر الذي ستمر به الخدمة عند استدعاء الكشف. Yes
علاجDecimalAsString حدد معاملة النوع العشري كنوع نصي في البحث ونشاط السكريبت. القيمة الافتراضية هي false.

هذه الخاصية مدعومة فقط في الإصدار 1.1.
No
ضمن exportSettings:
type نوع أمر التصدير، تعيين إلى SnowflakeExportCopyCommand. Yes
storageIntegration حدد اسم تكامل التخزين الذي أنشأته في Snowflake. للحصول على الخطوات الأساسية لاستخدام تكامل التخزين، راجع تكوين تكامل تخزين Snowflake. No
additionalCopyOptions خيارات نسخ إضافية، مقدمة كقاموس لأزواج قيم المفاتيح. أمثلة: MAX_FILE_SIZE، OVERWRITE. لمزيد من المعلومات، راجع خيارات نسخ Snowflake. No
additionalFormatOptions خيارات إضافية لتنسيق ملف يتم توفيرها إلى الأمر COPY كقاموس أزواج قيم المفاتيح. أمثلة: DATE_FORMAT، TIME_FORMAT، TIMESTAMP_FORMAT، NULL_IF. لمزيد من المعلومات، راجع خيارات نوع تنسيق Snowflake.

عند استخدام NULL_IF، يتم تحويل القيمة NULL في Snowflake إلى القيمة المحددة (التي يجب أن تكون مفردة الاقتباس) عند الكتابة إلى الملف النصي المحدد في التخزين المرحلي. يتم التعامل مع هذه القيمة المحددة على أنها NULL عند القراءة من ملف التقسيم المرحلي إلى تخزين المتلقي. القيمة الافتراضية هي 'NULL'.
No

Note

تأكد من أن لديك الإذن لتنفيذ الأمر التالي والوصول إلى INFORMATION_SCHEMA المخطط وأعمدة الجدول.

  • COPY INTO <location>

نسخة مباشرة من Snowflake

إذا كان مخزن البيانات المتلقي والتنسيق يفيان بالمعايير الموضحة في هذا القسم، يمكنك استخدام نشاط النسخ للنسخ المباشر من Snowflake إلى المتلقي. تتحقق الخدمة من الإعدادات وتفشل في تشغيل نشاط النسخ إذا لم يتم استيفاء المعايير التالية:

  • عند تحديد storageIntegration في المصدر:

    مخزن بيانات المتلقي هو Azure Blob Storage الذي أشرت إليه في المرحلة الخارجية في Snowflake. تحتاج إلى إكمال الخطوات التالية قبل نسخ البيانات:

    1. إنشاء خدمة مرتبطة ب Azure Blob Storage لتخزين Azure Blob المتلقي مع أي أنواع مصادقة مدعومة.

    2. امنح دور Storage Blob Data Contributor على الأقل إلى كيان خدمة Snowflake في المتلقي Azure Blob Storage Access Control (IAM) .

  • عندما لا تحدد storageIntegration في المصدر:

    الخدمة المرتبطة بالمتلقي هي تخزين Azure Blob مع مصادقة توقيع الوصول المشترك. إذا كنت ترغب في نسخ البيانات مباشرة إلى Azure Data Lake Storage Gen2 بالتنسيق المدعوم التالي، يمكنك إنشاء خدمة مرتبطة ب Azure Blob Storage باستخدام مصادقة SAS مقابل حساب Azure Data Lake Storage Gen2، لتجنب استخدام نسخة مرحلية من Snowflake.

  • تنسيق بيانات المتلقي هو من Parquet أو نص محدد أو JSON مع التكوينات التالية:

    • لتنسيق Parquet ، يكون برنامج ترميز الضغط بلا أو Snappy أو Lzo.
    • لتنسيق النص المحدد :
      • rowDelimiter هو \r\nأو أي حرف واحد.
      • compression يمكن أن يكون أي ضغط أو gzip أو bzip2 أو deflate.
      • encodingName يتم ترك كافتراضي أو تعيين إلى utf-8.
      • quoteChar هو اقتباس مزدوج أو اقتباس مفرد أو سلسلة فارغة (بدون حرف اقتباس).
    • بالنسبة لتنسيق JSON ، تدعم النسخة المباشرة فقط الحالة التي يحتوي فيها جدول Snowflake المصدر أو نتيجة الاستعلام على عمود واحد فقط ونوع بيانات هذا العمود هو VARIANT أو OBJECT أو ARRAY.
      • compression يمكن أن يكون أي ضغط أو gzip أو bzip2 أو deflate.
      • encodingName يتم ترك كافتراضي أو تعيين إلى utf-8.
      • filePattern في متلقي نشاط النسخ يتم تركه افتراضيا أو تعيينه إلى setOfObjects.
  • في مصدر نشاط النسخ، additionalColumns غير محدد.

  • لم يتم تحديد تعيين العمود.

Example:

"activities":[
    {
        "name": "CopyFromSnowflake",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<Snowflake input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "SnowflakeV2Source",
                "query": "SELECT * FROM MYTABLE",
                "exportSettings": {
                    "type": "SnowflakeExportCopyCommand",
                    "additionalCopyOptions": {
                        "MAX_FILE_SIZE": "64000000",
                        "OVERWRITE": true
                    },
                    "additionalFormatOptions": {
                        "DATE_FORMAT": "'MM/DD/YYYY'"
                    },
                    "storageIntegration": "< Snowflake storage integration name >"
                }
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

نسخة مرحلية من Snowflake

عندما لا يكون مخزن بيانات المتلقي أو تنسيقه متوافقا أصلا مع الأمر Snowflake COPY، كما هو مذكور في القسم الأخير، قم بتمكين النسخة المرحلية المضمنة باستخدام مثيل تخزين Azure Blob مؤقت. كما توفر لك ميزة النسخ المرحلي معدل نقل أفضل. تصدر الخدمة البيانات من Snowflake إلى التخزين المرحلي، ثم تنسخ البيانات للمتلقي، وأخيراً تنظف بياناتك المؤقتة من التخزين المرحلي. راجع النسخ المرحلي للحصول على تفاصيل حول نسخ البيانات باستخدام التقسيم المرحلي.

لاستخدام هذه الميزة، قم بإنشاء خدمة مرتبطة بتخزين Azure Blob تشير إلى حساب تخزين Azure كتقسيم مرحلي مؤقت. ثم حدد enableStaging وstagingSettings الخصائص في نشاط النسخ.

  • عند تحديد storageIntegration في المصدر، يجب أن يكون Azure Blob Storage المرحلي المؤقت هو الذي أشرت إليه في المرحلة الخارجية في Snowflake. تأكد من إنشاء خدمة مرتبطة ب Azure Blob Storage لها مع أي مصادقة مدعومة عند استخدام وقت تشغيل تكامل Azure، أو باستخدام مفتاح حساب مجهول أو توقيع وصول مشترك أو مصادقة كيان الخدمة عند استخدام وقت تشغيل التكامل المستضاف ذاتيا. بالإضافة إلى ذلك، امنح دور Storage Blob Data Contributor على الأقل إلى كيان خدمة Snowflake في التحكم في الوصول إلى تخزين Azure Blob المرحلي (IAM).

  • عندما لا تحدد storageIntegration في المصدر، يجب أن تستخدم الخدمة المرتبطة بتخزين Azure Blob المرحلي مصادقة توقيع الوصول المشترك، كما هو مطلوب من قبل الأمر Snowflake COPY. تأكد من منح إذن الوصول المناسب إلى Snowflake في Azure Blob Storage المرحلي. لمعرفة المزيد حول هذا الموضوع، راجع هذه المقالة.

Example:

"activities":[
    {
        "name": "CopyFromSnowflake",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<Snowflake input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "SnowflakeV2Source",               
                "query": "SELECT * FROM MyTable",
                "exportSettings": {
                    "type": "SnowflakeExportCopyCommand",
                    "storageIntegration": "< Snowflake storage integration name >"                    
                }
            },
            "sink": {
                "type": "<sink type>"
            },
            "enableStaging": true,
            "stagingSettings": {
                "linkedServiceName": {
                    "referenceName": "MyStagingBlob",
                    "type": "LinkedServiceReference"
                },
                "path": "mystagingpath"
            }
        }
    }
]

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

مثال على التكوين

{
    "type": "Copy",
    "source": {
        "type": "SnowflakeSource",
        "query": "SELECT * FROM my_table"
    },
    "sink": {
        "type": "AzureBlobStorage",
        "copyBehavior": "MergeFiles"
    }
}

Note

قد يؤدي الفشل في تعيين "سلوك نسخ المتلقي" إلى "دمج الملفات " إلى نسخ آخر ملف مقسم فقط.

Snowflake كمتلقي

يستخدم موصل Snowflake الأمر COPY في [table] من Snowflake لتحقيق أفضل أداء. وهو يدعم كتابة البيانات في Snowflake على Azure.

إذا كان تخزين بيانات المصدر وتنسيقه مدعومين أصلاً بواسطة أمر Snowflake COPY، فيمكنك استخدام نشاط النسخ للنسخ مباشرةً من المصدر إلى Snowflake. للحصول على التفاصيل، راجع النسخ المباشر إلى Snowflake. وإلا، استخدم نسخة مرحلية مضمنة إلى Snowflake.

لنسخ البيانات إلى Snowflake، يتم دعم الخصائص التالية في قسم متلقي نشاط النسخ.

Property Description Required
type خاصية نوع متلقي نشاط النسخ، عين على SnowflakeV2Sink. Yes
preCopyScript حدد استعلام SQL لنشاط النسخ للتشغيل قبل كتابة البيانات في Snowflake عند كل تشغيل. استخدم هذه الخاصية لتنظيف البيانات المحملة في الخلفية. No
importSettings إعدادات متقدمة تستخدم لكتابة البيانات في Snowflake. يمكنك تكوين تلك المدعومة من قبل COPY في الأمر الذي ستمر به الخدمة عند استدعاء الكشف. Yes
ضمن importSettings:
type نوع أمر الاستيراد، تعيين إلى SnowflakeImportCopyCommand. Yes
storageIntegration حدد اسم تكامل التخزين الذي أنشأته في Snowflake. للحصول على الخطوات الأساسية لاستخدام تكامل التخزين، راجع تكوين تكامل تخزين Snowflake. No
additionalCopyOptions خيارات نسخ إضافية، مقدمة كقاموس لأزواج قيم المفاتيح. أمثلة: ON_ERROR، FORCE، LOAD_UNCERTAIN_FILES. لمزيد من المعلومات، راجع خيارات نسخ Snowflake. No
additionalFormatOptions خيارات تنسيق ملف إضافية تم توفيرها للأمر نسخ، المقدمة كقاموس أزواج قيم المفاتيح. أمثلة: DATE_FORMAT، TIME_FORMAT، TIMESTAMP_FORMAT. لمزيد من المعلومات، راجع خيارات نوع تنسيق Snowflake. No

Note

تأكد من أن لديك الإذن لتنفيذ الأمر التالي والوصول إلى INFORMATION_SCHEMA المخطط وأعمدة الجدول.

  • SELECT CURRENT_REGION()
  • COPY INTO <table>
  • SHOW REGIONS
  • CREATE OR REPLACE STAGE
  • DROP STAGE

نسخة مباشرة إلى Snowflake

إذا كان مخزن البيانات المصدر والتنسيق يفيان بالمعايير الموضحة في هذا القسم، يمكنك استخدام نشاط النسخ للنسخ المباشر من المصدر إلى Snowflake. تتحقق الخدمة من الإعدادات وتفشل في تشغيل نشاط النسخ إذا لم يتم استيفاء المعايير التالية:

  • عند تحديد storageIntegration في المتلقي:

    مخزن البيانات المصدر هو Azure Blob Storage الذي أشرت إليه في المرحلة الخارجية في Snowflake. تحتاج إلى إكمال الخطوات التالية قبل نسخ البيانات:

    1. إنشاء خدمة مرتبطة ب Azure Blob Storage لمصدر Azure Blob Storage مع أي أنواع مصادقة مدعومة.

    2. امنح دور Storage Blob Data Reader على الأقل إلى كيان خدمة Snowflake في مصدر التحكم في الوصول إلى تخزين Azure Blob (IAM).

  • عندما لا تحدد storageIntegration في المتلقي:

    الخدمة المرتبطة بالمصدر هي تخزين Azure Blob مع مصادقة توقيع الوصول المشترك. إذا كنت ترغب في نسخ البيانات مباشرة من Azure Data Lake Storage Gen2 بالتنسيق المدعوم التالي، يمكنك إنشاء خدمة مرتبطة ب Azure Blob Storage باستخدام مصادقة SAS مقابل حساب Azure Data Lake Storage Gen2، لتجنب استخدام نسخة مرحلية إلى Snowflake.

  • تنسيق البيانات المصدر هو Parquet أو نص محدد أو JSON مع التكوينات التالية:

    • بالنسبة لتنسيق Parquet ، يكون برنامج ترميز الضغط بلا أو Snappy.

    • لتنسيق النص المحدد :

      • rowDelimiter هو \r\nأو أي حرف واحد. إذا لم يكن محدد الصف "\r\n"، firstRowAsHeader يجب أن يكون خطأ، skipLineCount ولم يتم تحديده.
      • compression يمكن أن يكون أي ضغط أو gzip أو bzip2 أو deflate.
      • encodingName هو ترك الافتراضي أو تعيين إلى "UTF-8"، "UTF-16"، "UTF-16BE"، "UTF-32"، "UTF-32BE"، "BIG5"، "EUC-JP"، "EUC-KR"، "GB18030"، "ISO-2022-JP"، "ISO-2022-KR"، "ISO-8859-1"، "ISO-8859-2"، "ISO-8859-5"، "ISO-8859-6"، "ISO-8859-7"، "ISO-8859-8"، "ISO-8 8859-9"، "ويندوز - 1250"، "ويندوز - 1251"، "ويندوز - 1252"، "ويندوز - 1253"، "ويندوز - 1254"، "ويندوز - 1255".
      • quoteChar هو اقتباس مزدوج أو اقتباس مفرد أو سلسلة فارغة (بدون حرف اقتباس).
    • بالنسبة لتنسيق JSON ، تدعم النسخة المباشرة فقط الحالة التي يحتوي فيها جدول Snowflake المتلقي على عمود واحد فقط ونوع بيانات هذا العمود هو VARIANT أو OBJECT أو ARRAY.

      • compression يمكن أن يكون أي ضغط أو gzip أو bzip2 أو deflate.
      • encodingName يتم ترك كافتراضي أو تعيين إلى utf-8.
      • لم يتم تحديد تعيين العمود.
  • في مصدر نشاط النسخ:

    • additionalColumns غير محدد.
    • إذا كان المصدر مجلداً، يتم تعيين recursive إلى صحيح.
    • prefix modifiedDateTimeStart modifiedDateTimeEndلم يتم تحديد و وenablePartitionDiscovery.

Example:

"activities":[
    {
        "name": "CopyToSnowflake",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<Snowflake output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "<source type>"
            },
            "sink": {
                "type": "SnowflakeV2Sink",
                "importSettings": {
                    "type": "SnowflakeImportCopyCommand",
                    "copyOptions": {
                        "FORCE": "TRUE",
                        "ON_ERROR": "SKIP_FILE"
                    },
                    "fileFormatOptions": {
                        "DATE_FORMAT": "YYYY-MM-DD"
                    },
                    "storageIntegration": "< Snowflake storage integration name >"
                }
            }
        }
    }
]

نسخة مرحلية لـ Snowflake

عندما لا يكون مخزن بيانات المصدر أو تنسيقه متوافقا أصلا مع الأمر Snowflake COPY، كما هو مذكور في القسم الأخير، قم بتمكين النسخة المرحلية المضمنة باستخدام مثيل تخزين Azure Blob مؤقت. كما توفر لك ميزة النسخ المرحلي معدل نقل أفضل. تقوم الخدمة تلقائياً بتحويل البيانات لتلبية متطلبات تنسيق البيانات في Snowflake. ثم استدعاء الأمر COPY لتحميل البيانات في Snowflake. وأخيراً، فإنه ينظف البيانات المؤقتة الخاصة بك من تخزين الكائن الثنائي كبير الحجم. راجع النسخ المرحلي للحصول على تفاصيل حول نسخ البيانات باستخدام التقسيم المرحلي.

لاستخدام هذه الميزة، قم بإنشاء خدمة مرتبطة بتخزين Azure Blob تشير إلى حساب تخزين Azure كتقسيم مرحلي مؤقت. ثم حدد enableStaging وstagingSettings الخصائص في نشاط النسخ.

  • عند تحديد storageIntegration في المتلقي، يجب أن يكون Azure Blob Storage المرحلي المؤقت هو الذي أشرت إليه في المرحلة الخارجية في Snowflake. تأكد من إنشاء خدمة مرتبطة ب Azure Blob Storage لها مع أي مصادقة مدعومة عند استخدام وقت تشغيل تكامل Azure، أو باستخدام مفتاح حساب مجهول أو توقيع وصول مشترك أو مصادقة كيان الخدمة عند استخدام وقت تشغيل التكامل المستضاف ذاتيا. بالإضافة إلى ذلك، امنح دور Storage Blob Data Reader على الأقل إلى أساس خدمة Snowflake في التحكم في الوصول إلى تخزين Azure Blob المرحلي (IAM).

  • عندما لا تحدد storageIntegration في المتلقي، تحتاج الخدمة المرتبطة بتخزين Azure Blob المرحلي إلى استخدام مصادقة توقيع الوصول المشترك كما هو مطلوب من قبل الأمر Snowflake COPY.

Example:

"activities":[
    {
        "name": "CopyToSnowflake",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<Snowflake output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "<source type>"
            },
            "sink": {
                "type": "SnowflakeV2Sink",
                "importSettings": {
                    "type": "SnowflakeImportCopyCommand",
                    "storageIntegration": "< Snowflake storage integration name >"
                }
            },
            "enableStaging": true,
            "stagingSettings": {
                "linkedServiceName": {
                    "referenceName": "MyStagingBlob",
                    "type": "LinkedServiceReference"
                },
                "path": "mystagingpath"
            }
        }
    }
]

تعيين خصائص تدفق البيانات

عند تحويل البيانات في مخطط تدفق البيانات، يمكنك القراءة من الجداول والكتابة إليها في Snowflake. لمزيد من المعلومات، راجع تحويل المصدروتحويل المتلقي في تعيين تدفقات البيانات. يمكنك اختيار استخدام مجموعة بيانات Snowflake أو مجموعة بيانات مضمنة كنوع مصدر ومتلقي.

تحويل المصدر

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

Name Description Required القيم المسموح بها خاصية البرنامج النصي لتدفق البيانات
Table إذا قمت بتحديد الجدول كإدخال، فسيحضر تدفق البيانات جميع البيانات من الجدول المحدد في مجموعة بيانات Snowflake أو في خيارات المصدر عند استخدام مجموعة البيانات المضمنة. No String (لمجموعة البيانات المضمنة فقط)
tableName
schemaName
Query إذا قمت بتحديد الاستعلام كإدخال، أدخل استعلاما لإحضار البيانات من Snowflake. يمنع هذا الإعداد أي جدول اخترته في مجموعة البيانات.
إذا كانت أسماء المخطط والجدول والأعمدة تحتوي على أحرف صغيرة، فاقتبس معرّف العنصر في الاستعلام، على سبيل المثال select * from "schema"."myTable".
No String query
تمكين الاستخراج التزايدي (معاينة) استخدم هذا الخيار لإخبار ADF بمعالجة الصفوف التي تغيرت منذ آخر مرة تم فيها تنفيذ البنية الأساسية لبرنامج ربط العمليات التجارية فقط. No Boolean enableCdc
العمود التزايدي عند استخدام ميزة الاستخراج التزايدي، يجب اختيار العمود التاريخ/الوقت/العدد الذي ترغب في استخدامه كعلامة مائية في الجدول المصدر. No String waterMarkColumn
تمكين تتبع تغيير Snowflake (معاينة) يمكن هذا الخيار ADF من الاستفادة من تقنية التقاط بيانات تغيير Snowflake لمعالجة بيانات دلتا فقط منذ تنفيذ البنية الأساسية لبرنامج ربط العمليات التجارية السابق. يقوم هذا الخيار تلقائيا بتحميل بيانات دلتا مع عمليات إدراج الصف وتحديثه وحذفه دون الحاجة إلى أي عمود تزايدي. No Boolean enableNativeCdc
صافي التغييرات عند استخدام تتبع تغيير البلورة الثلجية، يمكنك استخدام هذا الخيار للحصول على صفوف تم تغييرها أو تغييرات شاملة. لن تعرض الصفوف التي تم تغييرها سوى أحدث إصدارات الصفوف التي تغيرت منذ نقطة زمنية معينة، بينما ستعرض لك التغييرات الشاملة جميع إصدارات كل صف تم تغييره، بما في ذلك الإصدارات التي تم حذفها أو تحديثها. على سبيل المثال، إذا قمت بتحديث صف، فسترى إصدار حذف وإصدار إدراج في تغييرات شاملة، ولكن فقط إصدار الإدراج في صفوف تم تغييرها. اعتمادا على حالة الاستخدام الخاصة بك، يمكنك اختيار الخيار الذي يناسب احتياجاتك. الخيار الافتراضي خطأ، مما يعني تغييرات شاملة. No Boolean netChanges
تضمين أعمدة النظام عند استخدام تتبع تغيير snowflake، يمكنك استخدام خيار systemColumns للتحكم في ما إذا كانت أعمدة دفق بيانات التعريف التي يوفرها Snowflake مضمنة أو مستبعدة في إخراج تعقب التغيير. بشكل افتراضي، يتم تعيين systemColumns إلى true، ما يعني تضمين أعمدة دفق بيانات التعريف. يمكنك تعيين systemColumns إلى false إذا كنت تريد استبعادها. No Boolean systemColumns
بدء القراءة من البداية سيؤدي تعيين هذا الخيار باستخدام الاستخراج المتزايد وتعقب التغيير إلى توجيه ADF لقراءة جميع الصفوف عند التنفيذ الأول للبنية الأساسية لبرنامج ربط العمليات التجارية مع تشغيل الاستخراج التزايدي. No Boolean skipInitialLoad

أمثلة النص مصدر Snowflake

عند استخدام مجموعة بيانات Snowflake كنوع المصدر، يكون البرنامج النصي لتدفق البيانات المقترنة:

source(allowSchemaDrift: true,
	validateSchema: false,
	query: 'select * from MYTABLE',
	format: 'query') ~> SnowflakeSource

إذا كنت تستخدم مجموعة بيانات مضمنة، يكون البرنامج النصي لتدفق البيانات المقترنة:

source(allowSchemaDrift: true,
	validateSchema: false,
	format: 'query',
	query: 'select * from MYTABLE',
	store: 'snowflake') ~> SnowflakeSource

تتبع التغيير الأصلي

يدعم Azure Data Factory الآن ميزة أصلية في Snowflake تعرف باسم تعقب التغييرات، والتي تتضمن تعقب التغييرات في شكل سجلات. تسمح لنا هذه الميزة من snowflake بتعقب التغييرات في البيانات بمرور الوقت مما يجعلها مفيدة لغرض تحميل البيانات والتدقيق المتزايد. لاستخدام هذه الميزة، عند تمكين Change data capture وتحديد Snowflake Change Tracking، نقوم بإنشاء كائن Stream للجدول المصدر الذي يمكن تعقب التغيير على جدول Snowflake المصدر. بعد ذلك، نستخدم عبارة CHANGES في استعلامنا لجلب البيانات الجديدة أو المحدثة فقط من الجدول المصدر. أيضا، يوصى بجدولة البنية الأساسية لبرنامج ربط العمليات التجارية بحيث يتم استهلاك التغييرات ضمن فاصل زمني من وقت استبقاء البيانات المعين لجدول مصدر snowflake قد يرى المستخدم سلوكا غير متناسق في التغييرات الملتقطة.

تحويل بالوعة

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

Name Description Required القيم المسموح بها خاصية البرنامج النصي لتدفق البيانات
طريقة التحديث حدد العمليات المسموح بها في وجهة Snowflake.
لتحديث الصفوف أو رفعها أو حذفها، يلزم تحويل الصف البديل لوضع علامة على الصفوف لهذه الإجراءات.
Yes true أو false deletable
insertable
updateable
upsertable
الأعمدة الرئيسية بالنسبة للتحديثات وعمليات التنشيط والحذف، يجب تعيين عمود أو أعمدة مفتاح لتحديد الصف الذي ستتم إعادة تعديله. No Array keys
إجراء الجدول يحدد ما إذا كان سيتم إعادة إنشاء أو إزالة كل الصفوف من الجدول الوجهة قبل الكتابة.
- بلا: لن يتم اتخاذ أي إجراء للجدول.
- إعادة إنشاء: سيتم إسقاط الجدول وإعادة إنشائه. مطلوب في حال إنشاء جدول جديد بشكل ديناميكي.
- اقتطاع: ستتم إزالة جميع الصفوف من الجدول الهدف.
No true أو false recreate
truncate

أمثلة النص متلقي Snowflake

عند استخدام مجموعة بيانات Snowflake كنوع المتلقي، يكون البرنامج النصي لتدفق البيانات المقترنة:

IncomingStream sink(allowSchemaDrift: true,
	validateSchema: false,
	deletable:true,
	insertable:true,
	updateable:true,
	upsertable:false,
	keys:['movieId'],
	format: 'table',
	skipDuplicateMapInputs: true,
	skipDuplicateMapOutputs: true) ~> SnowflakeSink

إذا كنت تستخدم مجموعة بيانات مضمنة، يكون البرنامج النصي لتدفق البيانات المقترنة:

IncomingStream sink(allowSchemaDrift: true,
	validateSchema: false,
	format: 'table',
	tableName: 'table',
	schemaName: 'schema',
	deletable: true,
	insertable: true,
	updateable: true,
	upsertable: false,
	store: 'snowflake',
	skipDuplicateMapInputs: true,
	skipDuplicateMapOutputs: true) ~> SnowflakeSink

تحسين دفع الاستعلام

من خلال تعيين مستوى تسجيل البنية الأساسية لبرنامج ربط العمليات التجارية إلى بلا، نستبعد نقل مقاييس التحويل الوسيط، ومنع العوائق المحتملة لتحسينات Spark وتمكين تحسين دفع الاستعلام الذي يوفره Snowflake. يسمح تحسين الإيقاف المؤقت هذا بتحسينات أداء كبيرة لجداول Snowflake الكبيرة مع مجموعات بيانات واسعة النطاق.

Note

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

تعيين نوع البيانات ل Snowflake V2

عند نسخ البيانات من Snowflake، يتم استخدام التعيينات التالية من أنواع بيانات Snowflake إلى أنواع البيانات المؤقتة داخل الخدمة داخليا. لمعرفة كيفية تعيين نشاط النسخ للمخطط المصدر ونوع البيانات إلى المتلقي، راجع تعيينات المخطط ونوع البيانات.

نوع بيانات Snowflake نوع بيانات مؤقتة للخدمة
الرقم (ع، 0) Decimal
الرقم (ع ، ق حيث ق>0) Decimal
FLOAT Double
VARCHAR String
CHAR String
BINARY Byte[]
BOOLEAN Boolean
DATE DateTime
TIME TimeSpan
TIMESTAMP_LTZ DateTimeOffset
TIMESTAMP_NTZ DateTimeOffset
TIMESTAMP_TZ DateTimeOffset
VARIANT String
OBJECT String
ARRAY String

بحث عن خصائص النشاط

لمزيد من المعلومات حول الخصائص، راجع نشاط البحث.

دورة حياة موصل Snowflake والترقية

يعرض الجدول التالي مرحلة الإصدار وسجلات التغيير لإصدارات مختلفة من موصل Snowflake:

Version مرحلة الإصدار سجل التغيير
ندفة الثلج V1 تمت الإزالة غير قابل للتطبيق.
Snowflake V2 (الإصدار 1.0) يتوفر إصدار GA • إضافة دعم لمصادقة زوج المفاتيح.

• إضافة دعم في storageIntegration نشاط النسخ.

• يتم استخدام الخصائص و و و accountIdentifier لإنشاء اتصال بدلا من الخاصية warehouse .databaseschemaroleconnectionstring

• إضافة دعم ل Decimal في نشاط البحث. سيتم عرض نوع NUMBER، كما هو محدد في Snowflake، كسلسلة في نشاط البحث. إذا كنت تريد إخفاءه إلى نوع رقمي في V2، يمكنك استخدام معلمة البنية الأساسية لبرنامج ربط العمليات التجارية مع دالة int أو دالة حرة. على سبيل المثال، int(activity('lookup').output.firstRow.VALUE)، float(activity('lookup').output.firstRow.VALUE)

• تتم قراءة نوع بيانات الطابع الزمني في Snowflake كنوع بيانات DateTimeOffset في نشاط البحث والبرنامج النصي. إذا كنت لا تزال بحاجة إلى استخدام قيمة Datetime كمعلمة في البنية الأساسية لبرنامج ربط العمليات التجارية بعد الترقية إلى الإصدار 2، يمكنك تحويل نوع DateTimeOffset إلى نوع DateTime باستخدام الدالة formatDateTime (مستحسن) أو دالة concat. على سبيل المثال: formatDateTime(activity('lookup').output.firstRow.DATETIMETYPE)، concat(substring(activity('lookup').output.firstRow.DATETIMETYPE, 0, 19), 'Z')

• تتم قراءة NUMBER (p,0) كنوع بيانات عشري.

• تتم قراءة TIMESTAMP_LTZ TIMESTAMP_NTZ TIMESTAMP_TZ كنوع بيانات DateTimeOffset.

• معلمات البرنامج النصي غير معتمدة في نشاط البرنامج النصي. كبديل، استخدم التعبيرات الديناميكية لمعلمات البرنامج النصي. لمزيد من المعلومات، راجع التعبيرات والوظائف في Azure Data Factory وAzure Synapse Analytics.

• تنفيذ عبارات SQL متعددة في نشاط البرنامج النصي غير مدعوم.
Snowflake V2 (الإصدار 1.1) يتوفر إصدار GA • إضافة دعم لمعلمات البرنامج النصي.

• إضافة دعم لتنفيذ جملة متعددة في نشاط البرنامج النصي.

• إضافة treatDecimalAsString خاصية في نشاط البحث والسكريبت.

• إضافة خاصية UseUtcTimestampsاتصال إضافية .

ترقية موصل Snowflake من V1 إلى V2

لترقية موصل Snowflake من V1 إلى V2، يمكنك إجراء ترقية جنبا إلى جنب، أو ترقية موضعية.

ترقية جنبا إلى جنب

لإجراء ترقية جنبا إلى جنب، أكمل الخطوات التالية:

  1. إنشاء خدمة Snowflake مرتبطة جديدة وتكوينها بالإشارة إلى خصائص الخدمة المرتبطة V2.
  2. إنشاء مجموعة بيانات استنادا إلى خدمة Snowflake المرتبطة التي تم إنشاؤها حديثا.
  3. استبدل الخدمة المرتبطة الجديدة ومجموعة البيانات بأخرى موجودة في البنية الأساسية لبرنامج ربط العمليات التجارية التي تستهدف كائنات V1.

الترقية الموضعية

لإجراء ترقية موضعية، تحتاج إلى تحرير حمولة الخدمة المرتبطة الموجودة وتحديث مجموعة البيانات لاستخدام الخدمة المرتبطة الجديدة.

  1. تحديث النوع من Snowflake إلى SnowflakeV2.

  2. تعديل حمولة الخدمة المرتبطة من تنسيق V1 الخاص بها إلى V2. يمكنك إما تعبئة كل حقل من واجهة المستخدم بعد تغيير النوع المذكور أعلاه، أو تحديث الحمولة مباشرة من خلال محرر JSON. راجع قسم خصائص الخدمة المرتبطة في هذه المقالة للحصول على خصائص الاتصال المدعومة. توضح الأمثلة التالية الاختلافات في الحمولة للخدمات المرتبطة V1 وV2 Snowflake:

    حمولة خدمة Snowflake V1 المرتبطة JSON:

      {
         "name": "Snowflake1",
         "type": "Microsoft.DataFactory/factories/linkedservices",
         "properties": {
             "annotations": [],
             "type": "Snowflake",
             "typeProperties": {
                 "authenticationType": "Basic",
                 "connectionString": "jdbc:snowflake://<fake_account>.snowflakecomputing.com/?user=FAKE_USER&db=FAKE_DB&warehouse=FAKE_DW&schema=PUBLIC",
                 "encryptedCredential": "<your_encrypted_credential_value>"
             },
             "connectVia": {
                 "referenceName": "AzureIntegrationRuntime",
                 "type": "IntegrationRuntimeReference"
             }
         }
     }
    

    حمولة خدمة Snowflake V2 المرتبطة JSON:

     {
         "name": "Snowflake2",
         "type": "Microsoft.DataFactory/factories/linkedservices",
         "properties": {
             "parameters": {
                 "schema": {
                     "type": "string",
                     "defaultValue": "PUBLIC"
                 }
             },
             "annotations": [],
             "type": "SnowflakeV2",
             "typeProperties": {
                 "authenticationType": "Basic",
                 "accountIdentifier": "<FAKE_Account>",
                 "user": "FAKE_USER",
                 "database": "FAKE_DB",
                 "warehouse": "FAKE_DW",
                 "encryptedCredential": "<placeholder>"
             },
             "connectVia": {
                 "referenceName": "AutoResolveIntegrationRuntime",
                 "type": "IntegrationRuntimeReference"
             }
         }
     }
    
  3. تحديث مجموعة البيانات لاستخدام الخدمة المرتبطة الجديدة. يمكنك إما إنشاء مجموعة بيانات جديدة استنادا إلى الخدمة المرتبطة التي تم إنشاؤها حديثا، أو تحديث خاصية نوع مجموعة بيانات موجودة من SnowflakeTable إلى SnowflakeV2Table.

Note

عند نقل الخدمات المرتبطة، قد يعرض قسم معلمة القالب تجاوز خصائص قاعدة البيانات فقط. يمكنك حل ذلك عن طريق تحرير المعلمات يدويا. بعد ذلك، سيظهر قسم Override template parameters سلاسل الاتصال.

قم بترقية موصل Snowflake V2 من الإصدار 1.0 إلى الإصدار 1.1

في صفحة تحرير الخدمة المرتبطة ، حدد 1.1 للإصدار. لمزيد من المعلومات، راجع خصائص الخدمة المرتبطة.

للحصول على قائمة بمخازن البيانات المدعومة كمصادر ومتلقين بواسطة نشاط النسخ، راجع مخازن البيانات والتنسيقات المدعومة.