我在这里的讲座中遇到的这两个陈述的区别和含义是什么:
1. Traditional databases enforce schema during load time.
和
2. Hive enforces schema during read time.
答案 0 :(得分:26)
你谈到了Hadoop和其他NoSQL策略如此成功的原因之一,所以我不确定你是否期望得到一篇论文,但在这里它是!数据分析的额外灵活性和灵活性可能促成了“数据科学”的爆炸式增长,这只是因为它使得大规模数据分析更容易。
传统的关系数据库在考虑模式时存储数据。它知道第二列是一个整数,它知道它有40列等等。因此,你需要提前指定你的模式并做好计划。这是“写入模式” - 也就是说,在将数据写入数据存储时应用模式。
Hive(在某些情况下),Hadoop和许多其他NoSQL系统通常都是关于“读取模式” - 在从数据存储读取数据时应用模式。请考虑以下原始文本行:
A:B:C~E:F~G:H~~I::J~K~L
有几种方法可以解释这一点。 ~
可以是分隔符,也可以:
可以是分隔符。谁知道?在读取模式时,无关紧要。您可以在分析数据时决定架构是什么,而不是在编写数据时。这个例子有点荒谬,因为你可能永远不会遇到这种情况,但它有希望得到重点。
在读取架构时,您只需将数据加载到数据存储中,并考虑以后如何解析和解释。在此解释的核心,架构上的意味着首先编写数据,然后弄清楚它是什么。 写入时的模式意味着先弄清楚你的数据是什么,然后再写下来。
这里有一个权衡。其中一些是主观的和我自己的看法。
写 架构的好处:
写时架构的缺点:
架构对读取的好处:
读取架构的下行: