title: ETL: doing a join across different sources with different field type
body: <p>For an application that does ETL across multiple sources, how are joins handled where the &quot;value&quot; may be the same, but how it is represented could be different. For example, let's take the following made-up scenario:</p>
  <p><strong>Source1</strong></p>
  <ul>
  <li>ProductID: <code>909</code> // an int</li>
  <li>Product: <code>&quot;Soda&quot;</code></li>
  </ul>
  <p><strong>Source2</strong></p>
  <ul>
  <li>ProductID: <code>&quot;909&quot;</code> // a string</li>
  <li>ActionType: <code>&quot;Click&quot;</code></li>
  </ul>
  <hr />
  <p>Let's say these are from two different source that I don't have access to modify (for example, one might be Salesforce data and the other is a company database). How might an ETL application handle joins where the field types may be stored differently?</p>