1

パーティション分割されたテーブルを更新する Azure Data Lake で U-SQL ジョブを実行しており、それらは正常に実行されますが、「ファイナライズ」フェーズでエラー「JM_FinalMetadataOperationUserError」で失敗します。スタック トレースは次のようになります。

Object ec2d8ab3-6df5-48eb-9169-daec48bf27a6.DeployedLogs.dbo.ConcurrentRecord__1__System.DateTime.FromBinary
(5246322962427387904 /* 2012-02-01T12:00:00.0000000Z */) 
already exists at Scope.MetadataService.Client.WcfBasedMetadataClient.ExecuteMetadataJob(MetadataJob mdJob) 
at MetaDataExecutor.RealMetaDataExecutor.Execute(MetadataJob job) 
at MetaDataExecutor.Committer.Commit(MetadataJob job)

エラーメッセージには次のように記載されています。

Failed to write job meta-data due to user error

この問題の原因は何ですか? テーブルから値が追加/切り捨てられたことが原因ですか?

助けていただければ幸いです。

4

1 に答える 1

5

エラーの理由は、2 つのジョブを同時に実行して同じパーティションを作成したためです。1 つのスクリプトは完了し、パーティションが作成されたことを検出すると、2 つ目のスクリプトは失敗します。

現在、エラー メッセージを改善し、このような競合状態の可能性を減らす方法を検討しています。

[追加] ジョブ履歴と競合状態の証拠 (アカウント名を匿名化) の詳細を以下に示します。

  1. このジョブは 2016 年 5 月 31 日 00:56:06.100 にコンパイルされました。この時点では、パーティションは存在しなかったため、このパーティションの CreateEntityOperation が代数に含まれていました。ログ: d,05/31/2016 00:56:06.100,ScopeMetadataService,GetMetaEntity,SrcFile="" SrcFunc="" SrcLine="0" Pid="17072" Tid="16548" TS="0x01D1BB11E2999697" String1="メタエンティティの情報取得開始 ec2d8ab3-6df5-48eb-9169-daec48bf27a6.DeployedLogs.dbo.ConcurrentRecord__1__System.DateTime.FromBinary(5246322962427387904 /* 2012-02-01T12:00:00.0000000Z */)"

  2. 2016 年 5 月 31 日 01:07:53.766 に別のジョブによって作成されたパーティション (失敗したジョブのコンパイル後、失敗したジョブのメタデータ操作の実行前)。ジョブ URL: https://b ******.azuredatalakeanalytics.net/Jobs/909c4680-fd90-452a-93b0-fcc7860de504?api-version=2015-02-12 ログ: d,05/31/2016 01 :07:53.766,ScopeMetadataService,CreateEntity,SrcFile="" SrcFunc="" SrcLine="0" Pid="17608" Tid="20028" TS="0x01D1BB138866CD29" String1="エンティティ ec2d8ab3-6df5-48eb-9169-daec48bf27a6 .DeployedLogs.dbo.ConcurrentRecord__1__System.DateTime.FromBinary(5246322962427387904 /* 2012-02-01T12:00:00.0000000Z */) が正常に作成されました。

  3. 05/31/2016 02:17:57.241 にパーティションを作成するためのメタデータ操作を実行すると、ユーザー ジョブが失敗しました。別のジョブによってパーティションが作成されたためです。ログ: e,05/31/2016 02:17:57.241、ScopeMetadataService、メタデータ タスクをコミットするときの SMS 予期しない例外、SrcFile="" SrcFunc="" SrcLine="0" Pid="17072" Tid="20972" TS= "0x01D1BB1D51DE3815" String1="Scope.MetadataService.Contract.FaultContract.AlreadyExistException: Object ec2d8ab3-6df5-48eb-9169-daec48bf27a6.DeployedLogs.dbo.ConcurrentRecord__1__System.DateTime.FromBinary(5246322962427387904 /* 2012-02-01T12:00:00.0000000Z */) もう存在している。

詳細については、Microsoft の mrys までご連絡ください。

于 2016-06-02T18:46:22.320 に答える