Azure Data Factory ve Azure Synapse Analytics'te Parquet formatı

ŞUNLARA UYGULANIR: Azure Data Factory Azure Synapse Analytics

İpucu

Microsoft Fabric'daki Data Factory, daha basit bir mimariye, yerleşik yapay zekaya ve yeni özelliklere sahip yeni nesil Azure Data Factory. Veri tümleştirmeyi yeni kullanmaya başladıysanız Fabric Data Factory ile başlayın. Mevcut ADF iş yükleri veri bilimi, gerçek zamanlı analiz ve raporlama genelinde yeni özelliklere erişmek için Fabric yükseltebilir.

Parquet dosyalarını ayrıştırmak veya verileri Parquet biçiminde yazmak istediğinizde bu makaleyi izleyin.

Parquet biçimi aşağıdaki bağlayıcılar için desteklenir:

Kullanılabilir tüm bağlayıcılar için desteklenen özelliklerin listesi için Bağlayıcılara Genel Bakış makalesini ziyaret edin.

Yerel olarak barındırılan Integration Runtime kullanma

Önemli

Kendi kendine barındırılan Integration Runtime ile güçlendirilen kopyalama işlemleri için, örneğin, şirket içi ve bulut veri depoları arasında Parquet dosyalarını as-is kopyalamıyorsanız, IR makinenize 64 bit JRE 8 (Java Çalışma Zamanı Ortamı), JDK 23 (Java Geliştirme Seti) veya OpenJDK yüklemeniz gerekir. Daha fazla ayrıntı içeren aşağıdaki paragrafı denetleyin.

Kendi kendine barındırılan IR'de Parquet dosya serileştirme/seri durumdan çıkarma ile çalışan kopyalama için, hizmet ilk olarak JRE için kayıt defterini (SOFTWARE\JavaSoft\Java Runtime Environment\{Current Version}\JavaHome) kontrol ederek Java çalışma zamanını belirler; eğer bulunamazsa, alternatif olarak OpenJDK için sistem değişkenini JAVA_HOME kontrol eder.

  • JRE'yi kullanmak için: 64 bit IR için 64 bit JRE gerekir. Buradan bulabilirsiniz.
  • JDK kullanmak için: 64 bit IR için 64 bit JDK 23 gerekir. Buradan bulabilirsiniz. JAVA_HOME sistem değişkenini JDK 23 yüklemesinin kök klasörüne (C:\Program Files\Java\jdk-23) güncelleştirip yolu hem C:\Program Files\Java\jdk-23\bin hem de C:\Program Files\Java\jdk-23\bin\server klasörlerine Path sistem değişkenine eklediğinizden emin olun.
  • OpenJDK'yi kullanmak için: IR sürüm 3.13'ten bu yana desteklenir. jvm.dll dosyasını ve OpenJDK'nin diğer tüm gerekli bileşenlerini Yerel Barındırılan IR makinesine paketleyin, sistem ortam değişkenini JAVA_HOME olarak uygun şekilde ayarlayın ve yapılan değişikliklerin hemen etkili olması için Yerel Barındırılan IR'yi yeniden başlatın. Microsoft Build OpenJDK indirmek için bkz. Microsoft Build OpenJDK™.

İpucu

If you copy data to/from Parquet format using Self-hosted Integration Runtime and hit error saying "An error occurred when invoking java, message: java.lang.OutOfMemoryError:Java heap space", you can add an environment variable _JAVA_OPTIONS in the machine that hosts the Self-hosted IR to adjust the min/max heap size for JVM to empower such copy, then rerun the pipeline. Verileri Self-hosted Integration Runtime kullanarak Parquet biçimine veya biçiminden kopyaladığınızda "Java çağrılırken bir hata oluştu" hatasını alırsanız, mesaj: java.lang.OutOfMemoryError:Java heap space", Self-hosted IR'yi barındıran makinede bir _JAVA_OPTIONS ortam değişkeni ekleyerek JVM üzerinde bu kopyalama işlemi için en küçük ve en büyük yığın boyutunu ayarlayabilir, ardından işlem hattını yeniden çalıştırabilirsiniz.

Kendi kendine barındırılan IR'de JVM yığın boyutunu ayarlama

Örnek: _JAVA_OPTIONS değeriyle -Xms256m -Xmx16g değişkeni ayarla. Xms bayrağı, Java Sanal Makinesi (JVM) için ilk bellek ayırma havuzunu belirtirken, Xmx en yüksek bellek ayırma havuzunu belirtir. Bu, JVM'nin bellek miktarıyla Xms başlatılacağı ve en fazla Xmx bellek miktarını kullanabileceği anlamına gelir. Varsayılan olarak hizmet en az 64 MB ve en fazla 1G kullanır.

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. Bu bölümde, Parquet veri kümesi tarafından desteklenen özelliklerin listesi sağlanır.

