You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: articles/data-factory/connector-snowflake.md
+37-9Lines changed: 37 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,7 +8,7 @@ ms.service: data-factory
8
8
ms.subservice: data-movement
9
9
ms.topic: conceptual
10
10
ms.custom: synapse
11
-
ms.date: 05/22/2024
11
+
ms.date: 06/24/2024
12
12
---
13
13
14
14
# Copy and transform data in Snowflake using Azure Data Factory or Azure Synapse Analytics
@@ -267,6 +267,7 @@ To copy data from Snowflake, the following properties are supported in the Copy
267
267
| exportSettings | Advanced settings used to retrieve data from Snowflake. You can configure the ones supported by the COPY into command that the service will pass through when you invoke the statement. | Yes |
268
268
|***Under `exportSettings`:***|||
269
269
| type | The type of export command, set to **SnowflakeExportCopyCommand**. | Yes |
270
+
| storageIntegration | Specify the name of your storage integration that you created in the Snowflake. For the prerequisite steps of using the storage integration, see this [article](https://docs.snowflake.com/en/user-guide/data-load-azure-config#option-1-configuring-a-snowflake-storage-integration). | No |
270
271
| additionalCopyOptions | Additional copy options, provided as a dictionary of key-value pairs. Examples: MAX_FILE_SIZE, OVERWRITE. For more information, see [Snowflake Copy Options](https://docs.snowflake.com/en/sql-reference/sql/copy-into-location.html#copy-options-copyoptions). | No |
271
272
| additionalFormatOptions | Additional file format options that are provided to COPY command as a dictionary of key-value pairs. Examples: DATE_FORMAT, TIME_FORMAT, TIMESTAMP_FORMAT. For more information, see [Snowflake Format Type Options](https://docs.snowflake.com/en/sql-reference/sql/copy-into-location.html#format-type-options-formattypeoptions). | No |
272
273
@@ -279,7 +280,15 @@ To copy data from Snowflake, the following properties are supported in the Copy
279
280
280
281
If your sink data store and format meet the criteria described in this section, you can use the Copy activity to directly copy from Snowflake to sink. The service checks the settings and fails the Copy activity run if the following criteria isn't met:
281
282
282
-
- The **sink linked service** is [**Azure Blob storage**](connector-azure-blob-storage.md) with **shared access signature** authentication. If you want to directly copy data to Azure Data Lake Storage Gen2 in the following supported format, you can create an Azure Blob linked service with SAS authentication against your ADLS Gen2 account, to avoid using [staged copy from Snowflake](#staged-copy-from-snowflake).
283
+
- When you specify `storageIntegration` in the source:
284
+
285
+
The **sink linked service** is [**Azure Blob Storage**](connector-azure-blob-storage.md). If you want to directly copy data to Azure Data Lake Storage Gen2 in the following supported format, you can create an Azure Blob Storage linked service against your Azure Data Lake Storage Gen2 account, to avoid using [staged copy from Snowflake](#staged-copy-from-snowflake).
286
+
287
+
You need to grant at least **Storage Blob Data Contributor** role to the Snowflake service principal in the sink Azure Blob Storage or Azure Data Lake Storage Gen2 **Access Control (IAM)**.
288
+
289
+
- When you don't specify `storageIntegration` in the source:
290
+
291
+
The **sink linked service** is [**Azure Blob storage**](connector-azure-blob-storage.md) with **shared access signature** authentication. If you want to directly copy data to Azure Data Lake Storage Gen2 in the following supported format, you can create an Azure Blob Storage linked service with SAS authentication against your Azure Data Lake Storage Gen2 account, to avoid using [staged copy from Snowflake](#staged-copy-from-snowflake).
283
292
284
293
- The **sink data format** is of **Parquet**, **delimited text**, or **JSON** with the following configurations:
285
294
@@ -327,7 +336,8 @@ If your sink data store and format meet the criteria described in this section,
327
336
},
328
337
"additionalFormatOptions": {
329
338
"DATE_FORMAT": "'MM/DD/YYYY'"
330
-
}
339
+
},
340
+
"storageIntegration": "< Snowflake storage integration name >"
331
341
}
332
342
},
333
343
"sink": {
@@ -345,7 +355,10 @@ When your sink data store or format isn't natively compatible with the Snowflake
345
355
To use this feature, create an [Azure Blob storage linked service](connector-azure-blob-storage.md#linked-service-properties) that refers to the Azure storage account as the interim staging. Then specify the `enableStaging` and `stagingSettings` properties in the Copy activity.
346
356
347
357
> [!NOTE]
348
-
> The staging Azure Blob storage linked service must use shared access signature authentication, as required by the Snowflake COPY command. Make sure you grant proper access permission to Snowflake in the staging Azure Blob storage. To learn more about this, see this [article](https://docs.snowflake.com/en/user-guide/data-load-azure-config.html#option-2-generating-a-sas-token).
358
+
> When you specify `storageIntegration` in the source, ensure that you grant at least **Storage Blob Data Contributor** role to the Snowflake service principal in the staging Azure Blob Storage **Access Control (IAM)**.
359
+
360
+
> [!NOTE]
361
+
> When you don't specify `storageIntegration` in the source, the staging Azure Blob Storage linked service must use shared access signature authentication, as required by the Snowflake COPY command. Make sure you grant proper access permission to Snowflake in the staging Azure Blob Storage. To learn more about this, see this [article](https://docs.snowflake.com/en/user-guide/data-load-azure-config.html#option-2-generating-a-sas-token).
349
362
350
363
**Example:**
351
364
@@ -371,7 +384,8 @@ To use this feature, create an [Azure Blob storage linked service](connector-azu
371
384
"type": "SnowflakeV2Source",
372
385
"sqlReaderQuery": "SELECT * FROM MyTable",
373
386
"exportSettings": {
374
-
"type": "SnowflakeExportCopyCommand"
387
+
"type": "SnowflakeExportCopyCommand",
388
+
"storageIntegration": "< Snowflake storage integration name >"
375
389
}
376
390
},
377
391
"sink": {
@@ -405,6 +419,7 @@ To copy data to Snowflake, the following properties are supported in the Copy ac
405
419
| importSettings | Advanced settings used to write data into Snowflake. You can configure the ones supported by the COPY into command that the service will pass through when you invoke the statement. | Yes |
406
420
|***Under `importSettings`:***|||
407
421
| type | The type of import command, set to **SnowflakeImportCopyCommand**. | Yes |
422
+
| storageIntegration | Specify the name of your storage integration that you created in the Snowflake. For the prerequisite steps of using the storage integration, see this [article](https://docs.snowflake.com/en/user-guide/data-load-azure-config#option-1-configuring-a-snowflake-storage-integration). | No |
408
423
| additionalCopyOptions | Additional copy options, provided as a dictionary of key-value pairs. Examples: ON_ERROR, FORCE, LOAD_UNCERTAIN_FILES. For more information, see [Snowflake Copy Options](https://docs.snowflake.com/en/sql-reference/sql/copy-into-table.html#copy-options-copyoptions). | No |
409
424
| additionalFormatOptions | Additional file format options provided to the COPY command, provided as a dictionary of key-value pairs. Examples: DATE_FORMAT, TIME_FORMAT, TIMESTAMP_FORMAT. For more information, see [Snowflake Format Type Options](https://docs.snowflake.com/en/sql-reference/sql/copy-into-table.html#format-type-options-formattypeoptions). | No |
410
425
@@ -421,7 +436,15 @@ To copy data to Snowflake, the following properties are supported in the Copy ac
421
436
422
437
If your source data store and format meet the criteria described in this section, you can use the Copy activity to directly copy from source to Snowflake. The service checks the settings and fails the Copy activity run if the following criteria isn't met:
423
438
424
-
- The **source linked service** is [**Azure Blob storage**](connector-azure-blob-storage.md) with **shared access signature** authentication. If you want to directly copy data from Azure Data Lake Storage Gen2 in the following supported format, you can create an Azure Blob linked service with SAS authentication against your ADLS Gen2 account, to avoid using [staged copy to Snowflake](#staged-copy-to-snowflake).
439
+
- When you specify `storageIntegration` in the sink:
440
+
441
+
The **source linked service** is [**Azure Blob storage**](connector-azure-blob-storage.md). If you want to directly copy data from Azure Data Lake Storage Gen2 in the following supported format, you can create an Azure Blob Storage linked service against your Azure Data Lake Storage Gen2 account, to avoid using [staged copy to Snowflake](#staged-copy-to-snowflake).
442
+
443
+
You need to grant at least **Storage Blob Data Reader** role to the Snowflake service principal in the source Azure Blob Storage or Azure Data Lake Storage Gen2 **Access Control (IAM)**.
444
+
445
+
- When you don't specify `storageIntegration` in the sink:
446
+
447
+
The **source linked service** is [**Azure Blob storage**](connector-azure-blob-storage.md) with **shared access signature** authentication. If you want to directly copy data from Azure Data Lake Storage Gen2 in the following supported format, you can create an Azure Blob Storage linked service with SAS authentication against your Azure Data Lake Storage Gen2 account, to avoid using [staged copy to Snowflake](#staged-copy-to-snowflake).
425
448
426
449
- The **source data format** is **Parquet**, **Delimited text**, or **JSON** with the following configurations:
427
450
@@ -476,7 +499,8 @@ If your source data store and format meet the criteria described in this section
476
499
},
477
500
"fileFormatOptions": {
478
501
"DATE_FORMAT": "YYYY-MM-DD"
479
-
}
502
+
},
503
+
"storageIntegration": "< Snowflake storage integration name >"
480
504
}
481
505
}
482
506
}
@@ -491,7 +515,10 @@ When your source data store or format isn't natively compatible with the Snowfla
491
515
To use this feature, create an [Azure Blob storage linked service](connector-azure-blob-storage.md#linked-service-properties) that refers to the Azure storage account as the interim staging. Then specify the `enableStaging` and `stagingSettings` properties in the Copy activity.
492
516
493
517
> [!NOTE]
494
-
> The staging Azure Blob storage linked service need to use shared access signature authentication as required by the Snowflake COPY command.
518
+
> When you specify `storageIntegration` in the sink, ensure that you grant at least **Storage Blob Data Reader** role to the Snowflake service principal in the staging Azure Blob Storage **Access Control (IAM)**.
519
+
520
+
> [!NOTE]
521
+
> When you don't specify `storageIntegration` in the sink, the staging Azure Blob storage linked service need to use shared access signature authentication as required by the Snowflake COPY command.
495
522
496
523
**Example:**
497
524
@@ -519,7 +546,8 @@ To use this feature, create an [Azure Blob storage linked service](connector-azu
519
546
"sink": {
520
547
"type": "SnowflakeV2Sink",
521
548
"importSettings": {
522
-
"type": "SnowflakeImportCopyCommand"
549
+
"type": "SnowflakeImportCopyCommand",
550
+
"storageIntegration": "< Snowflake storage integration name >"
Copy file name to clipboardExpand all lines: articles/data-factory/copy-activity-performance-features.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,7 +8,7 @@ ms.service: data-factory
8
8
ms.subservice: data-movement
9
9
ms.topic: conceptual
10
10
ms.custom: synapse
11
-
ms.date: 01/05/2024
11
+
ms.date: 06/24/2024
12
12
13
13
---
14
14
@@ -153,7 +153,7 @@ Configure the **enableStaging** setting in the copy activity to specify whether
153
153
| --- | --- | --- | --- |
154
154
| enableStaging |Specify whether you want to copy data via an interim staging store. |False |No |
155
155
| linkedServiceName |Specify the name of an [Azure Blob storage](connector-azure-blob-storage.md#linked-service-properties) or [Azure Data Lake Storage Gen2](connector-azure-data-lake-storage.md#linked-service-properties) linked service, which refers to the instance of Storage that you use as an interim staging store. |N/A |Yes, when **enableStaging** is set to TRUE |
156
-
| path |Specify the path that you want to contain the staged data. If you don't provide a path, the service creates a container to store temporary data. |N/A |No |
156
+
| path |Specify the path that you want to contain the staged data. If you don't provide a path, the service creates a container to store temporary data. When `storageIntegration` in Snowflake connector is specified, the path is required. |N/A |No |
157
157
| enableCompression |Specifies whether data should be compressed before it's copied to the destination. This setting reduces the volume of data being transferred. |False |No |
0 commit comments