マッピングのルールおよびガイドライン マッピングについてのルールとガイドラインは次のとおりです。
マッピング - マッピングを設定する際、ディレクトリ名、ファイル名、またはオブジェクトパスでは、Microsoft Azure Data Lake Storage Gen2で許可されている特殊文字のみを使用するようにしてください。Microsoft Azure Data Lake Storage Gen2で許可されている特殊文字の詳細については、Microsoft Azureのドキュメントを参照してください。
- マッピング内のネストされた、またはインデントされた複数行のJSONファイルのプリミティブデータ型の読み取りおよび書き込みを行うことはできません。- ソース内のカラム名が数字で始まる場合、実行時にターゲットを作成すると、対応するターゲットカラムの前にアンダースコア文字(_)が付きます。 - 実行時にMicrosoft Azure Data Lake Storage Gen2ターゲットを作成してAvro、ORC、またはParquetファイルを書き込む場合、プリミティブデータ型でNULL値を書き込むことはできません。 - JVMオプションを使用してHTTPSプロキシサーバーを設定し、Avro、Parquet、およびORCファイルを読み書きすると、マッピングが次のエラーで失敗する。AzureADAuthenticator.getTokenCall threw java.io.IOException : Unable to tunnel through proxy.Proxy returns "HTTP/1.1 407 Proxy Authentication Required"
- データをMicrosoft Azure Data Lake Storage Gen2ターゲットに追加する場合、すべての入力フィールドをターゲットフィールドにマッピングする必要があります。 - 実行時にMicrosoft Azure Data Lake Storage Gen2ターゲットを作成し、オブジェクト名フィールドにパスを指定する場合は、ファイルシステム名を含む完全なパスを指定してください。例: <FileSystem_Name>/<Directory1>/.../<DirectoryN>/<FileName>
- データに複数のエスケープ文字があり、[修飾子が設定されているときにエスケープ文字を無効にする] オプションを選択しない場合、すべてのエスケープ文字がMicrosoft Azure Data Lake Storage Gen2のフラットファイルターゲットに書き込まれるとは限りません。例えば、"Ga\\lit",124 "Ga\\\"l",19 はGa\lit,124 "Ga\$"l",19 と書き込まれます。
- マッピングで階層データ型を読み取ることはできません。階層パーサートランスフォーメーションを使用して、階層入力をリレーショナル出力に変換できます。階層パーサートランスフォーメーションの設定の詳細については、データ統合のドキュメントにある「トランスフォーメーション 」を参照してください。
- マッピングを実行してJSONファイルをMicrosoft Azure Data Lake Storage Gen2ターゲットに書き込むと、マッピングはターゲットにdoubleデータ型の値を指数形式で書き込みます。 - サイズが20 GBを超えるParquetファイルから読み取りを行って、Microsoft Azure Data Lake Storage Gen2ターゲットに書き込みを行うために8個の固定パーティションで設定されたマッピングを実行すると、マッピングが次のエラーで失敗する。[ERROR] java.lang.OutOfMemoryError: Java heap space
- マッピングにパラメータ化されたソースとターゲットが含まれる場合、[実行時にパラメータのオーバーライドを許可する] チェックボックスが選択されていて、選択されたソースオブジェクトがマッピングタスクの作成中にフォルダ内にあるときに、マッピングが次のエラーで失敗する。[エラー]例外: 読み取りフェーズで例外が発生しました。エラー: ローカルステージングへのファイルのダウンロード中に例外が発生しました
- Snappy圧縮形式を使用してMicrosoft Azure Data Lake Storage Gen2にデータを書き込んだ場合、正常に実行された後、マッピングはエージェントマシンの一時ディレクトリに[snappy-1.1.8****-libsnappyjava.so] ファイルを保持します。 - 新しいターゲットを作成し、[特殊文字の処理] を選択してファイル名にタイムスタンプを追加すると、ファイル名のオーバーライドはマッピングで無視されます。 - マッピングを実行してMicrosoft Azure Data Lake Storage Gen2ターゲットを作成し、追加のストラテジを使用して、[特殊文字の処理] を有効にすると、ファイル名に含まれたタイムスタンプに基づいてファイルが作成または追加されます。 - ターゲット接続とオブジェクトをパラメータ化し、実行時に新しいターゲットを作成すると、作成ターゲットオブジェクト名に完全なパスを指定した場合でも、ターゲットは接続ディレクトリパスで指定されたルートディレクトリに作成されます。これを解決するには、詳細ターゲットプロパティのディレクトリのオーバーライドで絶対パスまたは相対パスを指定して、オーバーライドされたパスにターゲットが作成されるようにします。
- 複合ファイルの読み取りおよび書き込み を行う場合は、タイプDTMのJVMオプションを設定して、Secure Agentのシステム構成の詳細で-Xmsおよび-Xmx値を増やし、Javaヒープ領域不足のエラーを回避します。推奨される-Xms値は512MB、-Xmx値は1024MBです。- 複合ファイルの読み込みおよび書き込み を行う場合は、ファイル名にパーセンテージ(%)またはハッシュ(#)が含まれていないことを確認してください。ファイル名にこれらの文字が含まれている場合、実行時にデータのプレビューとマッピングが失敗します。 詳細モードのマッピング - 詳細モードでマッピングを実行してMicrosoft Azure Data lake Storage Gen2ソースからデータを読み取り、パラメータファイルを使用してソース接続とオブジェクトをパラメータ化して、詳細プロパティでディレクトリとファイルのオーバーライドを指定すると、マッピングではパラメータファイルで指定した値が考慮される。 - Microsoft Azure Data Lake Storage Gen2との間でデータの読み取りと書き込みを行う際は、ソース接続とターゲット接続に同じストレージアカウントを使用します。異なるストレージアカウントを使用する場合は、一方のアカウントに共有認証を使用し、もう一方のアカウントにサービスプリンシパル認証を使用します。両方のストレージアカウントに同じ認証タイプを使用することはできません。
- Microsoft Azure Data Lake Storage Gen2との間でデータの読み取りと書き込みを行い、共有キー認証を使用する場合は、ソース接続とターゲット接続の両方に同じアクセスキーを使用するようにします。例えば、ソース接続のアクセスキーとしてキー1を使用し、ターゲット接続のアクセスキーとしてキー2を使用する場合、マッピングは失敗します。
- マネージドID認証を使用する場合、システム割り当てIDは使用できません。 - マネージドID認証を使用する場合は、接続で指定されたストレージアカウントが、Azureクラスタのステージングの場所とログの場所で指定されたストレージアカウントと同じではないことを確認してください。 - Avro、JSON、およびParquetのファイルについては、階層データ型の読み取りと書き込みが可能です。ORCファイルについては、階層データ型の読み取りも可能です。- 修飾子モードを[最小]に設定してエスケープ文字を使用すると、ターゲットではエスケープ文字はエスケープされず、引用符で囲まれます。この問題を解決するには、修飾子モードを[すべて]に設定します。 - 修飾子モードを[すべて]に設定し、修飾子の値を指定しない場合、\00(Null)が修飾子と見なされます。 - マッピングで複数のパイプラインを追加することはできません。- サイズが128 MB以上の複合ファイルソースから読み取る場合、Secure Agentにより誤ったデータが書き込まれ、既存のターゲットが上書きされずに複数のターゲットファイルが作成されます。- 詳細モードでマッピングを実行した場合、ゼロバイトのファイルを読み取ることはできません。 - ソースのスキーマファイルをアップロードし、実行時にMicrosoft Azure Data Lake Storage Gen2ターゲットを作成するときは、ソースファイルが空でないことを確認してください。 - 既存のターゲットにデータを追加するときは、詳細ターゲットプロパティでオーバーライドを設定する必要があります。設定しないと、マッピングが失敗します。 - 実行時に作成されたターゲットにデータを追加する場合、同じ名前のファイルがターゲットディレクトリに存在すると、マッピングは失敗します。この場合、最初に既存のファイルを上書きしてから、データを追加する必要があります。
- JSONファイルに空の構造データを含むフィールドがある場合、Secure Agentはそのフィールドを無視し、メタデータの読み取り中に残りのフィールドを読み取ります。例えば、JSONファイルの最初の行にデータ{"id":123,"address":{}} がある場合、address フィールドは無視され、[フィールド] タブには表示されません。JSONファイルで連続する行のaddress フィールドに値がある場合、[サンプリングするデータ要素] プロパティを使用してこのフィールドを取得できます。
- 詳細モードのマッピングを実行し、doubleまたはfloatデータ型のソースフィールドをstringデータ型のターゲットフィールドにマッピングすると、ターゲットでは値の形式が変わります。次の表に、ターゲットの値の形式の変化を示します。
ソースの値
ターゲットの値
-1.7976931348623157e+308
-1.79769313486232e+308
-9999999999999.99
-10000000000000
4.94065645841247e-324
4.9e-324
7956318123.99392483
7956318123.99392