إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
ينطبق على:
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 التالية:
- أداة نسخ البيانات
- مدخل Microsoft Azure
- .NET SDK
- حزمة تطوير التطوير الخاصة لبايثون
- Azure PowerShell
- واجهة برمجة التطبيقات REST
- قالب Azure Resource Manager
إنشاء خدمة مرتبطة بـ Snowflake باستخدام واجهة المستخدم
استخدم الخطوات التالية لإنشاء خدمة مرتبطة إلى Snowflake في واجهة مستخدم مدخل Microsoft Azure.
استعرض للوصول إلى علامة التبويب "Manage" في مصنع بيانات Azure أو مساحة عمل Synapse، وحدد "Linked Services"، ثم انقر فوق "New":
البحث عن Snowflake وتحديد موصل 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. تحتاج إلى إكمال الخطوات التالية قبل نسخ البيانات:
إنشاء خدمة مرتبطة ب Azure Blob Storage لتخزين Azure Blob المتلقي مع أي أنواع مصادقة مدعومة.
امنح دور 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 REGIONSCREATE OR REPLACE STAGEDROP STAGE
نسخة مباشرة إلى Snowflake
إذا كان مخزن البيانات المصدر والتنسيق يفيان بالمعايير الموضحة في هذا القسم، يمكنك استخدام نشاط النسخ للنسخ المباشر من المصدر إلى Snowflake. تتحقق الخدمة من الإعدادات وتفشل في تشغيل نشاط النسخ إذا لم يتم استيفاء المعايير التالية:
عند تحديد
storageIntegrationفي المتلقي:مخزن البيانات المصدر هو Azure Blob Storage الذي أشرت إليه في المرحلة الخارجية في Snowflake. تحتاج إلى إكمال الخطوات التالية قبل نسخ البيانات:
إنشاء خدمة مرتبطة ب Azure Blob Storage لمصدر Azure Blob Storage مع أي أنواع مصادقة مدعومة.
امنح دور 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إلى صحيح. -
prefixmodifiedDateTimeStartmodifiedDateTimeEndلم يتم تحديد و و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، يمكنك إجراء ترقية جنبا إلى جنب، أو ترقية موضعية.
ترقية جنبا إلى جنب
لإجراء ترقية جنبا إلى جنب، أكمل الخطوات التالية:
- إنشاء خدمة Snowflake مرتبطة جديدة وتكوينها بالإشارة إلى خصائص الخدمة المرتبطة V2.
- إنشاء مجموعة بيانات استنادا إلى خدمة Snowflake المرتبطة التي تم إنشاؤها حديثا.
- استبدل الخدمة المرتبطة الجديدة ومجموعة البيانات بأخرى موجودة في البنية الأساسية لبرنامج ربط العمليات التجارية التي تستهدف كائنات V1.
الترقية الموضعية
لإجراء ترقية موضعية، تحتاج إلى تحرير حمولة الخدمة المرتبطة الموجودة وتحديث مجموعة البيانات لاستخدام الخدمة المرتبطة الجديدة.
تحديث النوع من Snowflake إلى SnowflakeV2.
تعديل حمولة الخدمة المرتبطة من تنسيق 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" } } }تحديث مجموعة البيانات لاستخدام الخدمة المرتبطة الجديدة. يمكنك إما إنشاء مجموعة بيانات جديدة استنادا إلى الخدمة المرتبطة التي تم إنشاؤها حديثا، أو تحديث خاصية نوع مجموعة بيانات موجودة من SnowflakeTable إلى SnowflakeV2Table.
Note
عند نقل الخدمات المرتبطة، قد يعرض قسم معلمة القالب تجاوز خصائص قاعدة البيانات فقط. يمكنك حل ذلك عن طريق تحرير المعلمات يدويا. بعد ذلك، سيظهر قسم Override template parameters سلاسل الاتصال.
قم بترقية موصل Snowflake V2 من الإصدار 1.0 إلى الإصدار 1.1
في صفحة تحرير الخدمة المرتبطة ، حدد 1.1 للإصدار. لمزيد من المعلومات، راجع خصائص الخدمة المرتبطة.
المحتوى ذو الصلة
للحصول على قائمة بمخازن البيانات المدعومة كمصادر ومتلقين بواسطة نشاط النسخ، راجع مخازن البيانات والتنسيقات المدعومة.