Skip to content
Keith Martin edited this page Aug 18, 2018 · 5 revisions

Description:

SSIS Multiple Hash makes it possible to generate many Hash values from each input row. Hash's supported are:

  • MD5
  • Rip MD160
  • SHA1
  • SHA256
  • SHA384
  • SHA512
  • CRC32
  • CRC32C
  • FNV1a32
  • FNV1a64
  • MumurHash3a new
  • xxHash new

The 64 bit download is for 64 bit machines, and detects SQL Server 2008 through SQL Server 2016.
The 32 bit download is for 32 bit machines, and detects SQL Server 2008 through SQL Server 2016.
You will need to re-install if you add a new version of SQL Server to your machine.

The last release that support SQL 2005 is V1.6.7.4

Main Project Site: https://github.com/keif888/SSISMHash

Source Download: master Binary Download: Releases

Instructions: SSIS Multiple Hash Component Wiki
Programming: Programmatically Creating a Multiple Hash component in a Data Flow

Release Notes

This component has now been updated to version 1.7.4
This release addresses an issue with the installer.
#16 Installation location of Multiple Hash is incorrect
There are no product changes, just installer changes.

Known Issues

Upgrading SQL Versions

If you install a new version of SQL Server, please ensure that you re-install SSIS Multiple Hash, as failure to do so will lead to SSIS packages that will not upgrade, if you edit and save them.
This is caused by the SSIS Upgrade process which only runs on the 1st opening of an older version SSIS package.
If SSIS Multiple Hash for the editing version of SQL Server is not installed errors will be reported.
Do NOT save the SSIS package, as it will not upgrade again.
This issue is common to ALL third party SSIS components.

Known Hash Change Condition

If you run a package using a version of Multiple Hash prior to 1.6, that uses a Time or DateTime type, upgrade the package to version > 1.6 AND tick the Milliseconds option, then the hash generated WILL BE DIFFERENT.
To generate the same hash, ensure the Milliseconds option is turned OFF.
The upgrade of the package will NOT tick the Milliseconds option.
This should ONLY be done to maintain compatibility with hash versions prior to 1.6.

Older Release Notes

This component has now been updated to version 1.7.3
This release addresses two issues with the installer.
#13 - Failed to detect x64 SSIS on Azure-SSIS Integration Runtime
#9 - Failed to detect SQL 2017 on clean install of Windows and SSDT 15.7
There are no product changes, just installer changes.

This component has now been updated to version 1.7.2
This release adds SQL Server 2017 support.
If you have a previous release of 1.7 installed, then you should apply this update IF you are using SQL 2017 or SSDT 17.2 (for VS2015) or greater, or are using VS2017.
This release has been tested on Windows 10, VS2015 SSDT 17.2 (SQL 2012, 2014, 2016 and 2017), Windows 2012 R2 (SQL 2014 and SQL 2016).
This release is believed to address issues #6 and #7, which I believe are related to the default of SQL 2017 in SSDT 17.2.

This component has now been updated to version 1.7.1
This is an Installer only update fix.
There are no changes to the DLL's within the package. If 1.7.0.0 is working for you, you do not need this update.
This update addresses issue #5 Installer succeeds but no file in PipelineComponents folder

This component has now been updated to version 1.7.0
This is a functionality release.
It introduces two new hash algorithms.
Murmur3a
xxHash
It introduces two new output column types.
Base 64 String
Hex String
The above changes increment the version number to 7 within the SSIS package file. As such packages created in 1.7 will not execute with component version 1.6.
It adds a select all tick box to the user interface, to make it much easier to select all the columns.

This component has now been updated to version 1.6.7.4
This is an update to include support for SSDT's version 17+.
There are no other changes to the component.

This component has now been updated to version 1.6.6.
This is an update to include SQL 2016 and Visual Studio 2015 support.
There are no other changes to the component.

This component has now been updated to version 1.6.3.
This is an update to correct SQL 2014's install using the SQL 2012 DLL.
It also enables detection of BIDS or SSDT's only installs (ie. SSIS Service is not installed on the workstation)

Version 1.6.1 Details:
This release corrects a bug for systems with greater than 32 cores. nb. If using a previous version on a system with greater than 32 cores, disable Multiple Threading as a work around.

Version 1.6 Details:
This release corrects a bug in date time handling, where milliseconds were not being hashed. Updating the component will NOT automatically correct this in existing packages. You will have to tick the box Milliseconds to enable this. This has been done to preserve backwards compatibility.

If you are not hashing Date Time data types with a requirement for millisecond precision, then you don't need to update your component version.

Version 1.5.1 Details:
This release improves performance significantly, and corrects a UI defect in multiple select.

Version 1.5 Details:
This release adds 4 new Hash algorithms, and corrects a defect in the multiple select capability.

Version 1.4.1 Details:
This release adds multiple select/deselect capability to the Input and Output tabs for the check box columns.

Version 1.4 Details:
This release improves the UI for selection of columns in the Hash, and the ordering of these columns. It also includes SQL 2012 support.

Version 1.3.1 Details:
Corrects an issue with Multiple Threading and Thread Safe not being enabled.

Version 1.3 Details:
This release adds the ability to upgrade an SQL 2005 package to SQL 2008.
This release adds the ability to detect the following scenarios:

Version 1.2.1 or lessor

Col 1 Col 2 Col 3 Hash
Text NULL Text 2 0x123456
Text Text 2 NULL 0x123456
NULL Text Text 2 0x123456

Version 1.3 without Safe Ticked (This is the default action on an update)

Col 1 Col 2 Col 3 Hash
Text NULL Text 2 0x123456
Text Text 2 NULL 0x123456
NULL Text Text 2 0x123456

Version 1.3 with Safe Ticked (You have to enable this in your existing packages)

Col 1 Col 2 Col 3 Hash
Text NULL Text 2 0x123564
Text Text 2 NULL 0x124563
NULL Text Text 2 0x823456

Note that all the hashes are different in this case, and they are different from those generated by the older versions. This is because columns that are variable length will have their length appended to a string at the end of the hash data, and all columns will have their NULL status added to the same string. That string is then added to the data read in, and hashed.

Design Page Example

Multiple Hash Data Flow

Meta Data from Example

Multiple Hash Metadata

Review(s):