title: Modelling a bitemporal data set in a data warehouse
body: <p>I have a bitemporal EAV type model.</p>
  <p>There are multiple attribute tables(one for each value data type(int_attributes, float_attributes, etc. )) looking like:</p>
  <pre><code>|id|field_id|value|as_of_date_start|as_of_date_end|system_date_start|system_date_end|
  </code></pre>
  <p>And a reference table for attributes:</p>
  <pre><code>|field_id|name|data_type|target_attribute_table|
  </code></pre>
  <p>It is possible to construct an entity and get all its attributes at any point in time by querying a union of all attribute value tables.</p>
  <p><strong>Question</strong></p>
  <p>I want to move this data to a data warehouse(Snowflake). I wasn't able to find a whole lot of info on moving bitemporal data to a warehouse and how to model it. I don't understand where would I need a facts and dimensions related modelling in this scenario. Also would it make any sense to pivot this table to get attributes as columns when loading the data in the system?</p>
  <p>I'm thinking of moving this data as is to the warehouse.</p>
  <p>The main use cases of this data is to get the current snapshot of data, get entire history of some entities and get histories of selected attributes on selected entities and do some analysis on them.</p>
  <p>I'm very new to data modelling in a warehouse.</p>