我们有很多Azure Application Insight跟踪的应用程序。我们已配置连续导出到Azure Blob存储。这些数据按导出日期进行分区。文件夹结构具有格式
{YYYY-MM-DD} / {GUID} .blob
存在问题,分区键依赖于导出日期(不在* .blob文件中的事件日期)。
所以放在文件夹
的文件/ 2016年11月5日/
可以包含日期事件
2016-11-09,2016-11-11,2016-11-12
我们希望Azure数据湖数据库中包含这些数据,以便使用Azure Data Lake Analytics对其进行分析。此外,我们希望事件表按事件生成时间进行分区。
为了协调整个ETL过程,我们选择了ADF。我们喜欢增量模型,调度和可靠性模型。我们选择数据切片~1天。 ADF的要求之一:管道中的每个活动都应该可重复(如果我将为随机数据切片安排重新运行,则应该对其进行一致的重新处理,例如清理旧数据,并加载新的数据)。
所以我们有这些活动的管道:
1)数据移动:jsons blobs ---> csv datalake存储文件系统,结果csv文件与源数据相同的分区键,与导出日期对齐。
2)U-SQL活动。我们计划调用U-SQL作业并传递参数SliceStart,SliceEnd指向当前数据切片。当源和目标的分区键对齐时,我们可以截断分区/重新加载分区。但是当这些分区未对齐时,就没那么好了。
由于以下原因,在案例中实施可重复 U-SQL步骤似乎存在问题:
但这里的根本原因是分区的错位。
我只有想法:
如果有人让我知道如何解决问题,我会很高兴。理想情况下,我们应该避免大量重新加载/重新扫描数据。