Aracılığıyla paylaş


Azure Data Factory veya Azure Synapse Analytics kullanarak SFTP sunucusundaki verileri kopyalama ve dönüştürme

UYGULANANLAR: Azure Data Factory Azure Synapse Analytics

İpucu

Kuruluşlar için hepsi bir arada analiz çözümü olan Microsoft Fabric'te Data Factory'yi deneyin. Microsoft Fabric , veri taşımadan veri bilimine, gerçek zamanlı analize, iş zekasına ve raporlamaya kadar her şeyi kapsar. Yeni bir deneme sürümünü ücretsiz olarak başlatmayı öğrenin!

Bu makalede, güvenli FTP (SFTP) sunucusundan veri kopyalamak ve SFTP sunucusundaki verileri dönüştürmek için Veri Akışı kullanmak için Kopyalama Etkinliği'nin nasıl kullanılacağı özetlenmiştir. Daha fazla bilgi edinmek için Azure Data Factory veya Azure Synapse Analytics ile ilgili giriş makalesini okuyun.

Desteklenen özellikler

Bu SFTP bağlayıcısı aşağıdaki özellikler için desteklenir:

Desteklenen özellikler IR
Kopyalama etkinliği (kaynak/havuz) (1) (2)
Eşleme veri akışı (kaynak/havuz) (1)
Arama etkinliği (1) (2)
GetMetadata etkinliği (1) (2)
Silme etkinliği (1) (2)

(1) Azure tümleştirme çalışma zamanı (2) Şirket içinde barındırılan tümleştirme çalışma zamanı

SFTP bağlayıcısı özellikle şunları destekler:

  • Temel, SSH ortak anahtarı veya çok faktörlü kimlik doğrulaması kullanarak SFTP sunucusundan ve sunucusundan dosya kopyalama.
  • Dosyaları olduğu gibi kopyalama veya desteklenen dosya biçimleri ve sıkıştırma codec bileşenleriyle dosyaları ayrıştırma veya oluşturma.

Önkoşullar

Veri deponuz bir şirket içi ağ, Azure sanal ağı veya Amazon Sanal Özel Bulut içinde bulunuyorsa, şirket içinde barındırılan tümleştirme çalışma zamanını buna bağlanmak için yapılandırmanız gerekir.

Veri deponuz yönetilen bir bulut veri hizmetiyse Azure Integration Runtime'ı kullanabilirsiniz. Erişim, güvenlik duvarı kurallarında onaylanan IP'ler ile sınırlıysa Azure Integration Runtime IP'lerini izin verme listesine ekleyebilirsiniz.

Şirket içinde barındırılan tümleştirme çalışma zamanı yüklemeden ve yapılandırmadan şirket içi ağa erişmek için Azure Data Factory'deki yönetilen sanal ağ tümleştirme çalışma zamanı özelliğini de kullanabilirsiniz.

Data Factory tarafından desteklenen ağ güvenlik mekanizmaları ve seçenekleri hakkında daha fazla bilgi için bkz . Veri erişim stratejileri.

Kullanmaya başlayın

İşlem hattıyla Kopyalama etkinliği gerçekleştirmek için aşağıdaki araçlardan veya SDK'lardan birini kullanabilirsiniz:

Kullanıcı arabirimini kullanarak SFTP bağlı hizmeti oluşturma

Azure portalı kullanıcı arabiriminde SFTP bağlı hizmeti oluşturmak için aşağıdaki adımları kullanın.

  1. Azure Data Factory veya Synapse çalışma alanınızda Yönet sekmesine göz atın ve Bağlı Hizmetler'i seçin, ardından Yeni'ye tıklayın:

  2. SFTP'yi arayın ve SFTP bağlayıcısını seçin.

    SFTP bağlayıcısının ekran görüntüsü.

  3. Hizmet ayrıntılarını yapılandırın, bağlantıyı test edin ve yeni bağlı hizmeti oluşturun.

    SFTP bağlı hizmetinin yapılandırmasının ekran görüntüsü.

Bağlayıcı yapılandırma ayrıntıları

Aşağıdaki bölümlerde SFTP'ye özgü varlıkları tanımlamak için kullanılan özelliklerle ilgili ayrıntılar sağlanır.

Bağlı hizmet özellikleri

SFTP bağlı hizmeti için aşağıdaki özellikler desteklenir:

