ここでの講義中に私が遭遇したこれらの2つのステートメントの違いと意味は何ですか?
1. Traditional databases enforce schema during load time.
と
2. Hive enforces schema during read time.
Hadoopやその他のNoSQL戦略が成功した理由の1つに触れているので、論文を取得することを期待していたかどうかはわかりませんが、ここにあります。データ分析の柔軟性と敏捷性は、大規模なデータ分析を一般的に容易にするという理由だけで、おそらく「データサイエンス」の爆発的な増加に貢献しています。
従来のリレーショナルデータベースは、スキーマを念頭に置いてデータを格納します。2番目の列が整数であること、40列あることなどを認識しています。したがって、事前にスキーマを指定し、十分に計画する必要があります。これは「書き込み時のスキーマ」です。つまり、データがデータストアに書き込まれるときにスキーマが適用されます。
Hive(場合によっては)、Hadoop、およびその他の多くのNoSQLシステムは、一般に「読み取り時のスキーマ」に関するものです。データストアからデータが読み取られるときにスキーマが適用されます。次の生のテキスト行について考えてみます。
A:B:C~E:F~G:H~~I::J~K~L
これを解釈する方法はいくつかあります。~
区切り文字である場合もあれば、区切り文字である場合:
もあります。知るか?読み取り時にスキーマがあれば、それは問題ではありません。データを書き込むときではなく、データを分析するときにスキーマを決定します。この例は、おそらくこのケースに遭遇することはないという点で少しばかげていますが、うまくいけば意味がわかります。
スキーマの読み取りでは、データをデータストアにロードし、後で解析および解釈する方法を検討するだけです。この説明の核となるのは、読み取りのスキーマとは、最初にデータを書き込み、後でそれが何であるかを理解することを意味します。書き込み時のスキーマとは、データが最初に何であるかを把握し、その後に書き込むことを意味します。
ここにはトレードオフがあります。これらのいくつかは主観的であり、私自身の意見です。
書き込み時のスキーマの利点:
書き込み時のスキーマの欠点:
読み取り時のスキーマの利点:
読み取り時のスキーマの欠点: