私はAzure Data Factoryを使用して、定期的にMySQLからAzure SQLデータウェアハウスにデータをインポートしています。Azure Data Factoryを使用して、MySQLからAzureデータウェアハウスへデータを段階的にインポートする方法?
データはAzureストレージアカウントのステージングブロブストレージを通過しますが、パイプラインを実行するとBLOBテキストを列に戻すことができないため失敗します。パイプラインが宛先に挿入しようとする各行は、 "⯑"文字で区切られたすべての列値を含む長い文字列になります。
インクリメンタルメカニズムを試さずにデータファクトリを使用しましたが、正常に動作しました。私はそのような行動を引き起こす理由は見当たりませんが、おそらく何かが欠けているでしょう。
私は、パイプラインを説明するJSONをマイナーチェンジしています。これを説明できるものがあれば教えてください。
ありがとうございます!
EDIT:追加例外メッセージ:
Failed execution Database operation failed. Error message from database execution : ErrorCode=FailedDbOperation,'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=Error happened when loading data into SQL Data Warehouse.,Source=Microsoft.DataTransfer.ClientLibrary,''Type=System.Data.SqlClient.SqlException,Message=Query aborted-- the maximum reject threshold (0 rows) was reached while reading from an external source: 1 rows rejected out of total 1 rows processed. (/f4ae80d1-4560-4af9-9e74-05de941725ac/Data.8665812f-fba1-407a-9e04-2ee5f3ca5a7e.txt) Column ordinal: 27, Expected data type: VARCHAR(45) collate SQL_Latin1_General_CP1_CI_AS, Offending value:* ROW OF VALUES * (Tokenization failed), Error: Not enough columns in this line.,},],'.
{
"name": "CopyPipeline-move_incremental_test",
"properties": {
"activities": [
{
"type": "Copy",
"typeProperties": {
"source": {
"type": "RelationalSource",
"query": "$$Text.Format('select * from [table] where InsertTime >= \\'{0:yyyy-MM-dd HH:mm}\\' AND InsertTime < \\'{1:yyyy-MM-dd HH:mm}\\'', WindowStart, WindowEnd)"
},
"sink": {
"type": "SqlDWSink",
"sqlWriterCleanupScript": "$$Text.Format('delete [schema].[table] where [InsertTime] >= \\'{0:yyyy-MM-dd HH:mm}\\' AND [InsertTime] <\\'{1:yyyy-MM-dd HH:mm}\\'', WindowStart, WindowEnd)",
"allowPolyBase": true,
"polyBaseSettings": {
"rejectType": "Value",
"rejectValue": 0,
"useTypeDefault": true
},
"writeBatchSize": 0,
"writeBatchTimeout": "00:00:00"
},
"translator": {
"type": "TabularTranslator",
"columnMappings": "column1:column1,column2:column2,column3:column3"
},
"enableStaging": true,
"stagingSettings": {
"linkedServiceName": "StagingStorage-somename",
"path": "somepath"
}
},
"inputs": [
{
"name": "InputDataset-input"
}
],
"outputs": [
{
"name": "OutputDataset-output"
}
],
"policy": {
"timeout": "1.00:00:00",
"concurrency": 10,
"style": "StartOfInterval",
"retry": 3,
"longRetry": 0,
"longRetryInterval": "00:00:00"
},
"scheduler": {
"frequency": "Hour",
"interval": 1
},
"name": "Activity-0-_Custom query_->[schema]_[table]"
}
],
"start": "2017-06-01T05:29:12.567Z",
"end": "2099-12-30T22:00:00Z",
"isPaused": false,
"hubName": "datafactory_hub",
"pipelineMode": "Scheduled"
}
}
手順と例外を追加できますか? –
失敗した実行 データベース操作が失敗しました。エラーコード:エラーコード= FailedDbOperation、 'Type = Microsoft.DataTransfer.Common.Shared.HybridDeliveryException、メッセージ= SQLデータウェアハウスにデータをロードするときにエラーが発生しました。ソース= Microsoft.DataTransfer.ClientLibrary、' 'Type = System。 Data.SqlClient。SqlException、Message = Query aborted - 外部ソースからの読み取り中に最大拒否しきい値(0行)に達しました。処理された合計1行のうち1行が拒否されました。 (/f4ae80d1-4560-4af9-9e74-05de941725ac/Data.8665812f-fba1-407a-9e04-2ee5f3ca5a7e.txt) – PandaZ
序数:27、予期されるデータ型:VARCHAR(45)照合SQL_Latin1_General_CP1_CI_AS、不当な値:*多すぎる文字FOR RESPONSE *(トークン化に失敗しました)、エラー:この行に列が足りません。、}、]、 ' – PandaZ