Özellik Açıklama Gerekli
Tür type özelliği Sftp olarak ayarlanmalıdır. Yes
host SFTP sunucusunun adı veya IP adresi. Yes
port SFTP sunucusunun dinlediği bağlantı noktası.
İzin verilen değer bir tamsayıdır ve varsayılan değer 22'dir.
Hayır
skipHostKeyValidation Konak anahtarı doğrulamasının atlanıp atlanmayacağını belirtin.
İzin verilen değerler true ve false (varsayılan) değerleridir.
Hayır
hostKeyFingerprint Konak anahtarının parmak izini belirtin. Evet, "skipHostKeyValidation" false olarak ayarlandıysa.
authenticationType Kimlik doğrulama türünü belirtin.
İzin verilen değerler Basic, SshPublicKey ve MultiFactor değerleridir. Diğer özellikler için Temel kimlik doğrulamasını kullanma bölümüne bakın. JSON örnekleri için SSH ortak anahtar kimlik doğrulamasını kullanma bölümüne bakın.
Yes
connectVia Veri deposuna bağlanmak için kullanılacak tümleştirme çalışma zamanı . Daha fazla bilgi edinmek için Önkoşullar bölümüne bakın. Tümleştirme çalışma zamanı belirtilmezse, hizmet varsayılan Azure Integration Runtime'ı kullanır. Hayır

Temel kimlik doğrulamayı kullanma

Temel kimlik doğrulamasını kullanmak için authenticationType özelliğini Temel olarak ayarlayın ve önceki bölümde tanıtılan SFTP bağlayıcısı genel özelliklerine ek olarak aşağıdaki özellikleri belirtin:

Özellik Açıklama Gerekli
userName SFTP sunucusuna erişimi olan kullanıcı. Yes
password Kullanıcının parolası (userName). Güvenli bir şekilde depolamak için bu alanı SecureString olarak işaretleyin veya Azure anahtar kasasında depolanan bir gizli diziye başvurun. Yes

Örnek:

