問題タブ [hashbytes]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql-server - 一意のキーとして機能するハッシュ キーの作成
名前と住所の情報が重複している非常に大きなテーブルがあります。このテーブルは、タスクを実行し、結果をテーブルに追加するプロセスをフィードします。名前と住所の情報にハッシュ キーを作成することで、このプロセスに入力される量を減らしたいと考えています。そうすれば、ハッシュ キーごとに 1 つのレコードをフィードできるので、入力を 75% 削減できます。そして、このキーが長期にわたって持続する必要があります。
ただし、このハッシュ キーは、結果テーブルを結合するキーとして機能するため、一意である必要があります。永続化された列としてハッシュ キーを作成し、それに一意の制約を与えることはできますが、衝突の可能性がごくわずかであることを懸念しています。2 つの異なる名前とアドレスの文字列が同じハッシュ出力を生成する可能性がある場合でも、両方に対して一意のキーが必要です。
これが起こる可能性は信じられないほどありそうにないとしても、もしそうなったとしても、私には計画がないことを知って嬉しくありません.
また、テーブルのサロゲート ID を使用し、名前とアドレスのグループ内のすべてのレコードに MIN(surrogateID) を割り当てることも検討しました。ただし、特定のグループの MIN(surrogateID) に対応するレコードが削除された場合、ID が変更されました。
個別の名前と住所のルックアップ テーブルを作成し、それぞれに単純な整数 ID を与えることができます。しかし、保管コストは避けたいと思います。
私が考慮していない可能性のある他のオプションはありますか?
sql - Snowflake SHA1/標準 SHA1 関数を使用した SQL Server HASHBYTES SHA1 出力が必要
SQL サーバーのコマンド/スクリプトを Snowflake SQL に移行しており、この特定のクエリで行き詰まりました。この文字列を SHA1 アルゴリズムにハッシュするために、SQL Server の HASHBYTES 関数を使用しています。残念ながら、SQL サーバー コマンドの出力は、スノーフレークやその他のコンバーターと一致しません。
SQL サーバー コード:
SQL サーバー出力:
以下のように、上記のコードをスノーフレークで記述してみました。
スノーフレーク SQL:
スノーフレーク出力:
他の標準の SHA1 コンバーターを使用しても同じ出力が得られますが、SQL サーバーの HASHBYTES から取得したものとまったく同じ値が必要になります。