Özellik Açıklama Gerekli
Tip Veri kümesinin type özelliği Parquet olarak ayarlanmalıdır. Yes
konum Dosya konum ayarları. Her dosya tabanlı bağlayıcının location altında kendi konum türü ve desteklenen özellikleri vardır. Bağlayıcı makalesi -> Veri kümesi özellikleri bölümündeki ayrıntılara bakın. Yes
compressionCodec Parquet dosyalarına yazarken kullanılacak sıkıştırma kodeği. Parquet dosyalarından okurken, Veri Fabrikaları dosya meta verilerine göre sıkıştırma codec'ini otomatik olarak belirler.
Desteklenen türler şunlardır: "none", "gzip", "snappy" (varsayılan) ve "lzo". Şu anda Kopyalama etkinliği Parquet dosyalarını okurken/yazarken LZO'yu desteklemez.
Hayır

Not

Parquet dosyaları için sütun adında boşluk desteklenmez.

Aşağıda Azure Blob Depolama'da bulunan bir Parquet veri kümesi örneği verilmiştir:

{
    "name": "ParquetDataset",
    "properties": {
        "type": "Parquet",
        "linkedServiceName": {
            "referenceName": "<Azure Blob Storage linked service name>",
            "type": "LinkedServiceReference"
        },
        "schema": [ < physical schema, optional, retrievable during authoring > ],
        "typeProperties": {
            "location": {
                "type": "AzureBlobStorageLocation",
                "container": "containername",
                "folderPath": "folder/subfolder",
            },
            "compressionCodec": "snappy"
        }
    }
}

Kopyalama etkinliği özellikleri

Etkinlikleri tanımlamak için kullanılabilecek tüm bölümlerin ve özelliklerin listesi için Yapılandırma Hatları makalesine bakın. Bu bölümde, Parquet kaynağı ve havuzu tarafından desteklenen özelliklerin listesi sağlanır.

Kaynak olarak Parquet

Kopyalama etkinliği *kaynak* bölümünde aşağıdaki özellikler desteklenir.

Özellik Açıklama Gerekli
Tip Kopyalama etkinliği kaynağının type özelliği ParquetSource olarak ayarlanmalıdır. Yes
mağazaAyarlar Veri deposundan veri okuma hakkında bir özellik grubu. Her bir dosya tabanlı bağlayıcının, storeSettings altında kendi desteklenen okuma ayarları vardır. Bağlayıcı makalesinde -> Kopyalama etkinliği özellikleri bölümü ayrıntılarını görüntüleyin. Hayır

Havuz olarak Parquet

Kopyalama etkinliği *havuz* bölümünde aşağıdaki özellikler desteklenir.

Özellik Açıklama Gerekli
Tip Kopyalama etkinliği havuzu type özelliği ParquetSink olarak ayarlanmalıdır. Yes
biçim ayarları Bir özellik grubu. Aşağıdaki Parquet yazma ayarları tablosuna bakın. Hayır
mağazaAyarlar Veri deposuna veri yazma hakkında bir özellik grubu. Her dosya tabanlı bağlayıcının kendi desteklenen yazma ayarları storeSettings altında bulunur. Bağlayıcı makalesinde -> Kopyalama etkinliği özellikleri bölümü ayrıntılarını görüntüleyin. Hayır

Parquet yazma ayarları altında desteklenen:

Özellik Açıklama Gerekli
Tip formatSettings türü ParquetWriteSettings olarak ayarlanmalıdır. Yes
maxRowsPerFile Bir klasöre veri yazarken, birden çok dosyaya yazmayı ve dosya başına en fazla satırı belirtmeyi seçebilirsiniz. Hayır
dosyaAdÖneki maxRowsPerFile yapılandırıldığında geçerlidir.
Birden çok dosyaya veri yazarken dosya adı ön ekini belirtin; bunun sonucunda şu desen elde edilir: <fileNamePrefix>_00000.<fileExtension>. Belirtilmezse, dosya adı ön eki otomatik olarak oluşturulur. Bu özellik, kaynak dosya tabanlı depo veya bölüm seçeneği etkin veri deposu olduğunda geçerli değildir.
Hayır

Veri akışı haritalama özellikleri

Eşleme veri akışlarında, şu veri depolarında parquet biçiminde okuyup yazabilirsiniz: Azure Blob Depolama, 1. Nesil Azure Data Lake Storage, Azure Data Lake Storage 2. Nesil ve SFTP ve Amazon S3 dilinde parquet biçimini okuyabilirsiniz.

Kaynak özellikleri

Aşağıdaki tabloda, bir parquet kaynağı tarafından desteklenen özellikler listelenmektedir. Bu özellikleri Kaynak seçenekleri sekmesinde düzenleyebilirsiniz.

