Forum Discussion
Moving Calculated Columns/Measures to Replicated Snowflake Tables
- 5 years ago
Ideally this is what you do. 0% work will need to be done in Power BI, all in Power Query.
- Connect to Snowflake
- Transform the Snowflake connections in Power Query to mirror those of the SQL tables. This includes column renames as well as any other transformations.
- Open the Advanced editor for one of the snowflake tables and copy all of that M code.
- Open the Advanced editor for the SQL table you are replacing. Paste in all of that M code replacing the SQL M code.
- Close and apply.
Power BI Desktop will not know the difference. It will just work. Wash, rinse, repeat for every table.
In the tabular model, the table names aren't used. It really references table numbers, which is why you can easily rename tables with no harm. But it means you cannot create a new query in Power query with the same name and delete the old query and then import. They will have different underlying IDs.
You can do one of two things:
- Remove them and redo them as Custom Columns in Power Query
- Do a deep dive on DAX circular dependency issues and adjust the DAX to compensate.
I personally recommend option 1.
In general, try to avoid calculated columns. There are times to use them, but it is rare. Getting data out of the source system, creating columns in Power Query, or DAX Measures are usually preferred to calculated columns. See these references:
Calculated Columns vs Measures in DAX
Calculated Columns and Measures in DAX
Storage differences between calculated columns and calculated tables
SQLBI Video on Measures vs Calculated Columns