ハイブ テーブルの代理キーを作成したいのですが、データがテーブルに配置されるたびに複製できるものです。他のテーブルは代理キーを介してこのテーブルを参照し、テーブルを再生成して行を追加することができ、その関連付けは壊れません。私の考えは、基本的にテーブル内のすべての列の複合キーを持つことです。
すべての列を連結し、その文字列の md5 ハッシュを取得して、その行の簡単なルックアップとして使用することは合理的ですか?
このソリューションで見られる問題は次のとおりです。
- 行内のデータが変更された場合でも、関連付けは解除されます
- ハッシュ値が一意であるという実際の保証はありません (ただし、私の数値では、衝突はほとんどありません)
データに関する注意事項:
- データは日ごとに分割され、1 日あたり約 10 万行あります。
- 2 つの行がまったく同じデータを持つ場合があり、最終的に同じキーになっても問題ありません。