{
    "name": "SftpLinkedService",
    "properties": {
        "type": "Sftp",
        "typeProperties": {
            "host": "<sftp server>",
            "port": 22,
            "skipHostKeyValidation": false,
            "hostKeyFingerPrint": "ssh-rsa 2048 xx:00:00:00:xx:00:x0:0x:0x:0x:0x:00:00:x0:x0:00",
            "authenticationType": "Basic",
            "userName": "<username>",
            "password": {
                "type": "SecureString",
                "value": "<password>"
            }
        },
        "connectVia": {
            "referenceName": "<name of integration runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

SSH ortak anahtar kimlik doğrulamasını kullanma

SSH ortak anahtar kimlik doğrulamasını kullanmak için "authenticationType" özelliğini SshPublicKey olarak ayarlayın ve son bölümde sunulan SFTP bağlayıcısı genel özelliklerinin yanında aşağıdaki özellikleri belirtin:

Özellik Açıklama Gerekli
userName SFTP sunucusuna erişimi olan kullanıcı. Yes
privateKeyPath Tümleştirme çalışma zamanının erişebileceği özel anahtar dosyasının mutlak yolunu belirtin. Bu yalnızca şirket içinde barındırılan tümleştirme çalışma zamanı türü "connectVia" içinde belirtildiğinde geçerlidir. privateKeyPath veya privateKeyContentbelirtin.
privateKeyContent Base64 kodlanmış SSH özel anahtar içeriği. SSH özel anahtarı OpenSSH biçiminde olmalıdır. Güvenli bir şekilde depolamak için bu alanı SecureString olarak işaretleyin veya Azure anahtar kasasında depolanan bir gizli diziye başvurun. privateKeyPath veya privateKeyContentbelirtin.
parola Anahtar dosyası veya anahtar içeriği bir geçiş tümceciğiyle korunuyorsa özel anahtarın şifresini çözmek için geçiş tümceciği veya parola belirtin. Güvenli bir şekilde depolamak için bu alanı SecureString olarak işaretleyin veya Azure anahtar kasasında depolanan bir gizli diziye başvurun. Evet, özel anahtar dosyası veya anahtar içeriği bir geçiş tümceciğiyle korunuyorsa.

Not

SFTP bağlayıcısı bir RSA/DSA OpenSSH anahtarını destekler. Anahtar dosyanızın içeriğinin "-----BEGIN [RSA/DSA] PRIVATE KEY-----" ile başladığından emin olun. Özel anahtar dosyası PPK biçiminde bir dosyaysa, PPK'den OpenSSH biçimine dönüştürmek için PuTTY aracını kullanın.

Örnek 1: Özel anahtar filePath kullanarak SshPublicKey kimlik doğrulaması

{
    "name": "SftpLinkedService",
    "properties": {
        "type": "Sftp",
        "typeProperties": {
            "host": "<sftp server>",
            "port": 22,
            "skipHostKeyValidation": true,
            "authenticationType": "SshPublicKey",
            "userName": "xxx",
            "privateKeyPath": "D:\\privatekey_openssh",
            "passPhrase": {
                "type": "SecureString",
                "value": "<pass phrase>"
            }
        },
        "connectVia": {
            "referenceName": "<name of integration runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Örnek 2: Özel anahtar içeriği kullanılarak SshPublicKey kimlik doğrulaması

{
    "name": "SftpLinkedService",
    "type": "Linkedservices",
    "properties": {
        "type": "Sftp",
        "typeProperties": {
            "host": "<sftp server>",
            "port": 22,
            "skipHostKeyValidation": true,
            "authenticationType": "SshPublicKey",
            "userName": "<username>",
            "privateKeyContent": {
                "type": "SecureString",
                "value": "<base64 string of the private key content>"
            },
            "passPhrase": {
                "type": "SecureString",
                "value": "<pass phrase>"
            }
        },
        "connectVia": {
            "referenceName": "<name of integration runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Çok faktörlü kimlik doğrulamasını kullanma

Temel ve SSH ortak anahtar kimlik doğrulamalarının birleşimi olan çok faktörlü kimlik doğrulamasını kullanmak için, yukarıdaki bölümlerde açıklanan kullanıcı adını, parolayı ve özel anahtar bilgilerini belirtin.

Örnek: çok faktörlü kimlik doğrulaması

{
    "name": "SftpLinkedService",
    "properties": {
        "type": "Sftp",
        "typeProperties": {
            "host": "<host>",
            "port": 22,
            "authenticationType": "MultiFactor",
            "userName": "<username>",
            "password": {
                "type": "SecureString",
                "value": "<password>"
            },
            "privateKeyContent": {
                "type": "SecureString",
                "value": "<base64 encoded private key content>"
            },
            "passPhrase": {
                "type": "SecureString",
                "value": "<passphrase for private key>"
            }
        },
        "connectVia": {
            "referenceName": "<name of integration runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Veri kümesi özellikleri

Veri kümelerini tanımlamak için kullanılabilen bölümlerin ve özelliklerin tam listesi için Veri kümeleri makalesine bakın.

Azure Data Factory aşağıdaki dosya biçimlerini destekler. Biçim tabanlı ayarlar için her makaleye bakın.

Aşağıdaki özellikler, biçim tabanlı veri kümesindeki ayarlar altında location SFTP için desteklenir:

Özellik Açıklama Gerekli
Tür veri kümesinde altındaki type özelliği location SftpLocation olarak ayarlanmalıdır. Yes
folderPath Klasörün yolu. Klasörü filtrelemek için joker karakter kullanmak istiyorsanız, bu ayarı atlayın ve etkinlik kaynağı ayarlarında yolu belirtin. Hayır
fileName Belirtilen folderPath altındaki dosya adı. Dosyaları filtrelemek için joker karakter kullanmak istiyorsanız, bu ayarı atlayın ve etkinlik kaynağı ayarlarında dosya adını belirtin. Hayır

Örnek:

{
    "name": "DelimitedTextDataset",
    "properties": {
        "type": "DelimitedText",
        "linkedServiceName": {
            "referenceName": "<SFTP linked service name>",
            "type": "LinkedServiceReference"
        },
        "schema": [ < physical schema, optional, auto retrieved during authoring > ],
        "typeProperties": {
            "location": {
                "type": "SftpLocation",
                "folderPath": "root/folder/subfolder"
            },
            "columnDelimiter": ",",
            "quoteChar": "\"",
            "firstRowAsHeader": true,
            "compressionCodec": "gzip"
        }
    }
}

Kopyalama etkinliğinin özellikleri

Etkinlikleri tanımlamak için kullanılabilen bölümlerin ve özelliklerin tam listesi için İşlem Hatları makalesine bakın. Bu bölüm, SFTP kaynağı tarafından desteklenen özelliklerin listesini sağlar.

Kaynak olarak SFTP

Azure Data Factory aşağıdaki dosya biçimlerini destekler. Biçim tabanlı ayarlar için her makaleye bakın.

SFTP için aşağıdaki özellikler, biçim tabanlı Kopyalama kaynağındaki ayarlar altında storeSettings desteklenir:

Özellik Açıklama Gerekli
Tür altındaki storeSettings type özelliği SftpReadSettings olarak ayarlanmalıdır. Yes
Kopyalanacak dosyaları bulma
SEÇENEK 1: statik yol
Veri kümesinde belirtilen klasörden/dosya yolundan kopyalayın. Bir klasörden tüm dosyaları kopyalamak istiyorsanız, ek olarak olarak *belirtinwildcardFileName.
SEÇENEK 2: joker karakter
- wildcardFolderPath
Kaynak klasörleri filtrelemek için joker karakterler içeren klasör yolu.
İzin verilen joker karakterler şunlardır * (sıfır veya daha fazla karakterle eşleşir) ve ? (sıfır veya tek karakterle eşleşir); gerçek klasör adınızın içinde joker karakter veya bu kaçış karakteri varsa kaçış yapmak için kullanın ^ .
Daha fazla örnek için bkz . Klasör ve dosya filtresi örnekleri.
Hayır
SEÇENEK 2: joker karakter
- wildcardFileName
Kaynak dosyaları filtrelemek için belirtilen folderPath/wildcardFolderPath altında joker karakterler içeren dosya adı.
İzin verilen joker karakterler şunlardır * (sıfır veya daha fazla karakterle eşleşir) ve ? (sıfır veya tek karakterle eşleşir); gerçek dosya adınızın içinde joker karakter veya bu kaçış karakteri varsa kaçış için kullanın ^ . Daha fazla örnek için bkz . Klasör ve dosya filtresi örnekleri.
Yes
SEÇENEK 3: dosyaların listesi
- fileListPath
Belirtilen dosya kümesinin kopyalandığını gösterir. Kopyalamak istediğiniz dosyaların listesini içeren bir metin dosyasının üzerine gelin (satır başına bir dosya, veri kümesinde yapılandırılmış yolun göreli yolu).
Bu seçeneği kullandığınızda, veri kümesinde dosya adını belirtmeyin. Daha fazla örnek için bkz . Dosya listesi örnekleri.
Hayır
Ek ayarlar
Özyinelemeli Verilerin alt klasörlerden veya yalnızca belirtilen klasörden özyinelemeli olarak okunup okunmadığını gösterir. Özyineleme true olarak ayarlandığında ve havuz dosya tabanlı bir depo olduğunda, havuza boş bir klasör veya alt klasör kopyalanır veya oluşturulmaz.
İzin verilen değerler true (varsayılan) ve false değerleridir.
Yapılandırdığınızda fileListPathbu özellik geçerli değildir.
Hayır
deleteFilesAfterCompletion hedef depoya başarıyla taşındıktan sonra ikili dosyaların kaynak depodan silinip silinmeyeceğini gösterir. Dosya silme işlemi dosya başınadır, bu nedenle kopyalama etkinliği başarısız olduğunda bazı dosyaların hedefe kopyalandığını ve kaynaktan silindiğini, diğerleri ise kaynak depoda kaldığını görürsünüz.
Bu özellik yalnızca ikili dosya kopyalama senaryosunda geçerlidir. Varsayılan değer: false.
Hayır
modifiedDatetimeStart Dosyalar, Son Değiştirme Tarihi özniteliğine göre filtrelenir.
Dosyalar, son değiştirme süreleri değerinden büyük veya buna eşit modifiedDatetimeStart ve değerinden modifiedDatetimeEndküçükse seçilir. Saat UTC saat dilimine 2018-12-01T05:00:00Z biçiminde uygulanır.
Özellikler NULL olabilir; başka bir deyişle veri kümesine hiçbir dosya özniteliği filtresi uygulanmaz. Bir datetime değeri olduğunda modifiedDatetimeStart ancak modifiedDatetimeEnd NULL olduğunda, son değiştirilen özniteliği datetime değerinden büyük veya buna eşit olan dosyaların seçildiği anlamına gelir. Tarih saat değeri olduğunda modifiedDatetimeEnd ancak modifiedDatetimeStart NULL olduğunda, son değiştirilen özniteliği datetime değerinden küçük olan dosyaların seçili olduğu anlamına gelir.
Yapılandırdığınızda fileListPathbu özellik geçerli değildir.
Hayır
modifiedDatetimeEnd Yukarıdakiyle aynıdır. Hayır
enablePartitionDiscovery Bölümlenmiş dosyalar için, bölümlerin dosya yolundan ayrıştırılıp ayrıştırılmayacağını belirtin ve bunları ek kaynak sütunlar olarak ekleyin.
İzin verilen değerler false (varsayılan) ve true değerleridir.
Hayır
partitionRootPath Bölüm bulma etkinleştirildiğinde, bölümlenmiş klasörleri veri sütunları olarak okumak için mutlak kök yolu belirtin.

Belirtilmezse, varsayılan olarak,
- Veri kümesinde dosya yolunu veya kaynaktaki dosyaların listesini kullandığınızda, bölüm kök yolu veri kümesinde yapılandırılan yoldur.
- Joker karakter klasör filtresi kullandığınızda, bölüm kök yolu ilk joker karakterden önceki alt yoldur.

Örneğin, veri kümesindeki yolu "root/folder/year=2020/month=08/day=27" olarak yapılandırdığınız varsayılır:
- Bölüm kök yolunu "root/folder/year=2020" olarak belirtirseniz kopyalama etkinliği, dosyaların içindeki sütunlara ek olarak sırasıyla "08" ve "27" değerine sahip iki sütun month day daha oluşturur.
- Bölüm kök yolu belirtilmezse, ek sütun oluşturulmaz.
Hayır
maxConcurrentConnections Etkinlik çalıştırması sırasında veri deposuna kurulan eş zamanlı bağlantıların üst sınırı. Yalnızca eşzamanlı bağlantıları sınırlamak istediğinizde bir değer belirtin. Hayır
disableChunking SFTP'den veri kopyalarken, hizmet önce dosya uzunluğunu almaya çalışır, ardından dosyayı birden çok bölüme böler ve paralel olarak okur. SFTP sunucunuzun dosya uzunluğunu almayı mı yoksa belirli bir uzaklığı okumayı mı desteklediğini belirtin.
İzin verilen değerler false (varsayılan), true değerleridir.
Hayır

Örnek:

"activities":[
    {
        "name": "CopyFromSFTP",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<Delimited text input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "DelimitedTextSource",
                "formatSettings":{
                    "type": "DelimitedTextReadSettings",
                    "skipLineCount": 10
                },
                "storeSettings":{
                    "type": "SftpReadSettings",
                    "recursive": true,
                    "wildcardFolderPath": "myfolder*A",
                    "wildcardFileName": "*.csv",
                    "disableChunking": false
                }
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

Havuz olarak SFTP

Azure Data Factory aşağıdaki dosya biçimlerini destekler. Biçim tabanlı ayarlar için her makaleye bakın.

SFTP için, biçim tabanlı kopyalama havuzundaki ayarlar altında storeSettings aşağıdaki özellikler desteklenir:

Özellik Açıklama Gerekli
Tür altındaki storeSettings type özelliği SftpWriteSettings olarak ayarlanmalıdır. Yes
copyBehavior Kaynak dosya tabanlı bir veri deposundaki dosyalar olduğunda kopyalama davranışını tanımlar.

İzin verilen değerler şunlardır:
- PreserveHierarchy (varsayılan): Hedef klasördeki dosya hiyerarşisini korur. Kaynak dosyanın kaynak klasöre göreli yolu, hedef dosyanın hedef klasöre göreli yolu ile aynıdır.
- FlattenHierarchy: Kaynak klasördeki tüm dosyalar hedef klasörün ilk düzeyindedir. Hedef dosyalar otomatik olarak oluşturulan adlara sahiptir.
- MergeFiles: Kaynak klasördeki tüm dosyaları tek bir dosyayla birleştirir. Dosya adı belirtilirse, birleştirilmiş dosya adı belirtilen addır. Aksi takdirde, otomatik olarak oluşturulan bir dosya adıdır.
Hayır
maxConcurrentConnections Etkinlik çalıştırması sırasında veri deposuna kurulan eş zamanlı bağlantıların üst sınırı. Yalnızca eşzamanlı bağlantıları sınırlamak istediğinizde bir değer belirtin. Hayır
useTempFileRename Geçici dosyalara yüklenip yeniden adlandırılmayacağını veya doğrudan hedef klasöre veya dosya konumuna yazılıp yazılmayacağını belirtin. Varsayılan olarak, hizmet önce geçici dosyalara yazar ve karşıya yükleme tamamlandığında bunları yeniden adlandırır. Bu dizi (1) aynı dosyaya yazan başka işlemleriniz varsa dosyanın bozulmasına neden olabilecek çakışmaları önlemeye ve (2) aktarım sırasında dosyanın özgün sürümünün mevcut olduğundan emin olmanıza yardımcı olur. SFTP sunucunuz yeniden adlandırma işlemini desteklemiyorsa bu seçeneği devre dışı bırakın ve hedef dosyaya eşzamanlı yazma işlemine sahip olmadığınızdan emin olun. Daha fazla bilgi için bu tablonun sonundaki sorun giderme ipucuna bakın. Hayır Varsayılan değer true değeridir.
operationTimeout SFTP sunucusuna yapılan her yazma isteğinin zaman aşımına uğraması için bekleme süresi. Varsayılan değer 60 dakikadır (01:00:00). Hayır

İpucu

SFTP'ye veri yazarken "UserErrorSftpPathNotFound", "UserErrorSftpPermissionDenied" veya "SftpOperationFail" hatasını alırsanız ve kullandığınız SFTP kullanıcısı uygun izinlere sahipse , SFTP sunucunuzun dosya yeniden adlandırma işleminin çalışıp çalışmadığını denetleyin. Değilse, Geçici dosyauseTempFileRename () ile karşıya yükle seçeneğini devre dışı bırakın ve yeniden deneyin. Bu özellik hakkında daha fazla bilgi edinmek için önceki tabloya bakın. Kopyalama etkinliği için şirket içinde barındırılan tümleştirme çalışma zamanı kullanıyorsanız 4.6 veya sonraki bir sürümü kullandığınızdan emin olun.

Örnek:

"activities":[
    {
        "name": "CopyToSFTP",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "<source type>"
            },
            "sink": {
                "type": "BinarySink",
                "storeSettings":{
                    "type": "SftpWriteSettings",
                    "copyBehavior": "PreserveHierarchy"
                }
            }
        }
    }
]

Klasör ve dosya filtresi örnekleri

Bu bölümde, klasör yolları ve dosya adlarıyla joker karakter filtrelerinin kullanılmasından kaynaklanan davranış açıklanmaktadır.

folderPath fileName Özyinelemeli Kaynak klasör yapısı ve filtre sonucu (kalın yazılmış dosyalar alınır)
Folder* (boş, varsayılanı kullan) yanlış KlasörA
    File1.csv
    File2.json
    Alt Klasör1
        File3.csv
        File4.json
        File5.csv
AnotherFolderB
    File6.csv
Folder* (boş, varsayılanı kullan) true KlasörA
    File1.csv
    File2.json
    Alt Klasör1
        File3.csv
        File4.json
        File5.csv
AnotherFolderB
    File6.csv
Folder* *.csv yanlış KlasörA
    File1.csv
    File2.json
    Alt Klasör1
        File3.csv
        File4.json
        File5.csv
AnotherFolderB
    File6.csv
Folder* *.csv true KlasörA
    File1.csv
    File2.json
    Alt Klasör1
        File3.csv
        File4.json
        File5.csv
AnotherFolderB
    File6.csv

Dosya listesi örnekleri

Bu tabloda, Kopyalama etkinliği kaynağında dosya listesi yolunun kullanılmasından kaynaklanan davranış açıklanmaktadır. Aşağıdaki kaynak klasör yapısına sahip olduğunuzu ve kalın yazı tipindeki dosyaları kopyalamak istediğinizi varsayar:

Örnek kaynak yapısı FileListToCopy.txt içeriği Azure Data Factory yapılandırması
kök
    KlasörA
        File1.csv
        File2.json
        Alt Klasör1
            File3.csv
            File4.json
            File5.csv
    Meta veri
        FileListToCopy.txt
File1.csv
Alt Klasör1/File3.csv
Alt Klasör1/File5.csv
Veri kümesinde:
- Klasör yolu: root/FolderA

Kopyalama etkinliği kaynağında:
- Dosya listesi yolu: root/Metadata/FileListToCopy.txt

Dosya listesi yolu, kopyalamak istediğiniz dosyaların listesini içeren aynı veri deposundaki bir metin dosyasını gösterir (veri kümesinde yapılandırılmış yolun göreli yolu ile her satırda bir dosya).

Eşleme veri akışı özellikleri

Eşleme veri akışlarında verileri dönüştürürken, SFTP'den dosyaları aşağıdaki biçimlerde okuyabilir ve yazabilirsiniz:

Biçime özgü ayarlar, bu biçimin belgelerinde bulunur. Daha fazla bilgi için bkz. Eşleme veri akışında kaynak dönüşümü ve eşleme veri akışında havuz dönüşümü.

Not

SSH ana bilgisayar anahtarı doğrulaması şu anda eşleme veri akışında desteklenmiyor.

Not

Şirket içi SFTP sunucusuna erişmek için özel uç nokta kullanarak Azure Data Factory veya Synapse çalışma alanı Yönetilen Sanal Ağ kullanmanız gerekir. Ayrıntılı adımlar için bu öğreticiye bakın.

Kaynak dönüştürme

Aşağıdaki tabloda SFTP kaynağı tarafından desteklenen özellikler listelenmektedir. Bu özellikleri Kaynak seçenekleri sekmesinde düzenleyebilirsiniz. Satır içi veri kümesini kullanırken, veri kümesi özellikleri bölümünde açıklanan özelliklerle aynı olan ek ayarlar görürsünüz.

Veri Akışı Adı Açıklama Gerekli İzin verilen değerler Veri akışı betiği özelliği
Joker karakter yolu Joker karakter deseni kullanmak, ADF'ye tek bir kaynak dönüştürmede eşleşen her klasör ve dosyada döngü gerçekleştirmesini sağlar. Bu, tek bir akış içinde birden çok dosyayı işlemenin etkili bir yoludur. Hayır Dize[] joker karakterler
Bölüm Kök Yolu Dosya kaynağınızda bir key=value biçime (örneğin, ) sahip bölümlenmiş klasörleriniz varsa, year=2019bu bölüm klasörü ağacının en üst düzeyini veri akışı veri akışınızdaki bir sütun adına atayabilirsiniz. Hayır String partitionRootPath
Dosya bulunamadığında izin ver True ise, hiçbir dosya bulunamazsa hata oluşmaz. Hayır true veya false ignoreNoFilesFound
Dosya listesi Bu bir dosya kümesidir. İşlenmek üzere göreli yol dosyalarının listesini içeren bir metin dosyası oluşturun. Bu metin dosyasının üzerine gelin. Hayır true veya false fileList
Dosya adını depolamak için sütun Kaynak dosyanın adını verilerinizdeki bir sütunda depolayın. Dosya adı dizesini depolamak için buraya yeni bir sütun adı girin. Hayır String rowUrlColumn
Tamamlandıktan sonra Veri akışı çalıştırıldıktan sonra kaynak dosyayla hiçbir işlem yapmayı, kaynak dosyayı silmeyi veya kaynak dosyayı taşımayı seçin. Taşımanın yolları görelidir. Hayır Sil: true veya false
Hareket etmek: ['<from>', '<to>']
purgeFiles
moveFiles
Son değiştirme ölçütüne göre filtrele İşlediğiniz dosyaları, en son değiştirildikleri tarih aralığını belirterek filtreleyebilirsiniz. Tüm tarih-saatler UTC olarak belirlenir. Hayır Zaman damgası modifiedAfter
modifiedBefore

SFTP kaynak betiği örneği

Kaynak türü olarak SFTP veri kümesini kullandığınızda, ilişkili veri akışı betiği şöyle olur:

source(allowSchemaDrift: true,
	validateSchema: false,
	ignoreNoFilesFound: true,
	purgeFiles: true,
	fileList: true,
	modifiedAfter: (toTimestamp(1647388800000L)),
	modifiedBefore: (toTimestamp(1647561600000L)),
	partitionRootPath: 'partdata',
	wildcardPaths:['partdata/**/*.csv']) ~> SFTPSource

Havuz dönüşümü

Aşağıdaki tabloda SFTP havuzu tarafından desteklenen özellikler listelenmektedir. Bu özellikleri Ayarlar sekmesinde düzenleyebilirsiniz. Satır içi veri kümesini kullanırken, veri kümesi özellikleri bölümünde açıklanan özelliklerle aynı olan ek ayarlar görürsünüz.

Veri Akışı Adı Açıklama Gerekli İzin verilen değerler Veri akışı betiği özelliği
Klasörü temizleme Veriler yazılmadan önce hedef klasörün temizlenip temizlenmeyeceğini belirler. Hayır true veya false truncate
Dosya adı seçeneği Yazılan verilerin adlandırma biçimi. Varsayılan olarak, biçiminde bölüm part-#####-tid-<guid>başına bir dosya. Hayır Desen: Dize
Bölüm başına: Dize[]
Dosyayı sütun verileri olarak adlandır: Dize
Klasörü sütun verileri olarak adlandır: Dize
Tek bir dosyaya çıkış: ['<fileName>']
filePattern
partitionFileNames
rowUrlColumn
rowFolderUrlColumn
partitionFileNames
Tümünü alıntıla Tüm değerlerin tırnak içine alınıp alınmayacağını belirler. Hayır true veya false quoteAll

SFTP havuz betiği örneği

Havuz türü olarak SFTP veri kümesini kullandığınızda, ilişkili veri akışı betiği şöyle olur:

IncomingStream sink(allowSchemaDrift: true,
	validateSchema: false,
	filePattern:'loans[n].csv',
	truncate: true,
	skipDuplicateMapInputs: true,
	skipDuplicateMapOutputs: true) ~> SFTPSink

Arama etkinliği özellikleri

Arama etkinliği özellikleri hakkında bilgi için bkz . Arama etkinliği.

GetMetadata etkinlik özellikleri

GetMetadata etkinlik özellikleri hakkında bilgi için bkz . GetMetadata etkinliği.

Etkinlik özelliklerini silme

Etkinlik özelliklerini silme hakkında bilgi için bkz . Silme etkinliği.

Eski modeller

Not

Aşağıdaki modeller geriye dönük uyumluluk için olduğu gibi hala desteklenmektedir. Yazma kullanıcı arabirimi yeni modeli oluşturmaya geçtiğinden, daha önce tartışılan yeni modeli kullanmanızı öneririz.

Eski veri kümesi modeli

Özellik Açıklama Gerekli
Tür Veri kümesinin type özelliği FileShare olarak ayarlanmalıdır. Yes
folderPath Klasörün yolu. Joker karakter filtresi desteklenir. İzin verilen joker karakterler şunlardır * (sıfır veya daha fazla karakterle eşleşir) ve ? (sıfır veya tek bir karakterle eşleşir); gerçek dosya adınızın içinde joker karakter veya bu kaçış karakteri varsa kaçış yapmak için kullanın ^ .

Örnekler: kök klasör/alt klasör/, Klasör ve dosya filtresi örnekleri'ndeki diğer örneklere bakın.
Yes
fileName Belirtilen "folderPath" altındaki dosyalar için ad veya joker karakter filtresi . Bu özellik için bir değer belirtmezseniz, veri kümesi klasördeki tüm dosyaları gösterir.

Filtre için, izin verilen joker karakterler (sıfır veya daha fazla karakterle eşleşir) ve ? (sıfır veya tek bir karakterle eşleşir) şeklindedir * .
- Örnek 1: "fileName": "*.csv"
- Örnek 2: "fileName": "???20180427.txt"
Gerçek klasör adınızın içinde joker karakter veya bu kaçış karakteri varsa kaçış yapmak için kullanın ^ .
Hayır
modifiedDatetimeStart Dosyalar, Son Değiştirme Tarihi özniteliğine göre filtrelenir. Dosyalar, son değiştirme süreleri değerinden büyük veya buna eşit modifiedDatetimeStart ve değerinden modifiedDatetimeEndküçükse seçilir. Saat UTC saat dilimine 2018-12-01T05:00:00Z biçiminde uygulanır.

Çok sayıda dosyadan dosya filtresi uygulamak istediğinizde veri taşımanın genel performansı bu ayarın etkinleştirilmesinden etkilenir.

Özellikler NULL olabilir; başka bir deyişle veri kümesine hiçbir dosya özniteliği filtresi uygulanmaz. Bir datetime değeri olduğunda modifiedDatetimeStart ancak modifiedDatetimeEnd NULL olduğunda, son değiştirilen özniteliği datetime değerinden büyük veya buna eşit olan dosyaların seçildiği anlamına gelir. Tarih saat değeri olduğunda modifiedDatetimeEnd ancak modifiedDatetimeStart NULL olduğunda, son değiştirilen özniteliği datetime değerinden küçük olan dosyaların seçili olduğu anlamına gelir.
Hayır
modifiedDatetimeEnd Dosyalar, Son Değiştirme Tarihi özniteliğine göre filtrelenir. Dosyalar, son değiştirme süreleri değerinden büyük veya buna eşit modifiedDatetimeStart ve değerinden modifiedDatetimeEndküçükse seçilir. Saat UTC saat dilimine 2018-12-01T05:00:00Z biçiminde uygulanır.

Çok sayıda dosyadan dosya filtresi uygulamak istediğinizde veri taşımanın genel performansı bu ayarın etkinleştirilmesinden etkilenir.

Özellikler NULL olabilir; başka bir deyişle veri kümesine hiçbir dosya özniteliği filtresi uygulanmaz. Bir datetime değeri olduğunda modifiedDatetimeStart ancak modifiedDatetimeEnd NULL olduğunda, son değiştirilen özniteliği datetime değerinden büyük veya buna eşit olan dosyaların seçildiği anlamına gelir. Tarih saat değeri olduğunda modifiedDatetimeEnd ancak modifiedDatetimeStart NULL olduğunda, son değiştirilen özniteliği datetime değerinden küçük olan dosyaların seçili olduğu anlamına gelir.
Hayır
format Dosyaları dosya tabanlı depolar (ikili kopya) arasında olduğu gibi kopyalamak istiyorsanız, hem giriş hem de çıkış veri kümesi tanımlarında biçim bölümünü atlayın.

Dosyaları belirli bir biçimde ayrıştırmak istiyorsanız, şu dosya biçimi türleri desteklenir: TextFormat, JsonFormat, AvroFormat, OrcFormat ve ParquetFormat. biçim altındaki type özelliğini bu değerlerden birine ayarlayın. Daha fazla bilgi için bkz . Metin biçimi, Json biçimi, Avro biçimi, Ork biçimi ve Parquet biçimi bölümleri.
Hayır (yalnızca ikili kopyalama senaryosu için)
sıkıştırma Verilerin sıkıştırma türünü ve düzeyini belirtin. Daha fazla bilgi için bkz . Desteklenen dosya biçimleri ve sıkıştırma codec'leri.
Desteklenen türler GZip, Deflate, BZip2 ve ZipDeflate'tır.
Desteklenen düzeyler En uygun ve en hızlı düzeylerdir.
Hayır

İpucu

Bir klasörün altındaki tüm dosyaları kopyalamak için yalnızca folderPath değerini belirtin.
Belirtilen ada sahip tek bir dosyayı kopyalamak için klasör bölümüyle folderPath ve dosya adıyla fileName belirtin.
Bir klasörün altındaki dosyaların bir alt kümesini kopyalamak için klasör bölümüyle folderPath ve joker karakter filtresiyle fileName belirtin.

Not

Dosya filtresi için fileFilter özelliğini kullanıyorsanız, yine de olduğu gibi desteklenir, ancak bundan sonra fileName'e eklenen yeni filtre özelliğini kullanmanızı öneririz.

Örnek:

{
    "name": "SFTPDataset",
    "type": "Datasets",
    "properties": {
        "type": "FileShare",
        "linkedServiceName":{
            "referenceName": "<SFTP linked service name>",
            "type": "LinkedServiceReference"
        },
        "typeProperties": {
            "folderPath": "folder/subfolder/",
            "fileName": "*",
            "modifiedDatetimeStart": "2018-12-01T05:00:00Z",
            "modifiedDatetimeEnd": "2018-12-01T06:00:00Z",
            "format": {
                "type": "TextFormat",
                "columnDelimiter": ",",
                "rowDelimiter": "\n"
            },
            "compression": {
                "type": "GZip",
                "level": "Optimal"
            }
        }
    }
}

Eski Kopyalama etkinliği kaynak modeli

Özellik Açıklama Gerekli
Tür Kopyalama etkinliği kaynağının type özelliği FileSystemSource olarak ayarlanmalıdır Yes
Özyinelemeli Verilerin alt klasörlerden veya yalnızca belirtilen klasörden özyinelemeli olarak okunup okunmadığını gösterir. Özyineleme true olarak ayarlandığında ve havuz dosya tabanlı bir depo olduğunda, boş klasörler ve alt klasörler havuza kopyalanamaz veya oluşturulmaz.
İzin verilen değerler true (varsayılan) ve false
Hayır
maxConcurrentConnections Etkinlik çalıştırması sırasında veri deposuna kurulan eş zamanlı bağlantıların üst sınırı. Yalnızca eşzamanlı bağlantıları sınırlamak istediğinizde bir değer belirtin. Hayır

Örnek:

"activities":[
    {
        "name": "CopyFromSFTP",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<SFTP input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "FileSystemSource",
                "recursive": true
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

Kopyalama etkinliği tarafından kaynak ve havuz olarak desteklenen veri depolarının listesi için bkz. desteklenen veri depoları.