次の方法で共有


Azure Data Factory および Synapse Analytics の ORC 形式

APPLIES TO: Azure Data Factory Azure Synapse Analytics

ヒント

Data Factory in Microsoft Fabric は、よりシンプルなアーキテクチャ、組み込みの AI、および新機能を備えた次世代のAzure Data Factoryです。 データ統合を初めて使用する場合は、Fabric Data Factory から始めます。 既存の ADF ワークロードをFabricにアップグレードして、データ サイエンス、リアルタイム分析、レポートの新機能にアクセスできます。

ORC ファイルを解析する場合や、ORC 形式にデータを書き込む場合は、この記事に従ってください。

ORC 形式は、次のコネクタでサポートされています: Amazon S3Azure BLOBAzure Data Lake Storage Gen1Azure Data Lake Storage Gen2Azure FilesFile SystemFTPGoogle Cloud StorageHDFSHTTPOracle Cloud StorageSFTP

データセットのプロパティ

データセットを定義するために使用できるセクションとプロパティの完全な一覧については、データセットに関する記事をご覧ください。 このセクションでは、ORC データセットでサポートされるプロパティの一覧を示します。

プロパティ 内容 必須
データセットの type プロパティは、Orc に設定する必要があります。 はい
位置 ファイルの場所の設定。 ファイル ベースの各コネクタには、固有の場所の種類と location でサポートされるプロパティがあります。 >。 はい
compressionCodec ORC ファイルへの書き込み時に使用する圧縮コーデック。 データ ファクトリーでは、ORC ファイルから読み取るときに、ファイルのメタデータに基づいて圧縮コーデックが自動的に決定されます。
サポートされている種類は、なしzlibsnappy (既定)、および lzo です。 現在、Copy アクティビティは ORC ファイルの読み取り/書き込み時に LZO をサポートしていません。
いいえ

Azure Blob Storage上の ORC データセットの例を次に示します。

{
    "name": "OrcDataset",
    "properties": {
        "type": "Orc",
        "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",
            }
        }
    }
}

以下の点に注意してください。

  • 複合データ型 (MAP、LIST、STRUCT など) は、現在、コピー アクティビティではなくデータ フローでのみサポートされています。 データ フローで複合型を使用するには、データセットにファイル スキーマをインポートしないで、データセット内のスキーマを空白のままにしておきます。 次に、ソース変換で、プロジェクションをインポートします。
  • 列名では、空白はサポートされません。

プロパティのCopy アクティビティ

アクティビティの定義に利用できるセクションとプロパティの完全な一覧については、パイプラインに関する記事を参照してください。 このセクションでは、ORC のソースとシンクでサポートされるプロパティの一覧を示します。

ソースとしての ORC

Copy アクティビティの *source* セクションでは、次のプロパティがサポートされます。

プロパティ 内容 必須
コピー アクティビティのソースの type プロパティは OrcSource に設定する必要があります。 はい
storeSettings データ ストアからデータを読み取る方法を指定するプロパティのグループ。 ファイル ベースの各コネクタには、storeSettings に、固有のサポートされる読み取り設定があります。 コネクタの記事の詳細については、「-> Copy アクティビティ プロパティ」セクションを参照してください。 いいえ

シンクとしての ORC

Copy アクティビティの *sink* セクションでは、次のプロパティがサポートされます。

プロパティ 内容 必須
コピー アクティビティのシンクの type プロパティには OrcSink を設定する必要があります。 はい
formatSettings プロパティのグループ。 後の ORC の書き込み設定に関する表を参照してください。 いいえ
storeSettings データ ストアにデータを書き込む方法を指定するプロパティのグループ。 ファイル ベースの各コネクタには、storeSettings に、固有のサポートされる書き込み設定があります。 コネクタの記事の詳細については、「-> Copy アクティビティ プロパティ」セクションを参照してください。 いいえ

でサポートされている formatSettings:

プロパティ 内容 必須
formatSettings の種類は OrcWriteSettings に設定する必要があります。 はい
maxRowsPerFile データをフォルダーに書き込むとき、複数のファイルに書き込み、ファイルあたりの最大行を指定することを選択できます。 いいえ
fileNamePrefix maxRowsPerFile が構成されている場合に使用されます。
データを複数のファイルに書き込むとき、ファイル名のプレフィックスを指定します。結果的に <fileNamePrefix>_00000.<fileExtension> のパターンになります。 指定されていない場合、ファイル名プレフィックスは自動生成されます。 このプロパティは、ソースがファイルベース ストアかパーティション オプション対応データ ストアの場合、適用されません。
いいえ

Mapping Data Flow のプロパティ

マッピング データ フローでは、Azure Blob StorageAzure Data Lake Storage Gen1Azure Data Lake Storage Gen2 および SFTP で ORC 形式を Amazon S3 で読み取ることができます。

ORC ファイルは、ORC データセットまたはインライン データセットを使用して参照できます。

ソースのプロパティ

次の表に、ORC ソースでサポートされるプロパティの一覧を示します。 これらのプロパティは、 [ソース オプション] タブで編集できます。