Veri Akışı Adı Açıklama Gerekli İzin verilen değerler Veri akışı betiği özelliği
Biçim Biçim şu şekilde olmalıdır: parquet evet parquet format
Joker karakter yolları Joker karakter yoluyla eşleşen tüm dosyalar işlenir. Veri kümesinde ayarlanan klasörü ve dosya yolunu geçersiz kılar. hayır Dize[] joker karakter yolları
Bölüm kök yolu Bölümlenmiş dosya verileri için bölümlenmiş klasörleri sütun olarak okumak için bir bölüm kök yolu girebilirsiniz hayır String partitionRootPath
Dosya listesi Kaynağınızın işlenmek üzere dosyaları listeleyen bir metin dosyasına işaret edip etmediği hayır true veya false dosyaListesi
Dosya adını depolamak için sütun Kaynak dosya adı ve yolu ile yeni bir sütun oluşturma hayır String rowUrlColumn
Tamamlandıktan sonra İşlemden sonra dosyaları silin veya taşıyın. Dosya yolu kapsayıcı kökünden başlar hayır Sil: true veya false
Hareket etmek: [<from>, <to>]
dosyaları temizle (purgeFiles)
moveFiles
Son değiştirme tarihine göre filtrele Dosyaları son değiştirilme zamanlarına göre filtrelemeyi seçin hayır Zaman damgası değiştirmeSonrası
önce_değiştirildi
Dosya bulunamadığında izin ver True ise, hiçbir dosya bulunamazsa hata oluşmaz hayır true veya false ignoreNoFilesFound

Kaynak örneği

Aşağıdaki görüntü, eşleme veri akışlarında bir parquet kaynak yapılandırması örneğidir.

Parquet kaynağı

İlişkili veri akışı betiği:

source(allowSchemaDrift: true,
    validateSchema: false,
    rowUrlColumn: 'fileName',
    format: 'parquet') ~> ParquetSource

Havuz özellikleri

Aşağıdaki tabloda bir parquet havuzu tarafından desteklenen özellikler listelenmektedir. Bu özellikleri Ayarlar sekmesinde düzenleyebilirsiniz.

Veri Akışı Adı Açıklama Gerekli İzin verilen değerler Veri akışı betiği özelliği
Biçim Biçim şu şekilde olmalıdır: parquet evet parquet format
Klasörü temizleme Hedef klasör yazmadan önce temizlenirse hayır true veya false kesmek
Dosya adı seçeneği Yazılan verilerin adlandırma biçimi. Varsayılan olarak, bölüm başına bir dosya biçimindedir part-#####-tid-<guid> hayır Desen: Dize
Bölüm başına: Dizgi[]
Veri olarak sütunda: Metin
Tek bir dosyaya çıkış: ['<fileName>']
filePattern
bölümDosyaAdları
rowUrlColumn
bölümDosyaAdları

Havuz örneği

Aşağıdaki görüntü, veri akışlarını eşlemede bir parquet havuzu yapılandırması örneğidir.

Parquet havuzu

İlişkili veri akışı betiği:

ParquetSource sink(
    format: 'parquet',
    filePattern:'output[n].parquet',
    truncate: true,
    allowSchemaDrift: true,
    validateSchema: false,
    skipDuplicateMapInputs: true,
    skipDuplicateMapOutputs: true) ~> ParquetSink

Parquet için veri türü eşlemesi

Kaynak bağlayıcıdaki verileri Parquet biçiminde okurken, parquet veri türlerinden hizmet tarafından dahili olarak kullanılan ara veri türlerine aşağıdaki eşlemeler kullanılır.

Parquet türü Ara hizmet veri türü
BOOLEAN Boolean
INT_8 SByte
INT_16 Int16
INT_32 Int32
INT_64 Int64
INT96 DateTime
UINT_8 Bayt
UINT_16 UInt16
UINT_32 UInt32
UINT_64 UInt64
ONDALIK Decimal
FLOAT Single
ÇİFT Double
DATE Date
TIME_MILLIS TimeSpan
TIME_MICROS Int64
TIMESTAMP_MILLIS DateTime
TIMESTAMP_MICROS Int64
STRING String
UTF8 String
SABIT LISTESI Bayt dizisi
UUID Bayt dizisi
JSON Bayt dizisi
BSON Bayt dizisi
BINARY Bayt dizisi
Sabit_Uzunlukta_Bayt_Dizisi Bayt dizisi

Parquet biçiminde veri yazarken, çıkış bağlayıcısına hizmet tarafından dahili olarak kullanılan ara veri türlerinden Parquet veri türlerine aşağıdaki eşlemeler kullanılır.

Ara hizmet veri türü Parquet türü
Boolean BOOLEAN
SByte INT_8
Int16 INT_32
Int32 INT_32
Int64 INT_64
Bayt INT_32
UInt16 INT_32
UInt32 INT_64
UInt64 ONDALIK
Decimal ONDALIK
Single FLOAT
Double ÇİFT
Date DATE
DateTime INT96
DateTimeOffset INT96
TimeSpan INT96
String UTF8
GUID UTF8
Bayt dizisi BINARY

Kopyalama etkinliğinin kaynak şemayı ve veri türünü havuza nasıl eşlediğini öğrenmek için bkz . Şema ve veri türü eşlemeleri.

Parquet karmaşık veri türleri (örneğin MAP, LIST, STRUCT) şu anda yalnızca Veri Akışları'nda desteklenmektedir, Kopyalama etkinliğinde desteklenmemektedir. Veri akışlarında karmaşık türler kullanmak için, veri kümesindeki şemayı boş bırakarak dosya şemasını içeri aktarmayın. Ardından Kaynak dönüşümünde projeksiyonu içeri aktarın.