指导需要设置数据采集



我需要一些设置数据采集的指导:

  1. 我们从返回JSON文件的源(rest api(中提取数据。下面给出的示例结构
{
"version": "3.0",
"name": "application_name",
...
"request":
{
"startdate": "" ,
"enddate": "",
"records": 1000
...
}
"ranking":
{
"90":
{
"name": "somename",
"class": "someclass"
..
},
"98":
{
"name": "somename",
"class": "someclass"
..
}
"86":
{
"name": "somename",
"class": "someclass"
..
}   
}
}
  1. 我们计划将这些信息存储在datalake中,因此我有以下问题:

    A。我们计划将数据转储到目录[YEAR]-[MONTH]-[FILE_.json]下。与将[FILE_.json]存储在根目录中相比,按[YEAR]和[MONTH]划分目录有什么优势?

    B。如果我们多次提取数据(比如每小时(,那么我应该覆盖[FILE_.json]还是附加文件更好?

    C。建议按来源存储数据,还是最好存储所需的数据。在这种情况下;排名";属性

    D。我注意到过去10天的数据还没有提取出来。在这种情况下,如果我提取过去10天的数据,它会将所有数据存储在一个文件[file_.json]中。这是存储数据的好方法吗?为了从源获取数据,我必须传递startdata和enddate。在一个电话中获取所有10天的数据比打10个不同的电话更容易。

    E。是否建议在JSON文件中添加以下附加属性:-摄取-标签??

    F。将来,如果我们从另一个源提取数据,我应该组合数据并将其转储到一个json中,还是应该使用不同的json文件。不同来源之间的JSON结构会有所不同吗?哪种方法对下游消费更容易?

如果有人能指引我们朝着正确的方向前进,我将不胜感激。任何投入都会有所帮助。

谢谢

以下是您所有问题的答案。

A拆分或过滤[YEAR]和[MONTH]上的数据的优势将有助于您对其进行管理。您将能够根据每月、日期和小时来识别数据,以备将来参考。如果将所有数据加载到一个文件中,则很难进行进一步处理。因此,在任何给定的情况下,对数据进行排序都是推荐的方法。

B覆盖或附加文件完全取决于您的用例。如果您的应用程序将来可能需要以前的数据,最好附加。或者,如果以前的数据没有用,将来也不需要,那么只需覆盖它并保存存储内存。

C建议只存储所需的数据。存储不需要的数据将使用不必要的存储。使用Azure数据工厂数据流清理数据,并将输出存储在数据湖中。

D从技术上讲,您应该管理答案A中提到的相同层次结构,以正确管理数据。每天拆分数据以便于处理。

E这不是强制性的,但如果你愿意的话,你可以。因为你已经在每天拆分了,所以不需要额外的标签。

F从不同的源提取数据时,请始终将其保存在单独的JSON文件中,这样可以很容易地识别数据,不会出现混淆。创建一个单独的文件夹结构并在其中存储数据。

最新更新