ディレクトリレベルのパーティショニング
詳細モードのマッピングを作成する際は、パーティションカラムに対する読み取りと書き込みが可能です。
テーブルまたはデータセットをパーティション化してまとめ、カラムやパーティションキーに基づいて同じタイプのデータをグループ化できます。テーブルまたはデータセットの1つ以上のパーティションカラムを選択できます。
パーティションカラムから読み取るには、パーティションディレクトリを選択して、パーティションカラムを特定します。パーティションカラムに書き込むには、フィールドのリストからパーティションカラムを追加し、必要に応じてパーティションの順序を変更します。
次のファイル形式で、パーティションカラムに対してデータを読み書きすることができます。
パーティションカラムからの読み取り
パーティションカラムからデータを読み取るには、次の手順を実行します。
- 1ソースオブジェクトのリストからディレクトリを選択します。

- 2詳細ソースプロパティで[ディレクトリ]としてソースタイプを選択します。
- 3[フィールド]タブで、パーティションの数を確認できます。
[partitionOrder]カラムで、カラムをパーティション化するかどうか、およびパーティション化の際にフィールドが選択される順序を指定します。
上の画像では、2つのパーティションカラムが存在しています。パーティション順序の値1と2は、パーティション化の際に[国]フィールドと[州]フィールドが選択される順序を示しています。[FileName]フィールドのパーティション順序は0です。
パーティションカラムへの書き込み
パーティションカラムに書き込むには、次の手順を実行します。
- 1[パーティション]タブで、[追加]をクリックして、ターゲットにパーティションカラムを追加します。
![この画像は、ターゲットにパーティションカラムを追加する[追加]オプションを示しています。 この画像は、ターゲットにパーティションカラムを追加する[追加]オプションを示しています。](../mm-azure-data-lake-storage-gen2/images/GUID-A0213A7B-987B-40D3-8E1E-82CD62D14E2A-low.png)
- 2使用可能なフィールドのリストからパーティション化フィールドを選択します。
- 3[選択]をクリックします。
[パーティション]タブに、選択したパーティションカラムが表示されます。
次の画像に示すように、上矢印と下矢印を使用してパーティション順序を変更できます。
パーティションフォルダからの読み取りとパーティションフォルダへの書き込みに関するルールとガイドライン
詳細モードのマッピングのパーティションフォルダに対し、読み取りや書き込みを行う場合は、次のルールとガイドラインを考慮してください。
- •パーティションフォルダのみを含むディレクトリをインポートし、詳細ソースプロパティでソースタイプを[ディレクトリ]として選択する必要があります。
- •データのないパーティションディレクトリをインポートすると、検証エラーが発生します。
- •パーティションフォルダはあってもパーティションフォルダにファイルがないパーティションディレクトリをインポートすると、検証エラーが発生します。
- •[FileName]フィールドのパーティション順序は0です。
- •選択したパーティションディレクトリには、「FileName」という名前のパーティションカラムを含めることはできません。この名前は、大文字と小文字が区別されません。
- •既存のターゲットオブジェクトをインポートした場合、またはパーティションディレクトリを持つ新規ターゲットオブジェクトを作成した場合、[ファイル名]フィールドはターゲット側には追加されません。[ファイル名]フィールドはソース側にのみ追加されます。
- •パーティションカラムにタイムスタンプ値を渡すと、値がエンコードされます。例えば、「03:26:01」は「03%3A26%3A01」としてエンコードされます。
- •パーティションカラムに特殊文字を渡した場合、値はエンコードされます。例えば、「#"」は「%23%22」としてエンコードされます。
- •パーティションフォルダのあるディレクトリをインポートすると、パーティションカラムのデータ型が文字列としてインポートされます。
- •パーティション化されたファイルに階層データ型を書き込むことはできません。
- •パーティションカラムのデータ型を編集することはできません。
- •パーティションカラムで[メタデータの編集]オプションを使用することはできません。
- •ソース側とターゲット側のパーティションディレクトリに[スキーマの表示]オプションを使用することはできません。
- •スキーマファイルにはパーティションカラムの情報がないため、ソースのパーティションディレクトリに[スキーマファイルからインポートする]オプションを使用することはできません。
- •パーティションカラムで[データプレビュー]オプションを使用することはできません。
- •ターゲットオブジェクトがパラメータ化されている場合、マッピングタスクでパーティションカラムを選択することはできません。
- •[ターゲットの作成]では、パーティションフィールドを追加し、パーティションカラムを順番に配置できます。
- •数値、日付、タイムスタンプ、文字列以外のデータ型をパーティション化されたファイルに書き込む場合は、マッピングタスクの次のSparkカスタムプロパティをfalseに設定する必要があります。
- - spark.sql.sources.partitionColumnTypeInference.enabled
- •ムが含まれるMicrosoft Azure Data Lake Storage Gen2オブジェクトをインポートした場合、パーティションフィールドがリストの最後に表示されます。
- •パーティションカラムに255文字を超えるデータが含まれている場合、データは切り捨てられ、255文字のみがパーティションカラムに書き込まれます。
- •パーティションカラム名に74文字を超える文字が含まれている場合、名前は切り捨てられ、パーティションカラム名には74文字のみが書き込まれます。
- •パーティションカラム名パーティションディレクトリ内のターゲットファイルの組み合わせを使用して形成されるパーティションディレクトリファイルパスの値は、1024文字を超えないようにする必要があります。それ以外の場合、マッピングは失敗します。
- •パーティションカラムで[ファイル名のオーバーライド]オプションを使用することはできません。
- •JSONファイルを読み書きする場合、パーティションカラムで[サンプリングするデータ要素]および[データの処理に使用可能なメモリ]詳細プロパティを使用することはできません。