インライン データセットを使用する場合、「データセットのプロパティ」セクションで説明したプロパティと同じ追加のファイル設定が表示されます。

Name 内容 必須 使用できる値 データ フロー スクリプトのプロパティ
Format 形式は orc である必要があります はい orc format
Wild card paths (ワイルドカード パス) ワイルドカードのパスに一致するすべてのファイルが処理されます。 データセットで設定されているフォルダーとファイル パスはオーバーライドされます。 no String[] wildcardPaths
パーティションのルート パス パーティション分割されたファイル データについては、パーティション フォルダーを列として読み取るためにパーティションのルート パスを入力できます no String partitionRootPath
ファイルの一覧 処理するファイルを一覧表示しているテキスト ファイルをソースが指しているかどうか no true または false fileList
ファイル名を格納する列 ソース ファイル名とパスを使用して新しい列を作成します no String rowUrlColumn
完了後 処理後にファイルを削除または移動します。 ファイル パスはコンテナー ルートから始まります no 削除: true または false
移動: [<from>, <to>]
purgeFiles
moveFiles
最終更新日時でフィルター処理 最後に変更された日時に基づいてファイルをフィルター処理する場合に選択 no Timestamp modifiedAfter
modifiedBefore
[Allow no files found](ファイルの未検出を許可) true の場合、ファイルが見つからない場合でもエラーはスローされない no true または false ignoreNoFilesFound

ソースの例

ORC ソース構成に関連付けられているデータ フロー スクリプトは次のとおりです。

source(allowSchemaDrift: true,
    validateSchema: false,
    rowUrlColumn: 'fileName',
    format: 'orc') ~> OrcSource

シンクのプロパティ

次の表に、ORC シンクでサポートされるプロパティの一覧を示します。 これらのプロパティは、 [設定] タブで編集できます。

インライン データセットを使用する場合、「データセットのプロパティ」セクションで説明したプロパティと同じ追加のファイル設定が表示されます。

Name 内容 必須 使用できる値 データ フロー スクリプトのプロパティ
Format 形式は orc である必要があります はい orc format
Clear the folder (フォルダーのクリア) 書き込みの前に宛先フォルダーがクリアされるかどうか no true または false 切り詰める
ファイル名のオプション 書き込まれたデータの名前付け形式です。 既定では、part-#####-tid-<guid> という形式で、パーティションごとに 1 ファイルです no パターン: String
パーティションあたり: String[]
列内のデータとして: String
1 つのファイルに出力する: ['<fileName>']
filePattern
partitionFileNames
rowUrlColumn
partitionFileNames

シンクの例

ORC シンク構成に関連付けられているデータ フロー スクリプトは次のとおりです。

OrcSource sink(
    format: 'orc',
    filePattern:'output[n].orc',
    truncate: true,
    allowSchemaDrift: true,
    validateSchema: false,
    skipDuplicateMapInputs: true,
    skipDuplicateMapOutputs: true) ~> OrcSink

セルフホステッド Integration Runtimeの使用

重要

オンプレミスとクラウドのデータ ストア間など、セルフホステッド Integration Runtimeによって強化されたコピーの場合、ORC ファイルを as-is64 ビット JRE 8 (Java ランタイム環境) または OpenJDK および Microsoft Visual C++ 2010 再頒布可能パッケージを IR マシンにインストールする必要があります。 詳細については、次の段落をご確認ください。

ORC ファイルのシリアル化/逆シリアル化を使用してセルフホステッド IR で実行されているコピーの場合、サービスは最初に JRE のレジストリ (SOFTWARE\JavaSoft\Java Runtime Environment\{Current Version}\JavaHome) を確認して、Java ランタイムを見つけます。見つからない場合は、次に OpenJDK のシステム変数 JAVA_HOME を確認します。

  • JRE を使用する場合:64 ビット IR には 64 ビット JRE が必要です。 こちらから入手できます。
  • OpenJDK の使用方法:IR バージョン 3.13 以降でサポートされています。 jvm.dll を他のすべての必要な OpenJDK のアセンブリと共にセルフホステッド IR マシンにパッケージ化し、それに応じてシステム環境変数 JAVA_HOME を設定します。
  • Microsoft Visual C++ 2010 再頒布可能パッケージのインストール方法:Visual C++ 2010 再頒布可能パッケージは、セルフホステッド IR インストールではインストールされません。 こちらから入手できます。

ヒント

セルフホステッド Integration Runtimeを使用して ORC 形式との間でデータをコピーし、"javaの呼び出し時にエラーが発生しました,メッセージ: java.lang.OutOfMemoryError:Java ヒープ領域"> <。

セルフホステッド IR 上での JVM ヒープ サイズの設定

例: 変数 _JAVA_OPTIONS を設定して、値 -Xms256m -Xmx16g を指定します。 フラグ Xms は、Java仮想マシン (JVM) の初期メモリ割り当てプールを指定します。一方、Xmx は最大メモリ割り当てプールを指定します。 これは、JVM 起動時のメモリ量が Xms、使用可能なメモリ量が最大で Xmx であることを意味します。 既定では、サービスにより最小で 64MB、最大で 1G が使用されます。