title: Data warehouse, data update strategy with Bigquery
body: <p>We have a MIS where stores all the information about Customers, Accounts, Transactions and etc. We are building a data warehouse with BigQuery.<br>
  I am pretty new on this topic, Should we<br>
  1. everyday extract ALL the customer's latest information and append them to a BigQuery table with timestamp,<br>
  2. or we only extract the updated customer's information on that day?  </p>
  
  <p>First solution uses a lot of storage and takes time to upload data, and got lots of duplicates. But it's very clear for me to run query. For 2nd solution, given a specific date how can I get the latest record for that day?  </p>
  
  <p>Similar for Account data, an example of simplified Account table, only 4 fields here.  </p>
  
  <blockquote>
    <p>AccountId, CustomerId, AccountBalance, Date  </p>
  </blockquote>
  
  <p>If I need to build a report or graphic of a group of customers' AccountBalance everyday, I need to know the balance of each account on every specific date. So should I extract each account record everyday, even it's the same as last day, or I can only extract the account when the balance changed?  </p>
  
  <p>What is the best solution or your suggestion? I prefer the 2nd one because there are no duplicates, but how can I construct the query in BigQuery, will performance be an issue?<br>
  What else should I consider? Any recommendation for me to read?</p>