<?xml version="1.0" encoding="UTF-8" standalone="no"?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:gd="http://schemas.google.com/g/2005" xmlns:georss="http://www.georss.org/georss" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:thr="http://purl.org/syndication/thread/1.0"><id>tag:blogger.com,1999:blog-7656888</id><updated>2026-04-10T03:40:47.775-06:00</updated><category term=".NET"/><category term="Code Sample"/><category term="Developer"/><category term="Misc"/><category term="GIS"/><category term="Tools and Utilities"/><category term="ASP.Net"/><category term="Software"/><category term="C#"/><category term="Technology"/><category term="Visual Studio"/><category term="Tips N Tricks"/><category term="Microsoft"/><category term="Gadgets"/><category term="SQL Server"/><category term="iPhone"/><category term="TFS"/><category term="software management"/><category term="VS 2008"/><category term="SQL"/><category term="Google"/><category term="Dynamics CRM"/><category term="Windows"/><category term="WP7"/><category term="Maps"/><category term="WCF"/><category term="Google Earth"/><category term="Windows Phone"/><category term="web"/><category term="VS 2010"/><category term="internet"/><category term="Words"/><category term="iPhone Apps"/><category term="database"/><category term="Funnies"/><category term="GPS"/><category term="Ads"/><category term="Denver"/><category term="LIDAR"/><category term="PowerBi"/><category term="debug"/><category term="business"/><category term="PowerShell"/><category term="PhotoSynth"/><category term="Virtual Earth"/><category term="Windows 7"/><category term="iPhone - Tips n Tricks"/><category term="Agile"/><category term="JavaScript"/><category term="Scrum"/><category term="Silverlight"/><category term="iis"/><category term="software engineering"/><category term="ad music"/><category term="DotNetNuke"/><category term="Imaging"/><category term="LIDAR Analyst"/><category term="quotes"/><category term="Windows Mobile"/><category term="AJAX"/><category term="ASP.Net Databases"/><category term="AWS"/><category term="CRM 2011"/><category term="Embedded"/><category term="Graphics"/><category term="JQuery"/><category term="Money"/><category term="TED"/><category term="start up"/><category term="LASIK"/><category term="Vista"/><category term="Azure"/><category term="MVC"/><category term="Open Source"/><category term="Visual Learning Systems"/><category term="security"/><category term="Bing"/><category term="Feature Analyst"/><category term="Mio"/><category term="WPF"/><category term="Windows 8"/><category term="how-tos"/><category term="Chrome"/><category term="Entrepreneur"/><category term="Stocks 50/200"/><category term="XBOX"/><category term="Yahoo Maps"/><category term="crm 365"/><category term="design"/><category term="photography"/><category term="software architect"/><category term="ArcGIS"/><category term="DPM"/><category term="Entity Framework"/><category term="IE"/><category term="Licensing"/><category term="Metro"/><category term="Personal Development"/><category term="Politics"/><category term="VC++"/><category term="Vote"/><category term="science"/><category term="Athena"/><category term="Auto"/><category term="Mac"/><category term="Note To Self"/><category term="OptiRoute"/><category term="Oracle"/><category term="Prism"/><category term="TOAD"/><category term="WebApi"/><category term="AI"/><category term="BizTalk"/><category term="EntLib"/><category term="Games"/><category term="Lego"/><category term="Logic Apps"/><category term="Regex"/><category term="VSTS DB"/><category term="Wii"/><category term="improvement"/><category term="linq"/><category term="Denodo"/><category term="GDAL"/><category term="Govt"/><category term="Hyundai Santa Fe"/><category term="Lego 51515"/><category term="MSI"/><category term="VS 2011"/><category term="VS 2012"/><category term="azurerm powershell"/><category term="books"/><category term="databricks"/><category term="elections"/><category term="git"/><category term="github"/><category term="ideas"/><category term="linux"/><category term="machine learning"/><category term="music"/><category term="screencast"/><category term="work"/><category term=".net 4.5"/><category term="Airflow"/><category term="Android"/><category term="Azure Service Bus"/><category term="Baby"/><category term="Beer"/><category term="Cloud Computing"/><category term="D65"/><category term="DataFlows"/><category term="DevOps"/><category term="FinOps"/><category term="Halo 3"/><category term="Hp Touchpad"/><category term="Iceberg"/><category term="Interstate Road Conditions"/><category term="JDBC"/><category term="Links"/><category term="MVVM"/><category term="Math"/><category term="Mocks"/><category term="OpenID"/><category term="PCI"/><category term="PID"/><category term="Pentaho"/><category term="Phone"/><category term="QA"/><category term="Recycled"/><category term="Robotics"/><category term="SSRS"/><category term="SageMaker"/><category term="Testing"/><category term="WIF"/><category term="WeDo"/><category term="WinRT"/><category term="Windows 10"/><category term="Windows Store"/><category term="Workflow Foundation"/><category term="XRM Toolbox"/><category term="algorithms"/><category term="biology"/><category term="car"/><category term="colorado"/><category term="customer service"/><category term="dell"/><category term="devices"/><category term="facebook"/><category term="fiddler"/><category term="holiday"/><category term="home"/><category term="hr"/><category term="plumbing"/><category term="presentations"/><category term="reflection"/><category term="ssms"/><category term="vs 2013"/><title type="text">Aggregated Intelligence</title><subtitle type="html">AI - Aggregation of ideas</subtitle><link href="http://blog.aggregatedintelligence.com/feeds/posts/default" rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/7656888/posts/default?redirect=false" rel="self" type="application/atom+xml"/><link href="http://blog.aggregatedintelligence.com/" rel="alternate" type="text/html"/><link href="http://pubsubhubbub.appspot.com/" rel="hub"/><link href="http://www.blogger.com/feeds/7656888/posts/default?start-index=26&amp;max-results=25&amp;redirect=false" rel="next" type="application/atom+xml"/><author><name>Raj Rao</name><uri>http://www.blogger.com/profile/02773005045522319448</uri><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author><generator uri="http://www.blogger.com" version="7.00">Blogger</generator><openSearch:totalResults>1861</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><xhtml:meta content="noindex" name="robots" xmlns:xhtml="http://www.w3.org/1999/xhtml"/><entry><id>tag:blogger.com,1999:blog-7656888.post-2126619998969555640</id><published>2025-12-18T14:12:00.001-07:00</published><updated>2025-12-18T14:12:03.078-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AWS"/><title type="text">Running PdfPlumber in an AWS Lambda Function</title><content type="html">&lt;p&gt;&amp;nbsp;Here are the steps that I have documented for running PDFPlumber inside an AWS Lambda function. PDFPlumber is really good at extracting content (especially structured content) from a PDF. It can do this without the use of any GenAI models, but the downside is that it cant handle varying content very well. But if you have PDFs that have the same format and have well structured tables, then this tool can do a very good job at extracting that information.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="https://github.com/rajrao/mypublicnotes/blob/master/AWS/Lambda/pdfplumber.md"&gt;mypublicnotes/AWS/Lambda/pdfplumber.md at master · rajrao/mypublicnotes&lt;/a&gt;&lt;/p&gt;</content><link href="http://blog.aggregatedintelligence.com/feeds/2126619998969555640/comments/default" rel="replies" title="Post Comments" type="application/atom+xml"/><link href="http://www.blogger.com/comment/fullpage/post/7656888/2126619998969555640?isPopup=true" rel="replies" title="0 Comments" type="text/html"/><link href="http://www.blogger.com/feeds/7656888/posts/default/2126619998969555640" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/7656888/posts/default/2126619998969555640" rel="self" type="application/atom+xml"/><link href="http://blog.aggregatedintelligence.com/2025/12/running-pdfplumber-in-aws-lambda.html" rel="alternate" title="Running PdfPlumber in an AWS Lambda Function" type="text/html"/><author><name>Raj Rao</name><uri>http://www.blogger.com/profile/02773005045522319448</uri><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7656888.post-524520813574968174</id><published>2025-11-09T09:35:00.001-07:00</published><updated>2025-11-09T09:35:13.756-07:00</updated><title type="text">Infinite Campus stopped working on my phone (ERR_CONNECTION_TIMED_OUT)</title><content type="html">&lt;p&gt;My kid goes to a school that uses Infinite Campus and I suddenly started getting an error where I was unable to log into the site.&lt;/p&gt;&lt;p&gt;I tried different browsers, clearing cookies and nothing seemed to help.&lt;/p&gt;&lt;p&gt;The error:&lt;/p&gt;&lt;p&gt;This site can’t be reached campus.dcsdk12.org took too long to respond.&lt;/p&gt;&lt;p&gt;Try: Checking the connection&lt;/p&gt;&lt;p&gt;ERR_CONNECTION_TIMED_OUT&lt;/p&gt;&lt;p&gt;In the Android app, I got a much less helpful error message about something going wrong with the connection. The odd thing was that the site and app was working for everyone else in my family.&lt;/p&gt;&lt;p&gt;Finally I was able to figure out that the issue was that I was on a VPN. Once I disabled the VPN, I was able to successfully use the site and app. Lucky for me, my VPN allows me to add apps to an exception list. Adding campus Infinity to the exception list in my VPN app fixed the connection issue for me.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</content><link href="http://blog.aggregatedintelligence.com/feeds/524520813574968174/comments/default" rel="replies" title="Post Comments" type="application/atom+xml"/><link href="http://www.blogger.com/comment/fullpage/post/7656888/524520813574968174?isPopup=true" rel="replies" title="0 Comments" type="text/html"/><link href="http://www.blogger.com/feeds/7656888/posts/default/524520813574968174" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/7656888/posts/default/524520813574968174" rel="self" type="application/atom+xml"/><link href="http://blog.aggregatedintelligence.com/2025/11/infinite-campus-stopped-working-on-my.html" rel="alternate" title="Infinite Campus stopped working on my phone (ERR_CONNECTION_TIMED_OUT)" type="text/html"/><author><name>Raj Rao</name><uri>http://www.blogger.com/profile/02773005045522319448</uri><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7656888.post-1417769189570941447</id><published>2025-10-31T13:05:00.002-06:00</published><updated>2025-10-31T13:05:15.153-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="PowerBi"/><title type="text">SVGs, Floor plans in PowerBi</title><content type="html">&lt;p&gt;We had a business requirement to show charts with regions. For the first use case we had to show body injury data and what we had was an SVG that had all the body injury locations.&lt;/p&gt;&lt;p&gt;We looked at a lot of solutions:&lt;/p&gt;&lt;p&gt;1. Storing the SVG data in a table/measure and displaying it.&lt;/p&gt;&lt;p&gt;This did not work, as the SVG data I could only get to display in a table visual and that would be very small for our use case. Additionally we wanted to be able to pick locations and display regions with color coding.&lt;/p&gt;&lt;p&gt;2. Using the ShapeMap.&lt;/p&gt;&lt;p&gt;I tried to convert the SVG vector to TopoJson, but nothing seemed to be able to convert the SVG to a good TopoJson. I even tried to trace the SVG into a vector file using QGIS and then convert it to a TopoJson file. But it always ended up looking like a "Picaso Painting"&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/a/AVvXsEgWNXS8DZIy3QcJ0SIrNkTQSWk8xAf2fsmRggo0pLqP_RDJU8PEj3MKcHsK_GRNnWRSenIVRTXp4cEpL_tt7Xsg9D3-H_rmTd938gzwUKvPrJr55mfsP8YtDJgub0jofNio8yIxwXPiMsQa_XsY8KBAInroGwc4S5kBvjErflHmfupf66InKIR7ow" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img alt="" data-original-height="712" data-original-width="694" height="240" src="https://blogger.googleusercontent.com/img/a/AVvXsEgWNXS8DZIy3QcJ0SIrNkTQSWk8xAf2fsmRggo0pLqP_RDJU8PEj3MKcHsK_GRNnWRSenIVRTXp4cEpL_tt7Xsg9D3-H_rmTd938gzwUKvPrJr55mfsP8YtDJgub0jofNio8yIxwXPiMsQa_XsY8KBAInroGwc4S5kBvjErflHmfupf66InKIR7ow" width="234" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;See:&amp;nbsp;&lt;a href="https://stackoverflow.com/questions/69543650/power-bi-shape-map-rendering-issues-with-topojson"&gt;powerbi - Power BI - Shape map rendering issues with TopoJSON - Stack Overflow&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;3. Custom Visual:&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;There are a few different custom visuals available and we were investigating &lt;a href="https://okviz.com/synoptic-panel/" target="_blank"&gt;Synoptic Panel&lt;/a&gt; from Okviz). This would probably work, but if you had a lot of shapes, regions, then it would cost a per user license.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b&gt;Final Solution:&lt;/b&gt;&lt;/div&gt;The final solution actually turned out to be the easiest (the only requirement is that you need to have Visio online).&lt;p&gt;&lt;/p&gt;&lt;p&gt;Here are the details:&amp;nbsp;&lt;a href="https://support.microsoft.com/en-us/office/add-visio-visuals-to-power-bi-reports-4f09be62-f436-45c2-93b0-4a0f66b1f5a7"&gt;Add Visio Visuals to Power BI reports - Microsoft Support&lt;/a&gt;&lt;/p&gt;&lt;p&gt;And here is what it can look like:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/a/AVvXsEhN7NeKthPVliAaCR_NW4jnjA8ve1nBeqWwKv6waKPcWFC0caImQx4Ho8PL01aLSEmDDEc6YvnN9Puw9IpLiUuGmai4K_-ShSrt52hGnbdYsmMOxyoagvppyYSClHk4QQPPMBXX5AdYhM0Ty4C4nvGDCXxPjZMshoyPR0dHVg4n7PpYCBHdZg0Bfw" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img alt="" data-original-height="766" data-original-width="962" height="172" src="https://blogger.googleusercontent.com/img/a/AVvXsEhN7NeKthPVliAaCR_NW4jnjA8ve1nBeqWwKv6waKPcWFC0caImQx4Ho8PL01aLSEmDDEc6YvnN9Puw9IpLiUuGmai4K_-ShSrt52hGnbdYsmMOxyoagvppyYSClHk4QQPPMBXX5AdYhM0Ty4C4nvGDCXxPjZMshoyPR0dHVg4n7PpYCBHdZg0Bfw=w216-h172" width="216" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;One reason that this is a really good solution is that if you have a drawing that might frequently change (example floor map), then all you have to do is edit the visio diagram in Visio Online and if you open up the PowerBi dashboard, the changes immediately show up.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;How we did it: Its simple, create a new visio diagram and insert the SVG. As long as your SVG was made up of different parts, the svg will come in as a vector. You will have to ungroup your vector and you can make changes. For PowerBi to be able to color the image, the transparency for each part needs to be set to 0%. One thing I could not figure out is, how Power Bi determined as the page to use for the visual. It seemed like which one was the last one being edited would be picked. This felt dangerous, as if someone edited the diagram, it could impact the dashboard. So, we went with the option of a separate visio file for each diagram we wanted to include in PowerBi.&lt;/div&gt;&lt;p&gt;We will be investigating this option more, but I wanted to put this out there as a potential solution.&lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;More info:&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;a href="https://drivenbidata.wordpress.com/2024/09/16/custom-shape-maps-in-power-bi/"&gt;Custom Shape Maps in Power BI – Driven BI Data&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;a href="https://learn.microsoft.com/en-us/power-bi/visuals/desktop-shape-map#use-custom-maps"&gt;Use Shape Maps in Power BI Desktop (Preview) - Power BI | Microsoft Learn&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;</content><link href="http://blog.aggregatedintelligence.com/feeds/1417769189570941447/comments/default" rel="replies" title="Post Comments" type="application/atom+xml"/><link href="http://www.blogger.com/comment/fullpage/post/7656888/1417769189570941447?isPopup=true" rel="replies" title="0 Comments" type="text/html"/><link href="http://www.blogger.com/feeds/7656888/posts/default/1417769189570941447" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/7656888/posts/default/1417769189570941447" rel="self" type="application/atom+xml"/><link href="http://blog.aggregatedintelligence.com/2025/10/svgs-floor-plans-in-powerbi.html" rel="alternate" title="SVGs, Floor plans in PowerBi" type="text/html"/><author><name>Raj Rao</name><uri>http://www.blogger.com/profile/02773005045522319448</uri><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/a/AVvXsEgWNXS8DZIy3QcJ0SIrNkTQSWk8xAf2fsmRggo0pLqP_RDJU8PEj3MKcHsK_GRNnWRSenIVRTXp4cEpL_tt7Xsg9D3-H_rmTd938gzwUKvPrJr55mfsP8YtDJgub0jofNio8yIxwXPiMsQa_XsY8KBAInroGwc4S5kBvjErflHmfupf66InKIR7ow=s72-c" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7656888.post-279404657622172747</id><published>2025-05-30T16:00:00.005-06:00</published><updated>2025-05-30T16:00:40.951-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Athena"/><category scheme="http://www.blogger.com/atom/ns#" term="AWS"/><category scheme="http://www.blogger.com/atom/ns#" term="PowerBi"/><title type="text">PowerBi + Aws Athena + Dataflow Error: Incorrect number of arguments</title><content type="html">&lt;p&gt;&amp;nbsp;A dataflow that I had suddenly stopped work.&lt;/p&gt;&lt;p&gt;The error was&amp;nbsp;&lt;/p&gt;&lt;p&gt;Encountered user gateway exception: '&amp;lt;ccon&amp;gt;ODBC: ERROR [HY000] Incorrect number of arguments: &amp;lt;/ccon&amp;gt;&lt;/p&gt;&lt;p&gt;After a lot of troubleshooting, I figured out it was being caused by some steps I had added to add additional columns. Most likely, those steps were being query-folded to the database and it was not working.&lt;/p&gt;&lt;p&gt;I solved it by adding a call to Table.StopFolding right before I added the steps.&lt;/p&gt;&lt;p&gt;&lt;a aria-label="Link Table.StopFolding - Table Function | Power Query M" class="fui-Link ___1q1shib f2hkw1w f3rmtva f1ewtqcl fyind8e f1k6fduh f1w7gpdv fk6fouc fjoy568 figsok6 f1s184ao f1mk8lai fnbmjn9 f1o700av f13mvf36 f1cmlufx f9n3di6 f1ids18y f1tx3yz7 f1deo86v f1eh06m1 f1iescvh fhgqx19 f1olyrje f1p93eir f1nev41a f1h8hb77 f1lqvz6u f10aw75t fsle3fq f17ae5zn" href="https://powerquery.how/table-stopfolding/" id="menur2std" rel="noreferrer noopener" target="_blank" title="https://powerquery.how/table-stopfolding/"&gt;Table.StopFolding - Table Function | Power Query M&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/a/AVvXsEi6rLZTAXpF38uVY2hrT7ETjfzsYimEDVCZv7FLQpkVAq-rDLNyQ8dZtD9IVKgx-iRHZ_XVanu7QHhYI7d16r4pWlhUwkH4G8d6-74fk-KMU-9QeDgt7OpR-K8bSCUvS4zIKiCnlYg_qxueUXzbB1RmY1QT8eN7kaoouu8cQeETkMWtXup2HxiI7w" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img alt="" data-original-height="257" data-original-width="384" height="214" src="https://blogger.googleusercontent.com/img/a/AVvXsEi6rLZTAXpF38uVY2hrT7ETjfzsYimEDVCZv7FLQpkVAq-rDLNyQ8dZtD9IVKgx-iRHZ_XVanu7QHhYI7d16r4pWlhUwkH4G8d6-74fk-KMU-9QeDgt7OpR-K8bSCUvS4zIKiCnlYg_qxueUXzbB1RmY1QT8eN7kaoouu8cQeETkMWtXup2HxiI7w" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;</content><link href="http://blog.aggregatedintelligence.com/feeds/279404657622172747/comments/default" rel="replies" title="Post Comments" type="application/atom+xml"/><link href="http://www.blogger.com/comment/fullpage/post/7656888/279404657622172747?isPopup=true" rel="replies" title="0 Comments" type="text/html"/><link href="http://www.blogger.com/feeds/7656888/posts/default/279404657622172747" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/7656888/posts/default/279404657622172747" rel="self" type="application/atom+xml"/><link href="http://blog.aggregatedintelligence.com/2025/05/powerbi-aws-athena-dataflow-error.html" rel="alternate" title="PowerBi + Aws Athena + Dataflow Error: Incorrect number of arguments" type="text/html"/><author><name>Raj Rao</name><uri>http://www.blogger.com/profile/02773005045522319448</uri><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/a/AVvXsEi6rLZTAXpF38uVY2hrT7ETjfzsYimEDVCZv7FLQpkVAq-rDLNyQ8dZtD9IVKgx-iRHZ_XVanu7QHhYI7d16r4pWlhUwkH4G8d6-74fk-KMU-9QeDgt7OpR-K8bSCUvS4zIKiCnlYg_qxueUXzbB1RmY1QT8eN7kaoouu8cQeETkMWtXup2HxiI7w=s72-c" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7656888.post-3285563297871878569</id><published>2025-04-09T11:25:00.002-06:00</published><updated>2025-04-09T11:25:40.883-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AWS"/><title type="text">AWS Lambda error: Sandbox.Timedout 3.00 Seconds</title><content type="html">&lt;p&gt;In a AWS lambda, we suddenly started seeing this error:&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;span style="font-family: courier;"&gt;{&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp; "errorType": "&lt;b&gt;Sandbox.Timedout&lt;/b&gt;",&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;&amp;nbsp; "errorMessage": "RequestId: xxxxxx-xxxx-xxx-xxxxxxxxxxx &lt;b&gt;Error: Task timed out after 3.00 seconds&lt;/b&gt;"&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: courier;"&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p&gt;The "Sandbox.Timeout" threw me and I could not figure out where it was coming from.&lt;/p&gt;&lt;p&gt;Turned out, the error was being thrown by the AWS Lambda Infrastructure, because it was configured to run for only 3 seconds. This is done via the Configuration tab and editing the "General Configuration" and increasing the timeout setting.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;</content><link href="http://blog.aggregatedintelligence.com/feeds/3285563297871878569/comments/default" rel="replies" title="Post Comments" type="application/atom+xml"/><link href="http://www.blogger.com/comment/fullpage/post/7656888/3285563297871878569?isPopup=true" rel="replies" title="0 Comments" type="text/html"/><link href="http://www.blogger.com/feeds/7656888/posts/default/3285563297871878569" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/7656888/posts/default/3285563297871878569" rel="self" type="application/atom+xml"/><link href="http://blog.aggregatedintelligence.com/2025/04/aws-lambda-error-sandboxtimedout-300.html" rel="alternate" title="AWS Lambda error: Sandbox.Timedout 3.00 Seconds" type="text/html"/><author><name>Raj Rao</name><uri>http://www.blogger.com/profile/02773005045522319448</uri><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7656888.post-6492610887816323262</id><published>2025-04-01T13:11:00.001-06:00</published><updated>2025-04-01T13:11:06.404-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AWS"/><title type="text">PowerBI + PostGreSql + AWS-RDS</title><content type="html">&lt;p&gt;&amp;nbsp;I was getting an error when trying to connect using the PostGreSQL connector in PowerBi.&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;b&gt;The remote certificate is invalid according to the validation procedure&lt;/b&gt;&lt;/p&gt;&lt;p&gt;The basic solution is informed by this AWS post:&amp;nbsp;&lt;a href="https://aws.amazon.com/blogs/database/set-up-ssl-tls-client-connections-to-amazon-rds-for-sql-server-and-amazon-rds-for-oracle/"&gt;Set up SSL/TLS client connections to Amazon RDS for SQL Server and Amazon RDS for Oracle | AWS Database Blog&lt;/a&gt;, but I found it didnt work exactly the way in that post (PEM file didnt work).&lt;/p&gt;&lt;p&gt;Luckily for us, AWS now provides a&amp;nbsp;PKCS7 file. So, go to&amp;nbsp;&lt;a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html#UsingWithRDS.SSL.CertificatesDownload"&gt;Using SSL/TLS to encrypt a connection to a DB instance or cluster - Amazon Relational Database Service&lt;/a&gt;&amp;nbsp;and download the bundle appropriate for your AWS Region. (You can use the global bundle, but the problem with that is you will have to hit approve in the Import Wizard many times (approximately 3 for every zone)). So, using your region's cert bundle will lessen the number of clicks.&lt;/p&gt;&lt;p&gt;Once downloaded, you will have to open your Windows Certificate Manager (Windows &amp;gt;&amp;gt; Run &amp;gt;&amp;gt; CertMgr.msc).&lt;/p&gt;&lt;p&gt;In the CertMgr, click on "Trusted Root Certification Authorities" &amp;gt;&amp;gt; Certificates and then Import.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/a/AVvXsEh1xLo2XZjcmkNFwW8Aqfcz4OZ4INftteYy_qOLqRAzmi8cd3RQNFITh_91usE7j3iPfJCQOveOzQknK4orVbMyTtbz_U-sZIXAcSqwBtwirmazdKPCAOoPVMLl8WJV5sBjb94E7Jqcj33lgcySFMElRCNc97Og048ponYgd9SaEQMLoB9QCLZC9g" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img alt="" data-original-height="107" data-original-width="426" height="100" src="https://blogger.googleusercontent.com/img/a/AVvXsEh1xLo2XZjcmkNFwW8Aqfcz4OZ4INftteYy_qOLqRAzmi8cd3RQNFITh_91usE7j3iPfJCQOveOzQknK4orVbMyTtbz_U-sZIXAcSqwBtwirmazdKPCAOoPVMLl8WJV5sBjb94E7Jqcj33lgcySFMElRCNc97Og048ponYgd9SaEQMLoB9QCLZC9g=w400-h100" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;In the Import Wizard, you will have to find the P7B file you downloaded from AWS and import it. Approve the next few steps. You should now be able to connect to PostgreSql running AWS-RDS.&lt;/p&gt;&lt;p&gt;These steps should also work for connecting SQL Server to PostgreSql in AWS.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</content><link href="http://blog.aggregatedintelligence.com/feeds/6492610887816323262/comments/default" rel="replies" title="Post Comments" type="application/atom+xml"/><link href="http://www.blogger.com/comment/fullpage/post/7656888/6492610887816323262?isPopup=true" rel="replies" title="0 Comments" type="text/html"/><link href="http://www.blogger.com/feeds/7656888/posts/default/6492610887816323262" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/7656888/posts/default/6492610887816323262" rel="self" type="application/atom+xml"/><link href="http://blog.aggregatedintelligence.com/2025/04/powerbi-postgresql-aws-rds.html" rel="alternate" title="PowerBI + PostGreSql + AWS-RDS" type="text/html"/><author><name>Raj Rao</name><uri>http://www.blogger.com/profile/02773005045522319448</uri><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/a/AVvXsEh1xLo2XZjcmkNFwW8Aqfcz4OZ4INftteYy_qOLqRAzmi8cd3RQNFITh_91usE7j3iPfJCQOveOzQknK4orVbMyTtbz_U-sZIXAcSqwBtwirmazdKPCAOoPVMLl8WJV5sBjb94E7Jqcj33lgcySFMElRCNc97Og048ponYgd9SaEQMLoB9QCLZC9g=s72-w400-h100-c" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7656888.post-8114943572164886263</id><published>2024-12-11T15:37:00.003-07:00</published><updated>2024-12-11T15:37:26.988-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Tips N Tricks"/><title type="text">Microsoft Forms: Difference between a Form and a Quiz</title><content type="html">&lt;p&gt;&amp;nbsp;In Microsoft Forms you can create a "Form" or a "Quiz". But what is the difference between the two?&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;In a quiz, you can specify the correct answer and the points for the answer, if correct.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/a/AVvXsEgZ9JNxliJ-YAbjzTMybvCI-Xsq7SviG1cbPnuu9mMtYrJ8j_AbnxVA8ndcIgpsn4f8dkK2IurALZLc3lTHtZAKratxMVcZKRK5Nysk_7R_UzKxHXziKTx-z7dw54aJaJloXbpu5nh3L6oWppgzpruhpSEYSMpTgk-gZY1wPXkNy_H7zJeqmI7tng" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img alt="" data-original-height="393" data-original-width="924" height="136" src="https://blogger.googleusercontent.com/img/a/AVvXsEgZ9JNxliJ-YAbjzTMybvCI-Xsq7SviG1cbPnuu9mMtYrJ8j_AbnxVA8ndcIgpsn4f8dkK2IurALZLc3lTHtZAKratxMVcZKRK5Nysk_7R_UzKxHXziKTx-z7dw54aJaJloXbpu5nh3L6oWppgzpruhpSEYSMpTgk-gZY1wPXkNy_H7zJeqmI7tng" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Where for a Form, you cannot provide the correct answer, nor can you assign the question a score.&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/a/AVvXsEglK0qyrv1f7uR7sda6ty3VPGmKHFan9iX61lvlVNHXLA-J6SG1-RDgNyuWB-TWLyLX7dC8In512zV3FmrA4cwO94hRXm0loQ7fTTWOvr8k1bquYkXW3J_b2BP8OROxL_t6zaKAE4JlSU1ylEYlRdorMPXYYcd7DPZck75e3vlaEhRs1vh9jU94ZA" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img alt="" data-original-height="331" data-original-width="490" height="216" src="https://blogger.googleusercontent.com/img/a/AVvXsEglK0qyrv1f7uR7sda6ty3VPGmKHFan9iX61lvlVNHXLA-J6SG1-RDgNyuWB-TWLyLX7dC8In512zV3FmrA4cwO94hRXm0loQ7fTTWOvr8k1bquYkXW3J_b2BP8OROxL_t6zaKAE4JlSU1ylEYlRdorMPXYYcd7DPZck75e3vlaEhRs1vh9jU94ZA" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;Also, with a quiz, you can do some cool things like enter equations for Math questions:&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/a/AVvXsEhedULO5eO4EMQAScrvvmf9NGAvVefM0IBYf2nvcItcehJupA7mfQNV1UmH94rcejVpP1GkeyzxlsP-rjsTAu-9FoBXzdpGKhvg-XgiW-ei5RxInHQOyaq8NVlw60QeCn_Qlhy-AV2KEd3ez5iCamaz7ndD2dYw0qbwrxYJXDYL5VENbs_ggc5r8Q" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img alt="" data-original-height="396" data-original-width="879" height="144" src="https://blogger.googleusercontent.com/img/a/AVvXsEhedULO5eO4EMQAScrvvmf9NGAvVefM0IBYf2nvcItcehJupA7mfQNV1UmH94rcejVpP1GkeyzxlsP-rjsTAu-9FoBXzdpGKhvg-XgiW-ei5RxInHQOyaq8NVlw60QeCn_Qlhy-AV2KEd3ez5iCamaz7ndD2dYw0qbwrxYJXDYL5VENbs_ggc5r8Q" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;A quiz also has some additional settings that allow you to show answers, etc:&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/a/AVvXsEi1NvHrAKIEL79tkbtazPOJUEA5enlQ3VQaLUJgXxT0ZBv6O6lvKmEKQvIRPMW35Havq293firXpHNtJaSmEu7Gk3aMnh9LMPYBUfmua9yE4vsmcMIvFiR-flrjfvUEM62m1fyXDvcReZYko0jnVRhO7hZehflykTHIQBNWA-ZtQlkBTVDuugbqpA" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img alt="" data-original-height="262" data-original-width="328" height="240" src="https://blogger.googleusercontent.com/img/a/AVvXsEi1NvHrAKIEL79tkbtazPOJUEA5enlQ3VQaLUJgXxT0ZBv6O6lvKmEKQvIRPMW35Havq293firXpHNtJaSmEu7Gk3aMnh9LMPYBUfmua9yE4vsmcMIvFiR-flrjfvUEM62m1fyXDvcReZYko0jnVRhO7hZehflykTHIQBNWA-ZtQlkBTVDuugbqpA" width="300" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;</content><link href="http://blog.aggregatedintelligence.com/feeds/8114943572164886263/comments/default" rel="replies" title="Post Comments" type="application/atom+xml"/><link href="http://www.blogger.com/comment/fullpage/post/7656888/8114943572164886263?isPopup=true" rel="replies" title="0 Comments" type="text/html"/><link href="http://www.blogger.com/feeds/7656888/posts/default/8114943572164886263" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/7656888/posts/default/8114943572164886263" rel="self" type="application/atom+xml"/><link href="http://blog.aggregatedintelligence.com/2024/12/microsoft-forms-difference-between-form.html" rel="alternate" title="Microsoft Forms: Difference between a Form and a Quiz" type="text/html"/><author><name>Raj Rao</name><uri>http://www.blogger.com/profile/02773005045522319448</uri><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/a/AVvXsEgZ9JNxliJ-YAbjzTMybvCI-Xsq7SviG1cbPnuu9mMtYrJ8j_AbnxVA8ndcIgpsn4f8dkK2IurALZLc3lTHtZAKratxMVcZKRK5Nysk_7R_UzKxHXziKTx-z7dw54aJaJloXbpu5nh3L6oWppgzpruhpSEYSMpTgk-gZY1wPXkNy_H7zJeqmI7tng=s72-c" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7656888.post-326937997740727269</id><published>2024-08-17T13:41:00.002-06:00</published><updated>2024-08-17T13:42:03.942-06:00</updated><title type="text">Select Blinds Ac 114 remote pairing/copy code to new remote</title><content type="html">&lt;p&gt;Select Blinds Ac 114 remote pairing/copy code to new remote&lt;/p&gt;&lt;p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"&gt;&lt;span style="font-family: &amp;quot;Google Sans&amp;quot;; font-size: 16pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"&gt;&lt;span style="font-family: &amp;quot;Google Sans&amp;quot;; font-size: 16pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"&gt;Works for AC114-06B and 02B remotes.&lt;/span&gt;&lt;/p&gt;&lt;p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"&gt;&lt;span style="font-family: &amp;quot;Google Sans&amp;quot;; font-size: 16pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"&gt;&lt;span style="font-family: &amp;quot;Google Sans&amp;quot;; font-size: 16pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"&gt;Paired remote: the one that currently is programmed and working&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"&gt;&lt;span style="font-family: &amp;quot;Google Sans&amp;quot;; font-size: 16pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"&gt;New remote: the one you wish to program&lt;/span&gt;&lt;/p&gt;&lt;p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"&gt;&lt;span style="font-family: &amp;quot;Google Sans&amp;quot;; font-size: 16pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: left;"&gt;&lt;span style="font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline;"&gt;Steps:&lt;/span&gt;&lt;/p&gt;&lt;p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"&gt;&lt;span style="font-family: &amp;quot;Google Sans&amp;quot;; font-size: 16pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"&gt;1. Select the channel on the paired remote that you wish to copy to new remote&lt;/span&gt;&lt;/p&gt;&lt;p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"&gt;&lt;span style="font-family: &amp;quot;Google Sans&amp;quot;; font-size: 16pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"&gt;2. Select the channel on the new remote&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"&gt;&lt;span style="font-family: &amp;quot;Google Sans&amp;quot;; font-size: 16pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"&gt;3. Press stop button once on paired remote and then press and hold until the blinds jog up and down once&lt;/span&gt;&lt;/p&gt;&lt;p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"&gt;&lt;span style="font-family: &amp;quot;Google Sans&amp;quot;; font-size: 16pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"&gt;4. Quickly on the new remote press up button. Blinds should jog to let you know the code got copied.&lt;/span&gt;&lt;/p&gt;&lt;p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"&gt;&lt;span style="font-family: &amp;quot;Google Sans&amp;quot;; font-size: 16pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"&gt;&lt;span style="font-family: &amp;quot;Google Sans&amp;quot;; font-size: 16pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"&gt;Manual: &lt;a href="https://drive.google.com/file/d/1mcOqt3M_EZQjjxoddzVfIvbzJvrlqGQ3/view?usp=drivesdk"&gt;https://drive.google.com/file/d/1mcOqt3M_EZQjjxoddzVfIvbzJvrlqGQ3/view?usp=drivesdk&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"&gt;&lt;span style="font-family: &amp;quot;Google Sans&amp;quot;; font-size: 16pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"&gt;&lt;span style="font-family: &amp;quot;Google Sans&amp;quot;; font-size: 16pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</content><link href="http://blog.aggregatedintelligence.com/feeds/326937997740727269/comments/default" rel="replies" title="Post Comments" type="application/atom+xml"/><link href="http://www.blogger.com/comment/fullpage/post/7656888/326937997740727269?isPopup=true" rel="replies" title="0 Comments" type="text/html"/><link href="http://www.blogger.com/feeds/7656888/posts/default/326937997740727269" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/7656888/posts/default/326937997740727269" rel="self" type="application/atom+xml"/><link href="http://blog.aggregatedintelligence.com/2024/08/select-blinds-ac-114-remote-pairingcopy.html" rel="alternate" title="Select Blinds Ac 114 remote pairing/copy code to new remote" type="text/html"/><author><name>Raj Rao</name><uri>http://www.blogger.com/profile/02773005045522319448</uri><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7656888.post-7257965836608022899</id><published>2024-04-15T07:56:00.001-06:00</published><updated>2024-04-15T07:56:25.158-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Tips N Tricks"/><title type="text">Windows 11 - Enabling Hibernate</title><content type="html">&lt;p&gt;&amp;nbsp;If Hibernate is not available as an option, the following 2 commands run from PowerShell should enable it:&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;1.&amp;nbsp;&lt;span style="background-color: white; color: #111111; font-family: -apple-system, Roboto, SegoeUI, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Meiryo UI&amp;quot;, Meiryo, &amp;quot;Arial Unicode MS&amp;quot;, sans-serif; font-size: 16px;"&gt;powercfg /hibernate on&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="background-color: white; color: #111111; font-family: -apple-system, Roboto, SegoeUI, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Meiryo UI&amp;quot;, Meiryo, &amp;quot;Arial Unicode MS&amp;quot;, sans-serif; font-size: 16px;"&gt;2.&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: white; color: #111111; font-family: -apple-system, Roboto, SegoeUI, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, &amp;quot;Microsoft YaHei&amp;quot;, &amp;quot;Meiryo UI&amp;quot;, Meiryo, &amp;quot;Arial Unicode MS&amp;quot;, sans-serif; font-size: 16px;"&gt;powercfg /h /type full&lt;/span&gt;&lt;/p&gt;&lt;p&gt;The above commands need to be run from a Administrator Powershell window.&lt;/p&gt;&lt;p&gt;In Windows 11, you can then go to: Start &amp;gt;&amp;gt; Type: Control Panel &amp;gt;&amp;gt; Control Panel &amp;gt;&amp;gt; Power Options &amp;gt;&amp;gt; Choose what the power buttons do.&lt;/p&gt;</content><link href="http://blog.aggregatedintelligence.com/feeds/7257965836608022899/comments/default" rel="replies" title="Post Comments" type="application/atom+xml"/><link href="http://www.blogger.com/comment/fullpage/post/7656888/7257965836608022899?isPopup=true" rel="replies" title="0 Comments" type="text/html"/><link href="http://www.blogger.com/feeds/7656888/posts/default/7257965836608022899" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/7656888/posts/default/7257965836608022899" rel="self" type="application/atom+xml"/><link href="http://blog.aggregatedintelligence.com/2024/04/windows-11-enabling-hibernate.html" rel="alternate" title="Windows 11 - Enabling Hibernate" type="text/html"/><author><name>Raj Rao</name><uri>http://www.blogger.com/profile/02773005045522319448</uri><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7656888.post-1576498160311523068</id><published>2024-01-18T18:00:00.002-07:00</published><updated>2024-01-18T18:00:36.798-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Airflow"/><category scheme="http://www.blogger.com/atom/ns#" term="AWS"/><title type="text">AWS - MWAA - Customize UI Title</title><content type="html">&lt;p&gt;If you would like to customize the Airflow UI title to include some additional information, you can do so in MWAA by setting webserver.instance_name&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/a/AVvXsEiH0jloKDbwhhZE45L2UAXMaYbKxcABpulS8TK5tePKM2t8ZDrNJk97e-jOk-_W5dHeFV5Cn02cWvepHb_MZ8TdWXiszUhM_7ZCi1W4PhEsjaiYEVWCz-NqHRNmhRNHDs3ukwHtta4RC6l_s3ZsNai_ASPicuiSJx0FuK_wPeP1a8qo63YIcjjKxw" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img alt="" data-original-height="337" data-original-width="680" height="159" src="https://blogger.googleusercontent.com/img/a/AVvXsEiH0jloKDbwhhZE45L2UAXMaYbKxcABpulS8TK5tePKM2t8ZDrNJk97e-jOk-_W5dHeFV5Cn02cWvepHb_MZ8TdWXiszUhM_7ZCi1W4PhEsjaiYEVWCz-NqHRNmhRNHDs3ukwHtta4RC6l_s3ZsNai_ASPicuiSJx0FuK_wPeP1a8qo63YIcjjKxw" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;This will update the Title bar to show the value you set as shown below:&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/a/AVvXsEhQUdJ1bzHUKz9-Xm8ujRypf-HJ0hvGt8fID0CDjt8L1P-02DnHo0RweV_GlU7C67k_mfQ3VaT90Cxxi-uGZ04wqXkeSwdEav5Y3pYkfRflSFdaA_ZBHVYWq7T8Xy3w7t51XbUUNo_MBjwzGwXNYlABcqr10Xt9fydJjqHQtTqIp838RToHk9yRNA" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img alt="" data-original-height="31" data-original-width="146" height="44" src="https://blogger.googleusercontent.com/img/a/AVvXsEhQUdJ1bzHUKz9-Xm8ujRypf-HJ0hvGt8fID0CDjt8L1P-02DnHo0RweV_GlU7C67k_mfQ3VaT90Cxxi-uGZ04wqXkeSwdEav5Y3pYkfRflSFdaA_ZBHVYWq7T8Xy3w7t51XbUUNo_MBjwzGwXNYlABcqr10Xt9fydJjqHQtTqIp838RToHk9yRNA=w207-h44" width="207" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;For more info see:&amp;nbsp;&lt;a href="https://airflow.apache.org/docs/apache-airflow/2.6.3/howto/customize-ui.html#customizing-dag-ui-header-and-airflow-page-titles"&gt;Customizing the UI — Airflow Documentation (apache.org)&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;</content><link href="http://blog.aggregatedintelligence.com/feeds/1576498160311523068/comments/default" rel="replies" title="Post Comments" type="application/atom+xml"/><link href="http://www.blogger.com/comment/fullpage/post/7656888/1576498160311523068?isPopup=true" rel="replies" title="0 Comments" type="text/html"/><link href="http://www.blogger.com/feeds/7656888/posts/default/1576498160311523068" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/7656888/posts/default/1576498160311523068" rel="self" type="application/atom+xml"/><link href="http://blog.aggregatedintelligence.com/2024/01/aws-mwaa-customize-ui-title.html" rel="alternate" title="AWS - MWAA - Customize UI Title" type="text/html"/><author><name>Raj Rao</name><uri>http://www.blogger.com/profile/02773005045522319448</uri><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/a/AVvXsEiH0jloKDbwhhZE45L2UAXMaYbKxcABpulS8TK5tePKM2t8ZDrNJk97e-jOk-_W5dHeFV5Cn02cWvepHb_MZ8TdWXiszUhM_7ZCi1W4PhEsjaiYEVWCz-NqHRNmhRNHDs3ukwHtta4RC6l_s3ZsNai_ASPicuiSJx0FuK_wPeP1a8qo63YIcjjKxw=s72-c" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7656888.post-8147875039152934302</id><published>2023-10-23T14:55:00.007-06:00</published><updated>2023-10-24T09:58:36.569-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Athena"/><category scheme="http://www.blogger.com/atom/ns#" term="AWS"/><category scheme="http://www.blogger.com/atom/ns#" term="Iceberg"/><title type="text">AWS Athena - Using Merge + Iceberg tables to store only changed records</title><content type="html">&lt;p&gt;&lt;span style="background-color: white;"&gt;&lt;span face="-apple-system, BlinkMacSystemFont, Segoe UI, Noto Sans, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji" style="color: #1f2328;"&gt;This post is based on my github page:&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;a href="https://github.com/rajrao/mypublicnotes/blob/master/AWS/Athena/iceberg_tracking_changes.md"&gt;mypublicnotes/AWS/Athena/iceberg_tracking_changes.md at master · rajrao/mypublicnotes (github.com)&lt;/a&gt;&lt;/p&gt;&lt;p dir="auto" style="background-color: white; box-sizing: border-box; color: #1f2328; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; margin-bottom: 16px; margin-top: 0px !important;"&gt;&lt;span style="box-sizing: border-box; font-weight: var(--base-text-weight-semibold, 600);"&gt;Change data capture using Athena and iceberg&lt;/span&gt;&lt;/p&gt;&lt;p dir="auto" style="background-color: white; box-sizing: border-box; color: #1f2328; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; margin-bottom: 16px; margin-top: 0px;"&gt;Many times in a datalake, you have a source, where the source doesnt provide information about which records changed. Another use case is where you have an ETL, where you have multiple tables and columns taking part in it and its traditionally difficult to track which records changed in that ETL query. This page shows you one method for being able to track those changes and insert only those records that are new or had updates. (at the end, I also show how to track deletes). The method leverages AWS Iceberg tables in Athena (Athena Engine 3) and the upsert mechanism provided via the&amp;nbsp;&lt;span style="box-sizing: border-box; font-weight: var(--base-text-weight-semibold, 600);"&gt;merge-into&lt;/span&gt;&amp;nbsp;statement.&lt;/p&gt;&lt;p dir="auto" style="background-color: white; box-sizing: border-box; color: #1f2328; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; margin-bottom: 16px; margin-top: 0px;"&gt;TL;DR; Check out the&amp;nbsp;&lt;a href="https://github.com/rajrao/mypublicnotes/blob/master/AWS/Athena/iceberg_tracking_changes.md#Merge" style="background-color: transparent; box-sizing: border-box; text-underline-offset: 0.2rem;"&gt;merge&lt;/a&gt;&amp;nbsp;statement used to update only those records that had changes.&lt;/p&gt;&lt;p dir="auto" style="background-color: white; box-sizing: border-box; color: #1f2328; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; margin-bottom: 16px; margin-top: 0px;"&gt;&lt;span style="box-sizing: border-box; font-weight: var(--base-text-weight-semibold, 600);"&gt;Setup: A CTE for source data&lt;/span&gt;&lt;/p&gt;&lt;p dir="auto" style="background-color: white; box-sizing: border-box; color: #1f2328; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; margin-bottom: 16px; margin-top: 0px;"&gt;I am using a CTE to simulate source data, in practice, you would typically use another Athena table as your source, or a query that brings data together from multiple tables (aka ETL), etc. A key part to this method is using a hashing function that can be used to determine when a record has changes. I use&amp;nbsp;&lt;a href="https://trino.io/docs/current/functions/binary.html#hashing-functions:~:text=of%20binary.-,xxhash64,-(binary)" rel="nofollow" style="background-color: transparent; box-sizing: border-box; text-underline-offset: 0.2rem;"&gt;xxhas64&lt;/a&gt;&lt;/p&gt;&lt;div class="highlight highlight-source-sql notranslate position-relative overflow-auto" dir="auto" style="box-sizing: border-box; color: #1f2328; display: flex; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; justify-content: space-between; margin-bottom: 16px; overflow: auto !important; position: relative !important;"&gt;&lt;pre style="border-radius: 6px; box-sizing: border-box; color: var(--fgColor-default, var(--color-fg-default)); font-family: ui-monospace, SFMono-Regular, &amp;quot;SF Mono&amp;quot;, Menlo, Consolas, &amp;quot;Liberation Mono&amp;quot;, monospace; font-size: 13.6px; line-height: 1.45; margin-bottom: 0px; margin-top: 0px; overflow-wrap: normal; overflow: auto; padding: 16px; word-break: normal;"&gt;with cte(id, value1, value2) &lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;as&lt;/span&gt;
    (
    &lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;select&lt;/span&gt; &lt;span class="pl-c1" style="box-sizing: border-box; color: var(--color-prettylights-syntax-constant);"&gt;1&lt;/span&gt;,&lt;span class="pl-s" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;&lt;span class="pl-pds" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;'&lt;/span&gt;a1&lt;span class="pl-pds" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;'&lt;/span&gt;&lt;/span&gt;,&lt;span class="pl-s" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;&lt;span class="pl-pds" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;'&lt;/span&gt;b&lt;span class="pl-pds" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;'&lt;/span&gt;&lt;/span&gt; &lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;union all&lt;/span&gt;
    &lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;select&lt;/span&gt; &lt;span class="pl-c1" style="box-sizing: border-box; color: var(--color-prettylights-syntax-constant);"&gt;4&lt;/span&gt;,&lt;span class="pl-s" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;&lt;span class="pl-pds" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;'&lt;/span&gt;raj&lt;span class="pl-pds" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;'&lt;/span&gt;&lt;/span&gt;,&lt;span class="pl-s" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;&lt;span class="pl-pds" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;'&lt;/span&gt;rao&lt;span class="pl-pds" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;'&lt;/span&gt;&lt;/span&gt; &lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;union all&lt;/span&gt;
    &lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;select&lt;/span&gt; &lt;span class="pl-c1" style="box-sizing: border-box; color: var(--color-prettylights-syntax-constant);"&gt;2&lt;/span&gt;,&lt;span class="pl-s" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;&lt;span class="pl-pds" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;'&lt;/span&gt;c2&lt;span class="pl-pds" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;'&lt;/span&gt;&lt;/span&gt;,&lt;span class="pl-s" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;&lt;span class="pl-pds" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;'&lt;/span&gt;d2&lt;span class="pl-pds" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;'&lt;/span&gt;&lt;/span&gt; 
    )
    &lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;select&lt;/span&gt; &lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;*&lt;/span&gt;, xxhash64(from_base64(value1 &lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;||&lt;/span&gt; value2)) &lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;as&lt;/span&gt; hash &lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;from&lt;/span&gt; cte&lt;/pre&gt;&lt;div class="zeroclipboard-container" style="animation: auto ease 0s 1 normal none running none; box-sizing: border-box;"&gt;&lt;clipboard-copy aria-label="Copy" class="ClipboardButton btn btn-invisible js-clipboard-copy m-2 p-0 tooltipped-no-delay d-flex flex-justify-center flex-items-center" data-copy-feedback="Copied!" data-tooltip-direction="w" role="button" style="align-items: center !important; appearance: none; border-radius: 6px; border: 0px; box-shadow: none; box-sizing: border-box; color: var(--fgColor-accent, var(--color-accent-fg)); cursor: pointer; display: flex !important; font-size: 14px; font-weight: var(--base-text-weight-medium, 500); height: var(--control-small-size, 28px); justify-content: center !important; line-height: 20px; margin: var(--base-size-8, 8px) !important; padding: 0px !important; position: relative; text-wrap: nowrap; transition: color 80ms cubic-bezier(0.33, 1, 0.68, 1) 0s, background-color 0s ease 0s, box-shadow 0s ease 0s, border-color 0s ease 0s; user-select: none; vertical-align: middle; width: var(--control-small-size, 28px);" tabindex="0" value="with cte(id, value1, value2) as
    (
    select 1,'a1','b' union all
    select 4,'raj','rao' union all
    select 2,'c2','d2' 
    )
    select *, xxhash64(from_base64(value1 || value2)) as hash from cte"&gt;&lt;svg aria-hidden="true" class="octicon octicon-copy js-clipboard-copy-icon" data-view-component="true" height="16" version="1.1" viewbox="0 0 16 16" width="16"&gt;&lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"&gt;&lt;/path&gt;&lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/clipboard-copy&gt;&lt;/div&gt;&lt;/div&gt;&lt;p dir="auto" style="background-color: white; box-sizing: border-box; color: #1f2328; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; margin-bottom: 16px; margin-top: 0px;"&gt;Note 1: You can use murmur3 instead of xxhash64 using the following code: murmur3(to_utf8(value1 || value2)).&lt;/p&gt;&lt;p dir="auto" style="background-color: white; box-sizing: border-box; color: #1f2328; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; margin-bottom: 16px; margin-top: 0px;"&gt;Note 2: Here are the other hashing functions available:&amp;nbsp;&lt;a href="https://trino.io/docs/current/functions/binary.html" rel="nofollow" style="background-color: transparent; box-sizing: border-box; text-underline-offset: 0.2rem;"&gt;https://trino.io/docs/current/functions/binary.html&lt;/a&gt;&lt;/p&gt;&lt;p dir="auto" style="background-color: white; box-sizing: border-box; color: #1f2328; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; margin-bottom: 16px; margin-top: 0px;"&gt;&lt;span style="box-sizing: border-box; font-weight: var(--base-text-weight-semibold, 600);"&gt;Setup: Create an iceberg table&lt;/span&gt;&lt;/p&gt;&lt;p dir="auto" style="background-color: white; box-sizing: border-box; color: #1f2328; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; margin-bottom: 16px; margin-top: 0px;"&gt;The iceberg table is your final table. This will track the data that had changes. Id is the primary key in this case, you can have more columns that are part of the primary key used for the update.&lt;/p&gt;&lt;div class="highlight highlight-source-sql notranslate position-relative overflow-auto" dir="auto" style="box-sizing: border-box; color: #1f2328; display: flex; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; justify-content: space-between; margin-bottom: 16px; overflow: auto !important; position: relative !important;"&gt;&lt;pre style="border-radius: 6px; box-sizing: border-box; color: var(--fgColor-default, var(--color-fg-default)); font-family: ui-monospace, SFMono-Regular, &amp;quot;SF Mono&amp;quot;, Menlo, Consolas, &amp;quot;Liberation Mono&amp;quot;, monospace; font-size: 13.6px; line-height: 1.45; margin-bottom: 0px; margin-top: 0px; overflow-wrap: normal; overflow: auto; padding: 16px; word-break: normal;"&gt;CREATE TABLE
  &lt;span class="pl-c1" style="box-sizing: border-box; color: var(--color-prettylights-syntax-constant);"&gt;test_db&lt;/span&gt;.&lt;span class="pl-c1" style="box-sizing: border-box; color: var(--color-prettylights-syntax-constant);"&gt;hash_test&lt;/span&gt; (
  id &lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;int&lt;/span&gt;,
  value1 string,
  value2 string,
  hash string,
  last_updated_on &lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;timestamp&lt;/span&gt;)
  LOCATION &lt;span class="pl-s" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;&lt;span class="pl-pds" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;'&lt;/span&gt;s3://my_test_bucket/hash_test&lt;span class="pl-pds" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;'&lt;/span&gt;&lt;/span&gt;
  TBLPROPERTIES ( &lt;span class="pl-s" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;&lt;span class="pl-pds" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;'&lt;/span&gt;table_type&lt;span class="pl-pds" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;'&lt;/span&gt;&lt;/span&gt; &lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;=&lt;/span&gt;&lt;span class="pl-s" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;&lt;span class="pl-pds" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;'&lt;/span&gt;ICEBERG&lt;span class="pl-pds" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;'&lt;/span&gt;&lt;/span&gt;)&lt;/pre&gt;&lt;div class="zeroclipboard-container" style="animation: auto ease 0s 1 normal none running none; box-sizing: border-box;"&gt;&lt;clipboard-copy aria-label="Copy" class="ClipboardButton btn btn-invisible js-clipboard-copy m-2 p-0 tooltipped-no-delay d-flex flex-justify-center flex-items-center" data-copy-feedback="Copied!" data-tooltip-direction="w" role="button" style="align-items: center !important; appearance: none; border-radius: 6px; border: 0px; box-shadow: none; box-sizing: border-box; color: var(--fgColor-accent, var(--color-accent-fg)); cursor: pointer; display: flex !important; font-size: 14px; font-weight: var(--base-text-weight-medium, 500); height: var(--control-small-size, 28px); justify-content: center !important; line-height: 20px; margin: var(--base-size-8, 8px) !important; padding: 0px !important; position: relative; text-wrap: nowrap; transition: color 80ms cubic-bezier(0.33, 1, 0.68, 1) 0s, background-color 0s ease 0s, box-shadow 0s ease 0s, border-color 0s ease 0s; user-select: none; vertical-align: middle; width: var(--control-small-size, 28px);" tabindex="0" value="CREATE TABLE
  test_db.hash_test (
  id int,
  value1 string,
  value2 string,
  hash string,
  last_updated_on timestamp)
  LOCATION 's3://my_test_bucket/hash_test'
  TBLPROPERTIES ( 'table_type' ='ICEBERG')"&gt;&lt;svg aria-hidden="true" class="octicon octicon-copy js-clipboard-copy-icon" data-view-component="true" height="16" version="1.1" viewbox="0 0 16 16" width="16"&gt;&lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"&gt;&lt;/path&gt;&lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/clipboard-copy&gt;&lt;/div&gt;&lt;/div&gt;&lt;p dir="auto" style="background-color: white; box-sizing: border-box; color: #1f2328; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; margin-bottom: 16px; margin-top: 0px;"&gt;&lt;span style="box-sizing: border-box; font-weight: var(--base-text-weight-semibold, 600);"&gt;The ##Merge## statement&lt;/span&gt;&lt;/p&gt;&lt;p dir="auto" style="background-color: white; box-sizing: border-box; color: #1f2328; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; margin-bottom: 16px; margin-top: 0px;"&gt;Here is a merge statement that inserts new records and updates only when there are changes. The merge statement uses the CTE described above as its source data. You can manipulate the CTE to test various scenarios. The hash column is used to determine when to insert/update data.&lt;/p&gt;&lt;div class="highlight highlight-source-sql notranslate position-relative overflow-auto" dir="auto" style="box-sizing: border-box; color: #1f2328; display: flex; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; justify-content: space-between; margin-bottom: 16px; overflow: auto !important; position: relative !important;"&gt;&lt;pre style="border-radius: 6px; box-sizing: border-box; color: var(--fgColor-default, var(--color-fg-default)); font-family: ui-monospace, SFMono-Regular, &amp;quot;SF Mono&amp;quot;, Menlo, Consolas, &amp;quot;Liberation Mono&amp;quot;, monospace; font-size: 13.6px; line-height: 1.45; margin-bottom: 0px; margin-top: 0px; overflow-wrap: normal; overflow: auto; padding: 16px; word-break: normal;"&gt;MERGE INTO hash_test &lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;as&lt;/span&gt; tgt
USING (
    with cte(id, value1, value2, value3) &lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;as&lt;/span&gt;
    (
    &lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;select&lt;/span&gt; &lt;span class="pl-c1" style="box-sizing: border-box; color: var(--color-prettylights-syntax-constant);"&gt;1&lt;/span&gt;,&lt;span class="pl-s" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;&lt;span class="pl-pds" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;'&lt;/span&gt;a1&lt;span class="pl-pds" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;'&lt;/span&gt;&lt;/span&gt;,&lt;span class="pl-s" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;&lt;span class="pl-pds" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;'&lt;/span&gt;b&lt;span class="pl-pds" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;'&lt;/span&gt;&lt;/span&gt;,&lt;span class="pl-c1" style="box-sizing: border-box; color: var(--color-prettylights-syntax-constant);"&gt;100&lt;/span&gt; &lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;union all&lt;/span&gt;
    &lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;select&lt;/span&gt; &lt;span class="pl-c1" style="box-sizing: border-box; color: var(--color-prettylights-syntax-constant);"&gt;4&lt;/span&gt;,&lt;span class="pl-s" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;&lt;span class="pl-pds" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;'&lt;/span&gt;rao&lt;span class="pl-pds" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;'&lt;/span&gt;&lt;/span&gt;,&lt;span class="pl-s" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;&lt;span class="pl-pds" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;'&lt;/span&gt;raj&lt;span class="pl-pds" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;'&lt;/span&gt;&lt;/span&gt;,&lt;span class="pl-c1" style="box-sizing: border-box; color: var(--color-prettylights-syntax-constant);"&gt;200&lt;/span&gt; &lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;union all&lt;/span&gt;
    &lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;select&lt;/span&gt; &lt;span class="pl-c1" style="box-sizing: border-box; color: var(--color-prettylights-syntax-constant);"&gt;2&lt;/span&gt;,&lt;span class="pl-s" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;&lt;span class="pl-pds" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;'&lt;/span&gt;c2&lt;span class="pl-pds" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;'&lt;/span&gt;&lt;/span&gt;,&lt;span class="pl-s" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;&lt;span class="pl-pds" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;'&lt;/span&gt;d2&lt;span class="pl-pds" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;'&lt;/span&gt;&lt;/span&gt;,&lt;span class="pl-c1" style="box-sizing: border-box; color: var(--color-prettylights-syntax-constant);"&gt;300&lt;/span&gt; 
    )
    &lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;select&lt;/span&gt; &lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;*&lt;/span&gt;, xxhash64(to_utf8(concat_ws(&lt;span class="pl-s" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;&lt;span class="pl-pds" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;'&lt;/span&gt;::&lt;span class="pl-pds" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;'&lt;/span&gt;&lt;/span&gt;,coalesce(value1,&lt;span class="pl-s" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;&lt;span class="pl-pds" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;'&lt;/span&gt;-&lt;span class="pl-pds" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;'&lt;/span&gt;&lt;/span&gt;),coalesce(value2,&lt;span class="pl-s" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;&lt;span class="pl-pds" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;'&lt;/span&gt;-&lt;span class="pl-pds" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;'&lt;/span&gt;&lt;/span&gt;),coalesce(cast(value3 &lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;as&lt;/span&gt; &lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;varchar&lt;/span&gt;))))) &lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;as&lt;/span&gt; hash &lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;from&lt;/span&gt; cte
) &lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;as&lt;/span&gt; src
&lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;ON&lt;/span&gt; &lt;span class="pl-c1" style="box-sizing: border-box; color: var(--color-prettylights-syntax-constant);"&gt;tgt&lt;/span&gt;.&lt;span class="pl-c1" style="box-sizing: border-box; color: var(--color-prettylights-syntax-constant);"&gt;id&lt;/span&gt; &lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;=&lt;/span&gt; &lt;span class="pl-c1" style="box-sizing: border-box; color: var(--color-prettylights-syntax-constant);"&gt;src&lt;/span&gt;.&lt;span class="pl-c1" style="box-sizing: border-box; color: var(--color-prettylights-syntax-constant);"&gt;id&lt;/span&gt;
WHEN MATCHED &lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;and&lt;/span&gt; &lt;span class="pl-c1" style="box-sizing: border-box; color: var(--color-prettylights-syntax-constant);"&gt;src&lt;/span&gt;.&lt;span class="pl-c1" style="box-sizing: border-box; color: var(--color-prettylights-syntax-constant);"&gt;hash&lt;/span&gt; &lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;&amp;lt;&amp;gt;&lt;/span&gt; &lt;span class="pl-c1" style="box-sizing: border-box; color: var(--color-prettylights-syntax-constant);"&gt;tgt&lt;/span&gt;.&lt;span class="pl-c1" style="box-sizing: border-box; color: var(--color-prettylights-syntax-constant);"&gt;hash&lt;/span&gt;
    THEN &lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;UPDATE&lt;/span&gt; &lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;SET&lt;/span&gt;  
    value1 &lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;=&lt;/span&gt; &lt;span class="pl-c1" style="box-sizing: border-box; color: var(--color-prettylights-syntax-constant);"&gt;src&lt;/span&gt;.&lt;span class="pl-c1" style="box-sizing: border-box; color: var(--color-prettylights-syntax-constant);"&gt;value1&lt;/span&gt;,
    value2 &lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;=&lt;/span&gt; &lt;span class="pl-c1" style="box-sizing: border-box; color: var(--color-prettylights-syntax-constant);"&gt;src&lt;/span&gt;.&lt;span class="pl-c1" style="box-sizing: border-box; color: var(--color-prettylights-syntax-constant);"&gt;value2&lt;/span&gt;,
    hash &lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;=&lt;/span&gt; &lt;span class="pl-c1" style="box-sizing: border-box; color: var(--color-prettylights-syntax-constant);"&gt;src&lt;/span&gt;.&lt;span class="pl-c1" style="box-sizing: border-box; color: var(--color-prettylights-syntax-constant);"&gt;hash&lt;/span&gt;,
    last_updated_on &lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;=&lt;/span&gt; &lt;span class="pl-c1" style="box-sizing: border-box; color: var(--color-prettylights-syntax-constant);"&gt;current_timestamp&lt;/span&gt;
WHEN NOT MATCHED 
THEN INSERT (id, value1, value2, hash, last_updated_on)
      &lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;VALUES&lt;/span&gt; (&lt;span class="pl-c1" style="box-sizing: border-box; color: var(--color-prettylights-syntax-constant);"&gt;src&lt;/span&gt;.&lt;span class="pl-c1" style="box-sizing: border-box; color: var(--color-prettylights-syntax-constant);"&gt;id&lt;/span&gt;, &lt;span class="pl-c1" style="box-sizing: border-box; color: var(--color-prettylights-syntax-constant);"&gt;src&lt;/span&gt;.&lt;span class="pl-c1" style="box-sizing: border-box; color: var(--color-prettylights-syntax-constant);"&gt;value1&lt;/span&gt;, &lt;span class="pl-c1" style="box-sizing: border-box; color: var(--color-prettylights-syntax-constant);"&gt;src&lt;/span&gt;.&lt;span class="pl-c1" style="box-sizing: border-box; color: var(--color-prettylights-syntax-constant);"&gt;value2&lt;/span&gt;, &lt;span class="pl-c1" style="box-sizing: border-box; color: var(--color-prettylights-syntax-constant);"&gt;src&lt;/span&gt;.&lt;span class="pl-c1" style="box-sizing: border-box; color: var(--color-prettylights-syntax-constant);"&gt;hash&lt;/span&gt;, &lt;span class="pl-c1" style="box-sizing: border-box; color: var(--color-prettylights-syntax-constant);"&gt;current_timestamp&lt;/span&gt;)	  &lt;/pre&gt;&lt;div class="zeroclipboard-container" style="animation: auto ease 0s 1 normal none running none; box-sizing: border-box;"&gt;&lt;clipboard-copy aria-label="Copy" class="ClipboardButton btn btn-invisible js-clipboard-copy m-2 p-0 tooltipped-no-delay d-flex flex-justify-center flex-items-center" data-copy-feedback="Copied!" data-tooltip-direction="w" role="button" style="align-items: center !important; appearance: none; border-radius: 6px; border: 0px; box-shadow: none; box-sizing: border-box; color: var(--fgColor-accent, var(--color-accent-fg)); cursor: pointer; display: flex !important; font-size: 14px; font-weight: var(--base-text-weight-medium, 500); height: var(--control-small-size, 28px); justify-content: center !important; line-height: 20px; margin: var(--base-size-8, 8px) !important; padding: 0px !important; position: relative; text-wrap: nowrap; transition: color 80ms cubic-bezier(0.33, 1, 0.68, 1) 0s, background-color 0s ease 0s, box-shadow 0s ease 0s, border-color 0s ease 0s; user-select: none; vertical-align: middle; width: var(--control-small-size, 28px);" tabindex="0" value="MERGE INTO hash_test as tgt
USING (
    with cte(id, value1, value2, value3) as
    (
    select 1,'a1','b',100 union all
    select 4,'rao','raj',200 union all
    select 2,'c2','d2',300 
    )
    select *, xxhash64(to_utf8(concat_ws('::',coalesce(value1,'-'),coalesce(value2,'-'),coalesce(cast(value3 as varchar))))) as hash from cte
) as src
ON tgt.id = src.id
WHEN MATCHED and src.hash &amp;lt;&amp;gt; tgt.hash
    THEN UPDATE SET  
    value1 = src.value1,
    value2 = src.value2,
    hash = src.hash,
    last_updated_on = current_timestamp
WHEN NOT MATCHED 
THEN INSERT (id, value1, value2, hash, last_updated_on)
      VALUES (src.id, src.value1, src.value2, src.hash, current_timestamp)	  "&gt;&lt;svg aria-hidden="true" class="octicon octicon-copy js-clipboard-copy-icon" data-view-component="true" height="16" version="1.1" viewbox="0 0 16 16" width="16"&gt;&lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"&gt;&lt;/path&gt;&lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/clipboard-copy&gt;&lt;/div&gt;&lt;/div&gt;&lt;p dir="auto" style="background-color: white; box-sizing: border-box; color: #1f2328; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; margin-bottom: 16px; margin-top: 0px;"&gt;If you need to deal with deletes, you can add as your first matched phrase one of the following options (delete, or archive):&lt;/p&gt;&lt;div class="highlight highlight-source-sql notranslate position-relative overflow-auto" dir="auto" style="box-sizing: border-box; color: #1f2328; display: flex; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; justify-content: space-between; margin-bottom: 16px; overflow: auto !important; position: relative !important;"&gt;&lt;pre style="border-radius: 6px; box-sizing: border-box; color: var(--fgColor-default, var(--color-fg-default)); font-family: ui-monospace, SFMono-Regular, &amp;quot;SF Mono&amp;quot;, Menlo, Consolas, &amp;quot;Liberation Mono&amp;quot;, monospace; font-size: 13.6px; line-height: 1.45; margin-bottom: 0px; margin-top: 0px; overflow-wrap: normal; overflow: auto; padding: 16px; word-break: normal;"&gt;WHEN MATCHED &lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;and&lt;/span&gt; &lt;span class="pl-c1" style="box-sizing: border-box; color: var(--color-prettylights-syntax-constant);"&gt;src&lt;/span&gt;.&lt;span class="pl-c1" style="box-sizing: border-box; color: var(--color-prettylights-syntax-constant);"&gt;IsDeleted&lt;/span&gt; &lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;=&lt;/span&gt; &lt;span class="pl-c1" style="box-sizing: border-box; color: var(--color-prettylights-syntax-constant);"&gt;1&lt;/span&gt;
  THEN &lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;DELETE&lt;/span&gt;&lt;/pre&gt;&lt;div class="zeroclipboard-container" style="animation: auto ease 0s 1 normal none running none; box-sizing: border-box;"&gt;&lt;clipboard-copy aria-label="Copy" class="ClipboardButton btn btn-invisible js-clipboard-copy m-2 p-0 tooltipped-no-delay d-flex flex-justify-center flex-items-center" data-copy-feedback="Copied!" data-tooltip-direction="w" role="button" style="align-items: center !important; appearance: none; border-radius: 6px; border: 0px; box-shadow: none; box-sizing: border-box; color: var(--fgColor-accent, var(--color-accent-fg)); cursor: pointer; display: flex !important; font-size: 14px; font-weight: var(--base-text-weight-medium, 500); height: var(--control-small-size, 28px); justify-content: center !important; line-height: 20px; margin: var(--base-size-8, 8px) !important; padding: 0px !important; position: relative; text-wrap: nowrap; transition: color 80ms cubic-bezier(0.33, 1, 0.68, 1) 0s, background-color 0s ease 0s, box-shadow 0s ease 0s, border-color 0s ease 0s; user-select: none; vertical-align: middle; width: var(--control-small-size, 28px);" tabindex="0" value="WHEN MATCHED and src.IsDeleted = 1
  THEN DELETE"&gt;&lt;svg aria-hidden="true" class="octicon octicon-copy js-clipboard-copy-icon" data-view-component="true" height="16" version="1.1" viewbox="0 0 16 16" width="16"&gt;&lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"&gt;&lt;/path&gt;&lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/clipboard-copy&gt;&lt;/div&gt;&lt;/div&gt;&lt;p dir="auto" style="background-color: white; box-sizing: border-box; color: #1f2328; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; margin-bottom: 16px; margin-top: 0px;"&gt;or&lt;/p&gt;&lt;div class="highlight highlight-source-sql notranslate position-relative overflow-auto" dir="auto" style="box-sizing: border-box; color: #1f2328; display: flex; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; justify-content: space-between; margin-bottom: 16px; overflow: auto !important; position: relative !important;"&gt;&lt;pre style="border-radius: 6px; box-sizing: border-box; color: var(--fgColor-default, var(--color-fg-default)); font-family: ui-monospace, SFMono-Regular, &amp;quot;SF Mono&amp;quot;, Menlo, Consolas, &amp;quot;Liberation Mono&amp;quot;, monospace; font-size: 13.6px; line-height: 1.45; margin-bottom: 0px; margin-top: 0px; overflow-wrap: normal; overflow: auto; padding: 16px; word-break: normal;"&gt;WHEN MATCHED &lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;and&lt;/span&gt; &lt;span class="pl-c1" style="box-sizing: border-box; color: var(--color-prettylights-syntax-constant);"&gt;src&lt;/span&gt;.&lt;span class="pl-c1" style="box-sizing: border-box; color: var(--color-prettylights-syntax-constant);"&gt;IsDeleted&lt;/span&gt; &lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;=&lt;/span&gt; &lt;span class="pl-c1" style="box-sizing: border-box; color: var(--color-prettylights-syntax-constant);"&gt;1&lt;/span&gt;
  THEN &lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;UPDATE&lt;/span&gt; &lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;SET&lt;/span&gt;  
    is_archived &lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;=&lt;/span&gt; &lt;span class="pl-c1" style="box-sizing: border-box; color: var(--color-prettylights-syntax-constant);"&gt;1&lt;/span&gt;,
    last_updated_on &lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;=&lt;/span&gt; &lt;span class="pl-c1" style="box-sizing: border-box; color: var(--color-prettylights-syntax-constant);"&gt;current_timestamp&lt;/span&gt;&lt;/pre&gt;&lt;div class="zeroclipboard-container" style="animation: auto ease 0s 1 normal none running none; box-sizing: border-box;"&gt;&lt;clipboard-copy aria-label="Copy" class="ClipboardButton btn btn-invisible js-clipboard-copy m-2 p-0 tooltipped-no-delay d-flex flex-justify-center flex-items-center" data-copy-feedback="Copied!" data-tooltip-direction="w" role="button" style="align-items: center !important; appearance: none; border-radius: 6px; border: 0px; box-shadow: none; box-sizing: border-box; color: var(--fgColor-accent, var(--color-accent-fg)); cursor: pointer; display: flex !important; font-size: 14px; font-weight: var(--base-text-weight-medium, 500); height: var(--control-small-size, 28px); justify-content: center !important; line-height: 20px; margin: var(--base-size-8, 8px) !important; padding: 0px !important; position: relative; text-wrap: nowrap; transition: color 80ms cubic-bezier(0.33, 1, 0.68, 1) 0s, background-color 0s ease 0s, box-shadow 0s ease 0s, border-color 0s ease 0s; user-select: none; vertical-align: middle; width: var(--control-small-size, 28px);" tabindex="0" value="WHEN MATCHED and src.IsDeleted = 1
  THEN UPDATE SET  
    is_archived = 1,
    last_updated_on = current_timestamp"&gt;&lt;svg aria-hidden="true" class="octicon octicon-copy js-clipboard-copy-icon" data-view-component="true" height="16" version="1.1" viewbox="0 0 16 16" width="16"&gt;&lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"&gt;&lt;/path&gt;&lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/clipboard-copy&gt;&lt;/div&gt;&lt;/div&gt;&lt;p dir="auto" style="background-color: white; box-sizing: border-box; color: #1f2328; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; margin-bottom: 16px; margin-top: 0px;"&gt;&lt;span style="box-sizing: border-box; font-weight: var(--base-text-weight-semibold, 600);"&gt;Finally some examples of queries to view the data&lt;/span&gt;&lt;/p&gt;&lt;div class="highlight highlight-source-sql notranslate position-relative overflow-auto" dir="auto" style="box-sizing: border-box; color: #1f2328; display: flex; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; justify-content: space-between; margin-bottom: 16px; overflow: auto !important; position: relative !important;"&gt;&lt;pre style="border-radius: 6px; box-sizing: border-box; color: var(--fgColor-default, var(--color-fg-default)); font-family: ui-monospace, SFMono-Regular, &amp;quot;SF Mono&amp;quot;, Menlo, Consolas, &amp;quot;Liberation Mono&amp;quot;, monospace; font-size: 13.6px; line-height: 1.45; margin-bottom: 0px; margin-top: 0px; overflow-wrap: normal; overflow: auto; padding: 16px; word-break: normal;"&gt;&lt;span class="pl-c" style="box-sizing: border-box; color: var(--color-prettylights-syntax-comment);"&gt;&lt;span class="pl-c" style="box-sizing: border-box; color: var(--color-prettylights-syntax-comment);"&gt;--&lt;/span&gt; see the history of changes&lt;/span&gt;
&lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;select&lt;/span&gt; &lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;*&lt;/span&gt; &lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;from&lt;/span&gt; test_db.&lt;span class="pl-s" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;&lt;span class="pl-pds" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;"&lt;/span&gt;hash_test$history&lt;span class="pl-pds" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;"&lt;/span&gt;&lt;/span&gt; &lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;order by&lt;/span&gt; made_current_at &lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;desc&lt;/span&gt;

&lt;span class="pl-c" style="box-sizing: border-box; color: var(--color-prettylights-syntax-comment);"&gt;&lt;span class="pl-c" style="box-sizing: border-box; color: var(--color-prettylights-syntax-comment);"&gt;--&lt;/span&gt; use a snasphot_id from above as your value for xxxxx&lt;/span&gt;
&lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;select&lt;/span&gt; &lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;*&lt;/span&gt; &lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;from&lt;/span&gt; &lt;span class="pl-c1" style="box-sizing: border-box; color: var(--color-prettylights-syntax-constant);"&gt;test_db&lt;/span&gt;.&lt;span class="pl-c1" style="box-sizing: border-box; color: var(--color-prettylights-syntax-constant);"&gt;hash_test&lt;/span&gt; for version &lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;as&lt;/span&gt; of xxxxx

&lt;span class="pl-c" style="box-sizing: border-box; color: var(--color-prettylights-syntax-comment);"&gt;&lt;span class="pl-c" style="box-sizing: border-box; color: var(--color-prettylights-syntax-comment);"&gt;--&lt;/span&gt; get only the latest records from the table&lt;/span&gt;
&lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;select&lt;/span&gt; &lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;*&lt;/span&gt; &lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;from&lt;/span&gt; &lt;span class="pl-c1" style="box-sizing: border-box; color: var(--color-prettylights-syntax-constant);"&gt;test_db&lt;/span&gt;.&lt;span class="pl-c1" style="box-sizing: border-box; color: var(--color-prettylights-syntax-constant);"&gt;hash_test&lt;/span&gt;
&lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;where&lt;/span&gt; last_updated_on &lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;in&lt;/span&gt; (&lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;select&lt;/span&gt; &lt;span class="pl-c1" style="box-sizing: border-box; color: var(--color-prettylights-syntax-constant);"&gt;max&lt;/span&gt;(last_updated_on) &lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;from&lt;/span&gt; &lt;span class="pl-c1" style="box-sizing: border-box; color: var(--color-prettylights-syntax-constant);"&gt;test_db&lt;/span&gt;.&lt;span class="pl-c1" style="box-sizing: border-box; color: var(--color-prettylights-syntax-constant);"&gt;hash_test&lt;/span&gt;)
&lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;order by&lt;/span&gt; last_updated_on&lt;/pre&gt;&lt;div class="zeroclipboard-container" style="animation: auto ease 0s 1 normal none running none; box-sizing: border-box;"&gt;&lt;clipboard-copy aria-label="Copy" class="ClipboardButton btn btn-invisible js-clipboard-copy m-2 p-0 tooltipped-no-delay d-flex flex-justify-center flex-items-center" data-copy-feedback="Copied!" data-tooltip-direction="w" role="button" style="align-items: center !important; appearance: none; border-radius: 6px; border: 0px; box-shadow: none; box-sizing: border-box; color: var(--fgColor-accent, var(--color-accent-fg)); cursor: pointer; display: flex !important; font-size: 14px; font-weight: var(--base-text-weight-medium, 500); height: var(--control-small-size, 28px); justify-content: center !important; line-height: 20px; margin: var(--base-size-8, 8px) !important; padding: 0px !important; position: relative; text-wrap: nowrap; transition: color 80ms cubic-bezier(0.33, 1, 0.68, 1) 0s, background-color 0s ease 0s, box-shadow 0s ease 0s, border-color 0s ease 0s; user-select: none; vertical-align: middle; width: var(--control-small-size, 28px);" tabindex="0" value="-- see the history of changes
select * from test_db.&amp;quot;hash_test$history&amp;quot; order by made_current_at desc

-- use a snasphot_id from above as your value for xxxxx
select * from test_db.hash_test for version as of xxxxx

-- get only the latest records from the table
select * from test_db.hash_test
where last_updated_on in (select max(last_updated_on) from test_db.hash_test)
order by last_updated_on"&gt;&lt;svg aria-hidden="true" class="octicon octicon-copy js-clipboard-copy-icon" data-view-component="true" height="16" version="1.1" viewbox="0 0 16 16" width="16"&gt;&lt;path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"&gt;&lt;/path&gt;&lt;path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/clipboard-copy&gt;&lt;/div&gt;&lt;/div&gt;&lt;p dir="auto" style="background-color: white; box-sizing: border-box; color: #1f2328; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; margin-bottom: 16px; margin-top: 0px;"&gt;Reference:&lt;/p&gt;&lt;ol dir="auto" style="background-color: white; box-sizing: border-box; color: #1f2328; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; margin-bottom: 16px; margin-top: 0px; padding-left: 2em;"&gt;&lt;li style="box-sizing: border-box;"&gt;&lt;a href="https://docs.aws.amazon.com/athena/latest/ug/functions.html" rel="nofollow" style="background-color: transparent; box-sizing: border-box; text-underline-offset: 0.2rem;"&gt;Athena Functions&lt;/a&gt;&lt;/li&gt;&lt;li style="box-sizing: border-box; margin-top: 0.25em;"&gt;&lt;a href="https://docs.aws.amazon.com/athena/latest/ug/delta-lake-tables.html" rel="nofollow" style="background-color: transparent; box-sizing: border-box; text-underline-offset: 0.2rem;"&gt;Query Delta Lake Tables&lt;/a&gt;&lt;a href="https://docs.aws.amazon.com/athena/latest/ug/delta-lake-tables.html" rel="nofollow" style="background-color: transparent; box-sizing: border-box; text-underline-offset: 0.2rem;"&gt;https://docs.aws.amazon.com/athena/latest/ug/delta-lake-tables.html&lt;/a&gt;)&lt;/li&gt;&lt;li style="box-sizing: border-box; margin-top: 0.25em;"&gt;&lt;a href="https://docs.aws.amazon.com/athena/latest/ug/querying-iceberg.html" rel="nofollow" style="background-color: transparent; box-sizing: border-box; text-underline-offset: 0.2rem;"&gt;Using Apache Iceberg tables&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p dir="auto" style="background-color: white; box-sizing: border-box; color: #1f2328; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; margin-bottom: 16px; margin-top: 0px;"&gt;&lt;span style="box-sizing: border-box; font-weight: var(--base-text-weight-semibold, 600);"&gt;Testing Hashing Behavior&lt;/span&gt;&lt;/p&gt;&lt;p dir="auto" style="background-color: white; box-sizing: border-box; color: #1f2328; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; margin-bottom: 16px; margin-top: 0px;"&gt;When hashing you need to make sure that null values are handled appropriately.&lt;/p&gt;&lt;p dir="auto" style="background-color: white; box-sizing: border-box; color: #1f2328; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; margin-bottom: 16px; margin-top: 0px;"&gt;Ex: null, a, null and a, null, null should be treated as changes. If they generate the same hash, then you will miss this change. Also the hash functions need string input and hence, one needs to cast the data when its not of type string. For this reason, the computation of the hash gets complicated and I have not found a simpler solution around this.&lt;/p&gt;&lt;div class="highlight highlight-source-sql notranslate position-relative overflow-auto" dir="auto" style="box-sizing: border-box; color: #1f2328; display: flex; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Noto Sans&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;; font-size: 16px; justify-content: space-between; margin-bottom: 16px; overflow: auto !important; position: relative !important;"&gt;&lt;pre style="border-radius: 6px; box-sizing: border-box; color: var(--fgColor-default, var(--color-fg-default)); font-family: ui-monospace, SFMono-Regular, &amp;quot;SF Mono&amp;quot;, Menlo, Consolas, &amp;quot;Liberation Mono&amp;quot;, monospace; font-size: 13.6px; line-height: 1.45; margin-bottom: 0px; margin-top: 0px; overflow-wrap: normal; overflow: auto; padding: 16px; word-break: normal;"&gt;with cte(id,note, value1, value2,value3) &lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;as&lt;/span&gt;
(
    &lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;select&lt;/span&gt; &lt;span class="pl-c1" style="box-sizing: border-box; color: var(--color-prettylights-syntax-constant);"&gt;1&lt;/span&gt;,&lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;null&lt;/span&gt;,&lt;span class="pl-s" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;&lt;span class="pl-pds" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;'&lt;/span&gt;a1&lt;span class="pl-pds" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;'&lt;/span&gt;&lt;/span&gt;,&lt;span class="pl-s" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;&lt;span class="pl-pds" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;'&lt;/span&gt;b&lt;span class="pl-pds" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;'&lt;/span&gt;&lt;/span&gt;,&lt;span class="pl-c1" style="box-sizing: border-box; color: var(--color-prettylights-syntax-constant);"&gt;1&lt;/span&gt; &lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;union all&lt;/span&gt;
    &lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;select&lt;/span&gt; &lt;span class="pl-c1" style="box-sizing: border-box; color: var(--color-prettylights-syntax-constant);"&gt;4&lt;/span&gt;,&lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;null&lt;/span&gt;,&lt;span class="pl-s" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;&lt;span class="pl-pds" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;'&lt;/span&gt;raj&lt;span class="pl-pds" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;'&lt;/span&gt;&lt;/span&gt;,&lt;span class="pl-s" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;&lt;span class="pl-pds" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;'&lt;/span&gt;rao&lt;span class="pl-pds" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;'&lt;/span&gt;&lt;/span&gt;,&lt;span class="pl-c1" style="box-sizing: border-box; color: var(--color-prettylights-syntax-constant);"&gt;2&lt;/span&gt; &lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;union all&lt;/span&gt;
    &lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;select&lt;/span&gt; &lt;span class="pl-c1" style="box-sizing: border-box; color: var(--color-prettylights-syntax-constant);"&gt;5&lt;/span&gt;,&lt;span class="pl-s" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;&lt;span class="pl-pds" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;'&lt;/span&gt;both null&lt;span class="pl-pds" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;'&lt;/span&gt;&lt;/span&gt;,&lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;null&lt;/span&gt;,&lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;null&lt;/span&gt;,&lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;null&lt;/span&gt; &lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;union all&lt;/span&gt;
    &lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;select&lt;/span&gt; &lt;span class="pl-c1" style="box-sizing: border-box; color: var(--color-prettylights-syntax-constant);"&gt;6&lt;/span&gt;,&lt;span class="pl-s" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;&lt;span class="pl-pds" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;'&lt;/span&gt;empty &amp;amp; null&lt;span class="pl-pds" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;'&lt;/span&gt;&lt;/span&gt;,&lt;span class="pl-s" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;&lt;span class="pl-pds" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;'&lt;/span&gt;&lt;span class="pl-pds" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;'&lt;/span&gt;&lt;/span&gt;,&lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;null&lt;/span&gt;,&lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;null&lt;/span&gt; &lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;union all&lt;/span&gt;
    &lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;select&lt;/span&gt; &lt;span class="pl-c1" style="box-sizing: border-box; color: var(--color-prettylights-syntax-constant);"&gt;7&lt;/span&gt;,&lt;span class="pl-s" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;&lt;span class="pl-pds" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;'&lt;/span&gt;null &amp;amp; empty&lt;span class="pl-pds" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;'&lt;/span&gt;&lt;/span&gt;,&lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;null&lt;/span&gt;,&lt;span class="pl-s" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;&lt;span class="pl-pds" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;'&lt;/span&gt;&lt;span class="pl-pds" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;'&lt;/span&gt;&lt;/span&gt;,&lt;span class="pl-c1" style="box-sizing: border-box; color: var(--color-prettylights-syntax-constant);"&gt;1&lt;/span&gt; &lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;union all&lt;/span&gt;
    &lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;select&lt;/span&gt; &lt;span class="pl-c1" style="box-sizing: border-box; color: var(--color-prettylights-syntax-constant);"&gt;8&lt;/span&gt;,&lt;span class="pl-s" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;&lt;span class="pl-pds" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;'&lt;/span&gt;empty-empty&lt;span class="pl-pds" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;'&lt;/span&gt;&lt;/span&gt;,&lt;span class="pl-s" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;&lt;span class="pl-pds" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;'&lt;/span&gt;&lt;span class="pl-pds" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;'&lt;/span&gt;&lt;/span&gt;,&lt;span class="pl-s" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;&lt;span class="pl-pds" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;'&lt;/span&gt;&lt;span class="pl-pds" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;'&lt;/span&gt;&lt;/span&gt;,&lt;span class="pl-c1" style="box-sizing: border-box; color: var(--color-prettylights-syntax-constant);"&gt;2&lt;/span&gt; &lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;union all&lt;/span&gt;
    &lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;select&lt;/span&gt; &lt;span class="pl-c1" style="box-sizing: border-box; color: var(--color-prettylights-syntax-constant);"&gt;9&lt;/span&gt;,&lt;span class="pl-s" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;&lt;span class="pl-pds" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;'&lt;/span&gt;str-null&lt;span class="pl-pds" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;'&lt;/span&gt;&lt;/span&gt;,&lt;span class="pl-s" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;&lt;span class="pl-pds" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;'&lt;/span&gt;a&lt;span class="pl-pds" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;'&lt;/span&gt;&lt;/span&gt;,&lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;null&lt;/span&gt;,&lt;span class="pl-c1" style="box-sizing: border-box; color: var(--color-prettylights-syntax-constant);"&gt;3&lt;/span&gt; &lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;union all&lt;/span&gt;
    &lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;select&lt;/span&gt; &lt;span class="pl-c1" style="box-sizing: border-box; color: var(--color-prettylights-syntax-constant);"&gt;10&lt;/span&gt;,&lt;span class="pl-s" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;&lt;span class="pl-pds" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;'&lt;/span&gt;null-str&lt;span class="pl-pds" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;'&lt;/span&gt;&lt;/span&gt;,&lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;null&lt;/span&gt;,&lt;span class="pl-s" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;&lt;span class="pl-pds" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;'&lt;/span&gt;a&lt;span class="pl-pds" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;'&lt;/span&gt;&lt;/span&gt;,&lt;span class="pl-c1" style="box-sizing: border-box; color: var(--color-prettylights-syntax-constant);"&gt;4&lt;/span&gt; &lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;union all&lt;/span&gt;
    &lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;select&lt;/span&gt; &lt;span class="pl-c1" style="box-sizing: border-box; color: var(--color-prettylights-syntax-constant);"&gt;100&lt;/span&gt;,&lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;null&lt;/span&gt;,&lt;span class="pl-s" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;&lt;span class="pl-pds" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;'&lt;/span&gt;c2&lt;span class="pl-pds" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;'&lt;/span&gt;&lt;/span&gt;,&lt;span class="pl-s" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;&lt;span class="pl-pds" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;'&lt;/span&gt;d2&lt;span class="pl-pds" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;'&lt;/span&gt;&lt;/span&gt;,&lt;span class="pl-c1" style="box-sizing: border-box; color: var(--color-prettylights-syntax-constant);"&gt;5&lt;/span&gt; 
)
&lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;select&lt;/span&gt; &lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;*&lt;/span&gt;
,concat_ws(&lt;span class="pl-s" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;&lt;span class="pl-pds" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;'&lt;/span&gt;::&lt;span class="pl-pds" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;'&lt;/span&gt;&lt;/span&gt;,coalesce(value1,&lt;span class="pl-s" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;&lt;span class="pl-pds" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;'&lt;/span&gt;-&lt;span class="pl-pds" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;'&lt;/span&gt;&lt;/span&gt;),coalesce(value2,&lt;span class="pl-s" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;&lt;span class="pl-pds" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;'&lt;/span&gt;-&lt;span class="pl-pds" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;'&lt;/span&gt;&lt;/span&gt;),coalesce(cast(value3 &lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;as&lt;/span&gt; &lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;varchar&lt;/span&gt;)))
, murmur3(to_utf8(concat_ws(&lt;span class="pl-s" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;&lt;span class="pl-pds" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;'&lt;/span&gt;::&lt;span class="pl-pds" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;'&lt;/span&gt;&lt;/span&gt;,coalesce(value1,&lt;span class="pl-s" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;&lt;span class="pl-pds" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;'&lt;/span&gt;-&lt;span class="pl-pds" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;'&lt;/span&gt;&lt;/span&gt;),coalesce(value2,&lt;span class="pl-s" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;&lt;span class="pl-pds" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;'&lt;/span&gt;-&lt;span class="pl-pds" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;'&lt;/span&gt;&lt;/span&gt;),coalesce(cast(value3 &lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;as&lt;/span&gt; &lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;varchar&lt;/span&gt;))))) &lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;as&lt;/span&gt; hash1
, xxhash64(to_utf8(concat_ws(&lt;span class="pl-s" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;&lt;span class="pl-pds" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;'&lt;/span&gt;::&lt;span class="pl-pds" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;'&lt;/span&gt;&lt;/span&gt;,coalesce(value1,&lt;span class="pl-s" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;&lt;span class="pl-pds" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;'&lt;/span&gt;-&lt;span class="pl-pds" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;'&lt;/span&gt;&lt;/span&gt;),coalesce(value2,&lt;span class="pl-s" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;&lt;span class="pl-pds" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;'&lt;/span&gt;-&lt;span class="pl-pds" style="box-sizing: border-box; color: var(--color-prettylights-syntax-string);"&gt;'&lt;/span&gt;&lt;/span&gt;),coalesce(cast(value3 &lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;as&lt;/span&gt; &lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;varchar&lt;/span&gt;))))) &lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;as&lt;/span&gt; hash2
&lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;from&lt;/span&gt; cte
&lt;span class="pl-k" style="box-sizing: border-box; color: var(--color-prettylights-syntax-keyword);"&gt;order by&lt;/span&gt; id&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</content><link href="http://blog.aggregatedintelligence.com/feeds/8147875039152934302/comments/default" rel="replies" title="Post Comments" type="application/atom+xml"/><link href="http://www.blogger.com/comment/fullpage/post/7656888/8147875039152934302?isPopup=true" rel="replies" title="0 Comments" type="text/html"/><link href="http://www.blogger.com/feeds/7656888/posts/default/8147875039152934302" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/7656888/posts/default/8147875039152934302" rel="self" type="application/atom+xml"/><link href="http://blog.aggregatedintelligence.com/2023/10/aws-athena-using-merge-iceberg-tables.html" rel="alternate" title="AWS Athena - Using Merge + Iceberg tables to store only changed records" type="text/html"/><author><name>Raj Rao</name><uri>http://www.blogger.com/profile/02773005045522319448</uri><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7656888.post-4548164568799652161</id><published>2023-07-18T11:43:00.003-06:00</published><updated>2023-07-18T11:43:17.795-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="PowerBi"/><title type="text">PowerBi/PowerQuery: Dealing with errors in Excel files</title><content type="html">&lt;p&gt;&amp;nbsp;When you have errors in your excel file, they sometimes leak through and adding "Table.ReplaceErrorValues" or "Table.RemoveRowsWithErrors" doesnt really work. What I have found is to add the error fix step right after the navigation step that loads the sheet.&amp;nbsp;&lt;/p&gt;&lt;p&gt;In the screenshot below, I have used "Table.RemoveRowsWithErrors" after the Navigation step and it fixed the error.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/a/AVvXsEjn43EQr1pD73TWvzCL40qnQl7aKFo3dIYrxKz_Sxe97aHS2stZzxetJI5BroZ0zlLk-QT6ANkfllJs7AHKV8Y1KcFvjlv1D2gucA7bgNo4TyYameHBFtktphHYuDS8HMrIzYcNkCZUc56KISTmlBNrOIFUyPiIR1jTAYgHdQFEOiDXrwCLglGKOA" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img alt="" data-original-height="144" data-original-width="228" height="202" src="https://blogger.googleusercontent.com/img/a/AVvXsEjn43EQr1pD73TWvzCL40qnQl7aKFo3dIYrxKz_Sxe97aHS2stZzxetJI5BroZ0zlLk-QT6ANkfllJs7AHKV8Y1KcFvjlv1D2gucA7bgNo4TyYameHBFtktphHYuDS8HMrIzYcNkCZUc56KISTmlBNrOIFUyPiIR1jTAYgHdQFEOiDXrwCLglGKOA" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/a/AVvXsEgrsoUw5zqUTtkYZgHlmYY6vXOkQaHf9zoderVfy_857J5-IU4ETRUYkttTLm15t85CeSXDctTCDCijvPEJY_GZioYDoasYZU21TCiXsei7mYRhwpP9dHbe_hUfRy1V2tI7g05wE-5iIw7XPMQtQfiXEoVI7y9Ly_l4MDwvQLA067-sDajKvbRGJg" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img alt="" data-original-height="470" data-original-width="239" height="320" src="https://blogger.googleusercontent.com/img/a/AVvXsEgrsoUw5zqUTtkYZgHlmYY6vXOkQaHf9zoderVfy_857J5-IU4ETRUYkttTLm15t85CeSXDctTCDCijvPEJY_GZioYDoasYZU21TCiXsei7mYRhwpP9dHbe_hUfRy1V2tI7g05wE-5iIw7XPMQtQfiXEoVI7y9Ly_l4MDwvQLA067-sDajKvbRGJg=w163-h320" width="163" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;</content><link href="http://blog.aggregatedintelligence.com/feeds/4548164568799652161/comments/default" rel="replies" title="Post Comments" type="application/atom+xml"/><link href="http://www.blogger.com/comment/fullpage/post/7656888/4548164568799652161?isPopup=true" rel="replies" title="0 Comments" type="text/html"/><link href="http://www.blogger.com/feeds/7656888/posts/default/4548164568799652161" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/7656888/posts/default/4548164568799652161" rel="self" type="application/atom+xml"/><link href="http://blog.aggregatedintelligence.com/2023/07/powerbipowerquery-dealing-with-errors.html" rel="alternate" title="PowerBi/PowerQuery: Dealing with errors in Excel files" type="text/html"/><author><name>Raj Rao</name><uri>http://www.blogger.com/profile/02773005045522319448</uri><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/a/AVvXsEjn43EQr1pD73TWvzCL40qnQl7aKFo3dIYrxKz_Sxe97aHS2stZzxetJI5BroZ0zlLk-QT6ANkfllJs7AHKV8Y1KcFvjlv1D2gucA7bgNo4TyYameHBFtktphHYuDS8HMrIzYcNkCZUc56KISTmlBNrOIFUyPiIR1jTAYgHdQFEOiDXrwCLglGKOA=s72-c" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7656888.post-1497221195896263245</id><published>2023-05-28T09:48:00.003-06:00</published><updated>2023-05-28T09:48:57.489-06:00</updated><title type="text">Applying for US passport in 2023</title><content type="html">&lt;p&gt;We needed a new passport for our daughter as her passport expires in 5 months and 3 weeks from date of travel (country requires 6 months).&amp;nbsp;&lt;/p&gt;&lt;p&gt;Panicking, we emailed our senators and representatives. Got a call from one of them and they advised to call passport phone number and tell them country we were travelling to needs a visa (urgent passport appointment is provided 28 days out for countries needing passport).&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Time line&lt;/p&gt;&lt;p&gt;May 5: figured out we needed new passport. Called passport agency, was told to call back 2 weeks prior to travel.&lt;/p&gt;&lt;p&gt;May 6: emailed senators and representatives&lt;/p&gt;&lt;p&gt;May 8: got call back from one of the representatives' staff advising about calling back and telling them that we needed a visa&lt;/p&gt;&lt;p&gt;May 9: called passport agency and got an interview date for May 23 at Colorado office in Aurora. Lucky for us this is a 30 minute drive for us.&lt;/p&gt;&lt;p&gt;May 23: appointment was for 8am. Should have lined up 30 minutes early. Line was long, but efficiently managed. Had flight tickets, birth certificate (as passport was for kid and this is considered a new application and not renewal), paper work about needing visa. The entire appointment lasted less than 60 minutes. Was told to return after 2pm on 25th to pick up passport.&lt;/p&gt;&lt;p&gt;May 25: got passport (took 15 minutes)&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Reflections:&lt;/p&gt;&lt;p&gt;1. Everyone we spoke to from the phone staff to the people in the Colorado passport office were extremely helpful, efficient and great to work with.&lt;/p&gt;&lt;p&gt;2. Didn't really need help from senator/representatives, but the help they provided telling us the provision for visa, was the breakthrough we needed.&lt;/p&gt;&lt;p&gt;3. Next time we will apply for passport 12 months prior to expiration, as many countries need 6 months validity on passport for travel.&lt;/p&gt;&lt;p&gt;4. Kids need a ds-11 and you are reapplying for a new passport (I believe until age of 16). Their passports are valid for only 5 years.&lt;/p&gt;</content><link href="http://blog.aggregatedintelligence.com/feeds/1497221195896263245/comments/default" rel="replies" title="Post Comments" type="application/atom+xml"/><link href="http://www.blogger.com/comment/fullpage/post/7656888/1497221195896263245?isPopup=true" rel="replies" title="0 Comments" type="text/html"/><link href="http://www.blogger.com/feeds/7656888/posts/default/1497221195896263245" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/7656888/posts/default/1497221195896263245" rel="self" type="application/atom+xml"/><link href="http://blog.aggregatedintelligence.com/2023/05/applying-for-us-passport-in-2023.html" rel="alternate" title="Applying for US passport in 2023" type="text/html"/><author><name>Raj Rao</name><uri>http://www.blogger.com/profile/02773005045522319448</uri><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7656888.post-5882579792369909353</id><published>2023-05-12T16:50:00.002-06:00</published><updated>2023-05-12T16:51:14.714-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AWS"/><title type="text">AWS CloudFormation error: Properties validation failed for resource LAMBDAXXXX with message: #/Code: expected type: JSONObject, found: String</title><content type="html">&lt;p&gt;During a AWS CF deployment I got the following error:&lt;/p&gt;&lt;p&gt;&lt;span style="background-color: white;"&gt;&lt;span face="Amazon Ember, Helvetica Neue, Roboto, Arial, sans-serif" style="color: #16191f;"&gt;&lt;span style="font-size: 14px;"&gt;Properties validation failed for resource LAMBDAXXXX with message: #/Code: expected type: JSONObject, found: String&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span face="&amp;quot;Amazon Ember&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Roboto, Arial, sans-serif" style="background-color: white; color: #16191f; font-size: 14px;"&gt;After struggling for over 4 hours, it turned out that the issue was that the path was not correct in the CF Template!!!&lt;/span&gt;&lt;/p&gt;&lt;div style="color: #d4d4d4; font-family: Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; white-space: pre;"&gt;&amp;nbsp; &lt;span style="color: #569cd6;"&gt;LAMBDAXXXX&lt;/span&gt;:&lt;/div&gt;&lt;div style="color: #d4d4d4; font-family: Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; white-space: pre;"&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color: #569cd6;"&gt;Type&lt;/span&gt;: &lt;span style="color: #ce9178;"&gt;"AWS::Lambda::Function"&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #d4d4d4; font-family: Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; white-space: pre;"&gt;&amp;nbsp; &amp;nbsp; &lt;span style="color: #569cd6;"&gt;Properties&lt;/span&gt;:&lt;/div&gt;&lt;div style="color: #d4d4d4; font-family: Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; white-space: pre;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #569cd6;"&gt;FunctionName&lt;/span&gt;: &lt;span style="color: #ce9178;"&gt;LambdaIngestXXXX&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #d4d4d4; font-family: Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; white-space: pre;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #569cd6;"&gt;Code&lt;/span&gt;: &lt;span style="color: #ce9178;"&gt;"../lambda/lambda_function_folderpath_xxxx/"&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #d4d4d4; font-family: Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; white-space: pre;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #569cd6;"&gt;Handler&lt;/span&gt;: &lt;span style="color: #ce9178;"&gt;"lambda_function.lambda_handler"&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #d4d4d4; font-family: Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; white-space: pre;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #569cd6;"&gt;Layers&lt;/span&gt;:&lt;/div&gt;&lt;div style="color: #d4d4d4; font-family: Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; white-space: pre;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; - &lt;span style="color: #569cd6;"&gt;!ImportValue&lt;/span&gt; &lt;span style="color: #ce9178;"&gt;LAYERPYREQUESTS&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #d4d4d4; font-family: Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; white-space: pre;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; - &lt;span style="color: #569cd6;"&gt;!ImportValue&lt;/span&gt; &lt;span style="color: #ce9178;"&gt;LAYERAWSWRANGLER&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The error: "&lt;span style="background-color: white; color: #16191f; font-size: 14px;"&gt;#/Code: expected type: JSONObject, found: String&lt;/span&gt;" it turns out translates to "your path&amp;nbsp;&lt;span style="color: #ce9178; font-family: Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; white-space: pre;"&gt;../lambda/lambda_function_folderpath_xxxx/&lt;/span&gt;" is wrong!!!&lt;/div&gt;&lt;p&gt;How I hate CloudFormation!!!&lt;/p&gt;&lt;p&gt;Hope this saves someone else time!&lt;/p&gt;</content><link href="http://blog.aggregatedintelligence.com/feeds/5882579792369909353/comments/default" rel="replies" title="Post Comments" type="application/atom+xml"/><link href="http://www.blogger.com/comment/fullpage/post/7656888/5882579792369909353?isPopup=true" rel="replies" title="0 Comments" type="text/html"/><link href="http://www.blogger.com/feeds/7656888/posts/default/5882579792369909353" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/7656888/posts/default/5882579792369909353" rel="self" type="application/atom+xml"/><link href="http://blog.aggregatedintelligence.com/2023/05/aws-cloudformation-error-properties.html" rel="alternate" title="AWS CloudFormation error: Properties validation failed for resource LAMBDAXXXX with message: #/Code: expected type: JSONObject, found: String" type="text/html"/><author><name>Raj Rao</name><uri>http://www.blogger.com/profile/02773005045522319448</uri><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7656888.post-7165188410703313967</id><published>2023-05-01T18:24:00.002-06:00</published><updated>2023-05-01T18:24:44.149-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="PowerBi"/><title type="text">Add an image into a PowerBi report via PowerBi.com/PowerBi Service</title><content type="html">&lt;p&gt;Currently, there is no way to insert an image into a PowerBi report via PowerBi.com (power bi service).&lt;/p&gt;&lt;p&gt;One, workaround though, is to insert a "Blank" button and then set the "Fill" options Background&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/a/AVvXsEi1h7I5t_V3BzmQ1wWV4n2X142AdR4PVkNMBFe39bqfidaIwzVokTaGNPPEN6Hdd4LfA_jfbjuiJdE0FwNI-mNqTysYuii4KEM499xjc1wkrTKewBulfX1olk-1_uY2-sbMv36oPL95ZVGl_eJ13dttuMdFk6LOQUjdDqXdPdngIqMX3LrFAXg" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img alt="" data-original-height="356" data-original-width="158" height="189" src="https://blogger.googleusercontent.com/img/a/AVvXsEi1h7I5t_V3BzmQ1wWV4n2X142AdR4PVkNMBFe39bqfidaIwzVokTaGNPPEN6Hdd4LfA_jfbjuiJdE0FwNI-mNqTysYuii4KEM499xjc1wkrTKewBulfX1olk-1_uY2-sbMv36oPL95ZVGl_eJ13dttuMdFk6LOQUjdDqXdPdngIqMX3LrFAXg=w84-h189" width="84" /&gt;&amp;nbsp;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/a&gt;&lt;a href="https://blogger.googleusercontent.com/img/a/AVvXsEiSrYPThuKfrT4SfVP_TqfkI8gjGg0uBbBl0Ia0PUwcerFngL8Njc-K8y3_c6YAhx8wmejf-v2848qfZHF3q2XijOPcnHHNdCURi35Xpxzia-F909Zzj8QK7vkTWLtxpH4XRIXLRvn6PkSQNrhS1I4hAjvmt4JrFn2Fxz4vvKLaX_X1IgY_RuA" style="clear: left; display: inline !important; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img alt="" data-original-height="252" data-original-width="173" height="183" src="https://blogger.googleusercontent.com/img/a/AVvXsEiSrYPThuKfrT4SfVP_TqfkI8gjGg0uBbBl0Ia0PUwcerFngL8Njc-K8y3_c6YAhx8wmejf-v2848qfZHF3q2XijOPcnHHNdCURi35Xpxzia-F909Zzj8QK7vkTWLtxpH4XRIXLRvn6PkSQNrhS1I4hAjvmt4JrFn2Fxz4vvKLaX_X1IgY_RuA=w126-h183" width="126" /&gt;&lt;/a&gt;&lt;a href="https://blogger.googleusercontent.com/img/a/AVvXsEi1h7I5t_V3BzmQ1wWV4n2X142AdR4PVkNMBFe39bqfidaIwzVokTaGNPPEN6Hdd4LfA_jfbjuiJdE0FwNI-mNqTysYuii4KEM499xjc1wkrTKewBulfX1olk-1_uY2-sbMv36oPL95ZVGl_eJ13dttuMdFk6LOQUjdDqXdPdngIqMX3LrFAXg" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;br /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;</content><link href="http://blog.aggregatedintelligence.com/feeds/7165188410703313967/comments/default" rel="replies" title="Post Comments" type="application/atom+xml"/><link href="http://www.blogger.com/comment/fullpage/post/7656888/7165188410703313967?isPopup=true" rel="replies" title="0 Comments" type="text/html"/><link href="http://www.blogger.com/feeds/7656888/posts/default/7165188410703313967" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/7656888/posts/default/7165188410703313967" rel="self" type="application/atom+xml"/><link href="http://blog.aggregatedintelligence.com/2023/05/add-image-into-powerbi-report-via.html" rel="alternate" title="Add an image into a PowerBi report via PowerBi.com/PowerBi Service" type="text/html"/><author><name>Raj Rao</name><uri>http://www.blogger.com/profile/02773005045522319448</uri><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/a/AVvXsEi1h7I5t_V3BzmQ1wWV4n2X142AdR4PVkNMBFe39bqfidaIwzVokTaGNPPEN6Hdd4LfA_jfbjuiJdE0FwNI-mNqTysYuii4KEM499xjc1wkrTKewBulfX1olk-1_uY2-sbMv36oPL95ZVGl_eJ13dttuMdFk6LOQUjdDqXdPdngIqMX3LrFAXg=s72-w84-h189-c" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7656888.post-3347981143968425683</id><published>2023-04-28T14:53:00.005-06:00</published><updated>2023-04-28T14:55:36.100-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="PowerBi"/><title type="text">PowerBi Deep Links (URL query string parameter filtering) is not working</title><content type="html">&lt;p&gt;&amp;nbsp;If you find that your deeplinks into a PowerBi report are not working, please make sure you are using a "?" in front of the "filter parameter.&lt;/p&gt;&lt;p&gt;More info:&amp;nbsp;&lt;a href="https://learn.microsoft.com/en-us/power-bi/collaborate-share/service-url-filters"&gt;Filter a report using query string parameters in the URL - Power BI | Microsoft Learn&lt;/a&gt;&lt;/p&gt;&lt;p&gt;If you are coming from a Reporting Server environment, the filter url used to have a &amp;amp; in front of it, which will not work.&lt;/p&gt;&lt;p&gt;When testing, one easy way to see if your query parameter is working is to check your filter pane. The filter if correctly picked up will show up in there in italics. The following filters the report by a field named "District" in a table named "District". &lt;b&gt;The table name and column names are case sensitive&lt;/b&gt;. The value used for filtering is not. Another tell tale sign that your url is not correct is if the filter gets dropped from the URL once the page loads.&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style="color: #38761d;"&gt;?&lt;/span&gt;&lt;/b&gt;filter=District/District eq 'FD - 01'&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/a/AVvXsEhokUTPXrx2mdi3KOMT1-nFjlADfVDEsev6Aw-ZbN5Pb1W01d9YEvkmwCnyh-idSQl0_TpGFlKyTtojKRs5M-v8wNLHW-mK9IT3iUMf9-wBM5uS3TLjRmXutSBRgoJ6cRue_NogaBj66vBpUk38ivSx3zgrlDYUTDyTxsoGigYFBcy9FHHKNh4" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img alt="" data-original-height="88" data-original-width="206" height="137" src="https://blogger.googleusercontent.com/img/a/AVvXsEhokUTPXrx2mdi3KOMT1-nFjlADfVDEsev6Aw-ZbN5Pb1W01d9YEvkmwCnyh-idSQl0_TpGFlKyTtojKRs5M-v8wNLHW-mK9IT3iUMf9-wBM5uS3TLjRmXutSBRgoJ6cRue_NogaBj66vBpUk38ivSx3zgrlDYUTDyTxsoGigYFBcy9FHHKNh4" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Example of an old Report Server Link which will not work because of the "&amp;amp;":&amp;nbsp;?rs:embed=true&lt;b&gt;&lt;span style="color: red;"&gt;&amp;amp;&lt;/span&gt;&lt;/b&gt;filter=District/District eq 'FD - 01'&lt;/p&gt;</content><link href="http://blog.aggregatedintelligence.com/feeds/3347981143968425683/comments/default" rel="replies" title="Post Comments" type="application/atom+xml"/><link href="http://www.blogger.com/comment/fullpage/post/7656888/3347981143968425683?isPopup=true" rel="replies" title="0 Comments" type="text/html"/><link href="http://www.blogger.com/feeds/7656888/posts/default/3347981143968425683" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/7656888/posts/default/3347981143968425683" rel="self" type="application/atom+xml"/><link href="http://blog.aggregatedintelligence.com/2023/04/powerbi-deep-links-url-query-string.html" rel="alternate" title="PowerBi Deep Links (URL query string parameter filtering) is not working" type="text/html"/><author><name>Raj Rao</name><uri>http://www.blogger.com/profile/02773005045522319448</uri><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/a/AVvXsEhokUTPXrx2mdi3KOMT1-nFjlADfVDEsev6Aw-ZbN5Pb1W01d9YEvkmwCnyh-idSQl0_TpGFlKyTtojKRs5M-v8wNLHW-mK9IT3iUMf9-wBM5uS3TLjRmXutSBRgoJ6cRue_NogaBj66vBpUk38ivSx3zgrlDYUTDyTxsoGigYFBcy9FHHKNh4=s72-c" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7656888.post-8996755544451662741</id><published>2023-04-06T15:33:00.003-06:00</published><updated>2023-04-06T15:33:18.861-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Denodo"/><category scheme="http://www.blogger.com/atom/ns#" term="PowerBi"/><title type="text">Power BI + Denodo: FailedWithUnknownOrUnsupportedDataSources</title><content type="html">&lt;p&gt;We started getting an error with our Power Bi datasets that were using a Denodo connector. This seems to be happeing only with new files and not existing datasets.&lt;/p&gt;&lt;p&gt;The error we were getting is:&lt;/p&gt;&lt;p&gt;&lt;span _ngcontent-app-id-c656="" style="background-color: #fef7b2; font-family: &amp;quot;Segoe UI&amp;quot;, wf_segoe-ui_normal, helvetica, arial, sans-serif; font-size: 14px;"&gt;Unable to determine the data source. In order to determine details about custom connector based data sources, Power BI service needs to connect to a gateway, however, no gateway was available/reachable. Details: Static analysis failed in gateway. gatewayObjectId:e884ca97-b4d9-45bc-8560-ad3d2d4eaa56, resultCode:FailedWithUnknownOrUnsupportedDataSources Query contains unsupported function. Function name: Denodo.Contents .&lt;/span&gt;&lt;/p&gt;&lt;li _ngcontent-app-id-c656="" class="ng-star-inserted" style="background-color: #fef7b2; font-family: &amp;quot;Segoe UI&amp;quot;, wf_segoe-ui_normal, helvetica, arial, sans-serif; font-size: 14px;"&gt;Data source for Query1&lt;/li&gt;&lt;p&gt;Locally the PowerBi files works fine, this error shows up in PowerBi service after you publish the dataset and take a look at the settings for the dataset.&lt;/p&gt;&lt;p&gt;It looks like this might be a bug in PowerBI where when you add a new query that uses the Denodo connector, it is adding an empty list to the arguments and that is causing this is.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; Source = Denodo.Contents("MyDenodoSourceName", null, []),&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;The problem is caused by the []. If you change the line to remove the empty [], then everything works fine!&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;Source = Denodo.Contents("MyDenodoSourceName", null),&lt;/p&gt;</content><link href="http://blog.aggregatedintelligence.com/feeds/8996755544451662741/comments/default" rel="replies" title="Post Comments" type="application/atom+xml"/><link href="http://www.blogger.com/comment/fullpage/post/7656888/8996755544451662741?isPopup=true" rel="replies" title="0 Comments" type="text/html"/><link href="http://www.blogger.com/feeds/7656888/posts/default/8996755544451662741" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/7656888/posts/default/8996755544451662741" rel="self" type="application/atom+xml"/><link href="http://blog.aggregatedintelligence.com/2023/04/power-bi-denodo-failedwithunknownorunsu.html" rel="alternate" title="Power BI + Denodo: FailedWithUnknownOrUnsupportedDataSources" type="text/html"/><author><name>Raj Rao</name><uri>http://www.blogger.com/profile/02773005045522319448</uri><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7656888.post-8978361963097867906</id><published>2023-02-11T09:25:00.002-07:00</published><updated>2023-02-11T09:25:33.553-07:00</updated><title type="text">Honda Service Codes</title><content type="html">&lt;p&gt;Recently my car was blinking the maintenance minder B167 code.&lt;/p&gt;&lt;p&gt;Turns out each character has a specific meaning.&lt;/p&gt;&lt;h2 style="background-color: white; box-sizing: border-box; font-family: &amp;quot;Avenir Next&amp;quot;, sans-serif; font-size: 24px; font-weight: 500; line-height: 1.1; margin: 20px 0px 10px; overflow-wrap: break-word;"&gt;Main Honda Service Codes&lt;/h2&gt;&lt;p style="background-color: white; box-sizing: border-box; font-family: &amp;quot;Avenir Next&amp;quot;, sans-serif; font-size: 13px; margin: 0px 0px 10px; overflow-wrap: break-word;"&gt;&lt;/p&gt;&lt;p style="background-color: white; box-sizing: border-box; font-family: &amp;quot;Avenir Next&amp;quot;, sans-serif; font-size: 13px; margin: 0px 0px 10px; overflow-wrap: break-word;"&gt;&lt;/p&gt;&lt;div class="hidden-lg hidden-md" style="background-color: white; box-sizing: border-box; font-family: &amp;quot;Avenir Next&amp;quot;, sans-serif; font-size: 13px;"&gt;&lt;div class="table" style="box-sizing: border-box; margin-bottom: 20px; width: 382.19px;"&gt;&lt;table align="center" border="1px" class="table" style="border-collapse: collapse; border-spacing: 0px; margin-bottom: 20px; max-width: 100%; width: 350px;"&gt;&lt;tbody style="box-sizing: border-box;"&gt;&lt;tr style="background-color: #8acdf7; box-sizing: border-box;"&gt;&lt;td style="border-top: 1px solid rgb(221, 221, 221); box-sizing: border-box; line-height: 1.42857; padding: 8px; text-align: center; vertical-align: top; width: 112px;"&gt;&lt;span style="box-sizing: border-box; font-weight: 700;"&gt;Code&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top: 1px solid rgb(221, 221, 221); box-sizing: border-box; line-height: 1.42857; padding: 8px; text-align: center; vertical-align: top; width: 540px;"&gt;&lt;span style="box-sizing: border-box; font-weight: 700;"&gt;What it Means&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="box-sizing: border-box;"&gt;&lt;td style="border-top: 1px solid rgb(221, 221, 221); box-sizing: border-box; line-height: 1.42857; padding: 8px; text-align: center; vertical-align: top; width: 112px;"&gt;A&lt;/td&gt;&lt;td style="border-top: 1px solid rgb(221, 221, 221); box-sizing: border-box; line-height: 1.42857; padding: 8px; text-align: center; vertical-align: top; width: 540px;"&gt;Change Oil and Filter&lt;/td&gt;&lt;/tr&gt;&lt;tr style="box-sizing: border-box;"&gt;&lt;td style="border-top: 1px solid rgb(221, 221, 221); box-sizing: border-box; line-height: 1.42857; padding: 8px; text-align: center; vertical-align: top; width: 112px;"&gt;B&lt;/td&gt;&lt;td style="border-top: 1px solid rgb(221, 221, 221); box-sizing: border-box; line-height: 1.42857; padding: 8px; text-align: center; vertical-align: top; width: 540px;"&gt;Replace the engine oil and oil filter. Perform front and rear brake cleaning and lubrication. Adjust parking brake. Perform in-depth inspection of the brake components.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;p style="background-color: white; box-sizing: border-box; font-family: &amp;quot;Avenir Next&amp;quot;, sans-serif; font-size: 13px; margin: 0px 0px 10px; overflow-wrap: break-word;"&gt;&lt;/p&gt;&lt;p style="background-color: white; box-sizing: border-box; font-family: &amp;quot;Avenir Next&amp;quot;, sans-serif; font-size: 13px; margin: 0px 0px 10px; overflow-wrap: break-word;"&gt;&lt;/p&gt;&lt;div class="hidden-lg hidden-md" style="background-color: white; box-sizing: border-box; font-family: &amp;quot;Avenir Next&amp;quot;, sans-serif; font-size: 13px;"&gt;&lt;div class="table" style="box-sizing: border-box; margin-bottom: 20px; width: 382.19px;"&gt;&lt;h2 style="box-sizing: border-box; color: inherit; font-size: 24px; font-weight: 500; line-height: 1.1; margin: 20px 0px 10px; overflow-wrap: break-word;"&gt;Honda Service Sub-Codes&lt;/h2&gt;&lt;table align="center" border="1px" class="table" style="border-collapse: collapse; border-spacing: 0px; margin-bottom: 20px; max-width: 100%; width: 350px;"&gt;&lt;tbody style="box-sizing: border-box;"&gt;&lt;tr style="background-color: #8acdf7; box-sizing: border-box;"&gt;&lt;td style="border-top: 1px solid rgb(221, 221, 221); box-sizing: border-box; line-height: 1.42857; padding: 8px; text-align: center; vertical-align: top; width: 119px;"&gt;&lt;span style="box-sizing: border-box; font-weight: 700;"&gt;Sub-Code&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top: 1px solid rgb(221, 221, 221); box-sizing: border-box; line-height: 1.42857; padding: 8px; text-align: center; vertical-align: top; width: 533px;"&gt;&lt;span style="box-sizing: border-box; font-weight: 700;"&gt;What it Means&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="box-sizing: border-box;"&gt;&lt;td style="border-top: 1px solid rgb(221, 221, 221); box-sizing: border-box; line-height: 1.42857; padding: 8px; text-align: center; vertical-align: top; width: 119px;"&gt;0&lt;/td&gt;&lt;td style="border-top: 1px solid rgb(221, 221, 221); box-sizing: border-box; line-height: 1.42857; padding: 8px; text-align: center; vertical-align: top; width: 533px;"&gt;Perform multi-point inspection.&lt;/td&gt;&lt;/tr&gt;&lt;tr style="box-sizing: border-box;"&gt;&lt;td style="border-top: 1px solid rgb(221, 221, 221); box-sizing: border-box; line-height: 1.42857; padding: 8px; text-align: center; vertical-align: top; width: 119px;"&gt;1&lt;/td&gt;&lt;td style="border-top: 1px solid rgb(221, 221, 221); box-sizing: border-box; line-height: 1.42857; padding: 8px; text-align: center; vertical-align: top; width: 533px;"&gt;Tires need a rotation service.&lt;/td&gt;&lt;/tr&gt;&lt;tr style="box-sizing: border-box;"&gt;&lt;td style="border-top: 1px solid rgb(221, 221, 221); box-sizing: border-box; line-height: 1.42857; padding: 8px; text-align: center; vertical-align: top; width: 119px;"&gt;2&lt;/td&gt;&lt;td style="border-top: 1px solid rgb(221, 221, 221); box-sizing: border-box; line-height: 1.42857; padding: 8px; text-align: center; vertical-align: top; width: 533px;"&gt;Replace the cabin and engine air filters.&lt;/td&gt;&lt;/tr&gt;&lt;tr style="box-sizing: border-box;"&gt;&lt;td style="border-top: 1px solid rgb(221, 221, 221); box-sizing: border-box; line-height: 1.42857; padding: 8px; text-align: center; vertical-align: top; width: 119px;"&gt;3&lt;/td&gt;&lt;td style="border-top: 1px solid rgb(221, 221, 221); box-sizing: border-box; line-height: 1.42857; padding: 8px; text-align: center; vertical-align: top; width: 533px;"&gt;Replace the transmission fluid.&lt;/td&gt;&lt;/tr&gt;&lt;tr style="box-sizing: border-box;"&gt;&lt;td style="border-top: 1px solid rgb(221, 221, 221); box-sizing: border-box; line-height: 1.42857; padding: 8px; text-align: center; vertical-align: top; width: 119px;"&gt;4&lt;/td&gt;&lt;td style="border-top: 1px solid rgb(221, 221, 221); box-sizing: border-box; line-height: 1.42857; padding: 8px; text-align: center; vertical-align: top; width: 533px;"&gt;Replace spark plugs, timing belt (if equipped) and adjust valves.&lt;/td&gt;&lt;/tr&gt;&lt;tr style="box-sizing: border-box;"&gt;&lt;td style="border-top: 1px solid rgb(221, 221, 221); box-sizing: border-box; line-height: 1.42857; padding: 8px; text-align: center; vertical-align: top; width: 119px;"&gt;5&lt;/td&gt;&lt;td style="border-top: 1px solid rgb(221, 221, 221); box-sizing: border-box; line-height: 1.42857; padding: 8px; text-align: center; vertical-align: top; width: 533px;"&gt;The engine coolant needs replacing.&lt;/td&gt;&lt;/tr&gt;&lt;tr style="box-sizing: border-box;"&gt;&lt;td style="border-top: 1px solid rgb(221, 221, 221); box-sizing: border-box; line-height: 1.42857; padding: 8px; text-align: center; vertical-align: top; width: 119px;"&gt;6&lt;/td&gt;&lt;td style="border-top: 1px solid rgb(221, 221, 221); box-sizing: border-box; line-height: 1.42857; padding: 8px; text-align: center; vertical-align: top; width: 533px;"&gt;If equipped, rear differential fluid needs replacing.&lt;/td&gt;&lt;/tr&gt;&lt;tr style="box-sizing: border-box;"&gt;&lt;td style="border-top: 1px solid rgb(221, 221, 221); box-sizing: border-box; line-height: 1.42857; padding: 8px; text-align: center; vertical-align: top; width: 119px;"&gt;7&lt;/td&gt;&lt;td style="border-top: 1px solid rgb(221, 221, 221); box-sizing: border-box; line-height: 1.42857; padding: 8px; text-align: center; vertical-align: top; width: 533px;"&gt;Replace brake fluid.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;</content><link href="http://blog.aggregatedintelligence.com/feeds/8978361963097867906/comments/default" rel="replies" title="Post Comments" type="application/atom+xml"/><link href="http://www.blogger.com/comment/fullpage/post/7656888/8978361963097867906?isPopup=true" rel="replies" title="0 Comments" type="text/html"/><link href="http://www.blogger.com/feeds/7656888/posts/default/8978361963097867906" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/7656888/posts/default/8978361963097867906" rel="self" type="application/atom+xml"/><link href="http://blog.aggregatedintelligence.com/2023/02/honda-service-codes.html" rel="alternate" title="Honda Service Codes" type="text/html"/><author><name>Raj Rao</name><uri>http://www.blogger.com/profile/02773005045522319448</uri><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7656888.post-6725016538874587166</id><published>2022-11-01T14:02:00.007-06:00</published><updated>2022-11-01T14:06:38.582-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Athena"/><category scheme="http://www.blogger.com/atom/ns#" term="AWS"/><category scheme="http://www.blogger.com/atom/ns#" term="JDBC"/><title type="text">Connecting to AWS Athena using JDBC (Dbeaver)</title><content type="html">&lt;p&gt;A quick post on setting up a connection to Athena with OKTA using JDBC. The SQL client I am using is DBeaver, but any other tool could be used.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ol style="text-align: left;"&gt;&lt;li&gt;Figure out your connection string.&lt;br /&gt;replace the highlighted sections with values that are valid for your org.&lt;br /&gt;&lt;blockquote&gt;jdbc:awsathena://AwsRegion=&lt;span style="background-color: #fcff01;"&gt;us-west-2&lt;/span&gt;;S3OutputLocation=&lt;span style="background-color: #fcff01;"&gt;s3://my-athena-results-bucket/results-folder/&lt;/span&gt;;AwsCredentialsProviderClass=com.simba.athena.iamsupport.plugin.OktaCredentialsProvider;user={user};password={password};idp_host=&lt;span style="background-color: #fcff01;"&gt;mycompany&lt;/span&gt;.okta.com;App_ID=&lt;span style="background-color: #fcff01;"&gt;0aosd2asadsdsdsd/123&lt;/span&gt;;SSL_Insecure=true;&lt;/blockquote&gt;&lt;/li&gt;&lt;li&gt;In Dbeaver, click on "New Connection", which will bring up the "Connect to a database" dialog. Search for Athena and click next.&lt;br /&gt;&amp;nbsp;&lt;a href="https://blogger.googleusercontent.com/img/a/AVvXsEiMVwQ9hhneiUvmRK9x-fRkKtaOUE82c9suvr30FehYs4J17c73FYU2TrmGaMpIlfVFOOzM9joqJowFDGzQQwc7gOFJUzn-ZAN9HnZum6tr0gRPTFibCrKgj8ixGkm0yb3RyrBGJoV9230XUA2Xh6eZVf4BPvmZ8Fk_5T1tGAsQZC9uA_Zgr1c" style="margin-left: 1em; margin-right: 1em; text-align: center;"&gt;&lt;img alt="" data-original-height="233" data-original-width="302" src="https://blogger.googleusercontent.com/img/a/AVvXsEiMVwQ9hhneiUvmRK9x-fRkKtaOUE82c9suvr30FehYs4J17c73FYU2TrmGaMpIlfVFOOzM9joqJowFDGzQQwc7gOFJUzn-ZAN9HnZum6tr0gRPTFibCrKgj8ixGkm0yb3RyrBGJoV9230XUA2Xh6eZVf4BPvmZ8Fk_5T1tGAsQZC9uA_Zgr1c=s16000" /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Enter your username &amp;amp; password. &lt;i&gt;For my org, I just had to enter my WindowsNT id without the domain, but it might be different for your org.&lt;/i&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/a/AVvXsEhpnMMGSR4uR6q1mKWw9-0Mu2qEfTFnDayLGw7d6cGPvYC4uB4NalN7-VHxUcDEr2wgY7Fb3LAfRif1fet4x4SvZhxU-SB4iJXoDm3Gx2P2xQqwlNlkJF7RRPLIdp8xLv4lp1iEplNKPLiVnlvc4V9zrus5DJWgQivFyj6zLmMgQPypSrgYpM8" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img alt="" data-original-height="314" data-original-width="431" src="https://blogger.googleusercontent.com/img/a/AVvXsEhpnMMGSR4uR6q1mKWw9-0Mu2qEfTFnDayLGw7d6cGPvYC4uB4NalN7-VHxUcDEr2wgY7Fb3LAfRif1fet4x4SvZhxU-SB4iJXoDm3Gx2P2xQqwlNlkJF7RRPLIdp8xLv4lp1iEplNKPLiVnlvc4V9zrus5DJWgQivFyj6zLmMgQPypSrgYpM8=s16000" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Click on the button Driver Settings&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Replace the "URL Template" with the value from step 1 on this page (connection string)&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/a/AVvXsEhlvNNSf1fMTSqTkZRZaJuBMvbW6rvG9uxdSuuJzjoFWakUH-3md6CXvhOy4lQSTAiFQ7XF5BXeGcMD4JxVZE75kfhhITxz4Y7ZlUxVyDtAPhyLwBfZWbabDhhk_EnH19DQHa76sSEzDpnOwsDJpKcWztQ6wkRWv3l58wmGLJ2cjwq0Zcm1aSs" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img alt="" data-original-height="406" data-original-width="495" src="https://blogger.googleusercontent.com/img/a/AVvXsEhlvNNSf1fMTSqTkZRZaJuBMvbW6rvG9uxdSuuJzjoFWakUH-3md6CXvhOy4lQSTAiFQ7XF5BXeGcMD4JxVZE75kfhhITxz4Y7ZlUxVyDtAPhyLwBfZWbabDhhk_EnH19DQHa76sSEzDpnOwsDJpKcWztQ6wkRWv3l58wmGLJ2cjwq0Zcm1aSs=s16000" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Click OK.&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Test your connection.&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;That should make it work!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Creating an ODBC connection is very similar:&lt;/div&gt;&lt;div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/a/AVvXsEj9SADmTS2J1jtgo1tjC1cI-bXIpBiApHllON-VGJxkI_CEoUWBGbV3XGcBfl5QMLM9LzlZzDUAtUyKRd2BoFnJxZckflzs3ehCQmUC9FOGjYHwBWoaqkEMVtrNiv5h19cs3eHvswlLNTdYWrB-Y9RXVaWG9eC9m1qUWHsKm5LfDRoZ38ytx98" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img alt="" data-original-height="622" data-original-width="412" src="https://blogger.googleusercontent.com/img/a/AVvXsEj9SADmTS2J1jtgo1tjC1cI-bXIpBiApHllON-VGJxkI_CEoUWBGbV3XGcBfl5QMLM9LzlZzDUAtUyKRd2BoFnJxZckflzs3ehCQmUC9FOGjYHwBWoaqkEMVtrNiv5h19cs3eHvswlLNTdYWrB-Y9RXVaWG9eC9m1qUWHsKm5LfDRoZ38ytx98=s16000" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/a/AVvXsEgUbXddaqt9ulm2dE1damLzY_HQNXcDnU5OJBZGNX_l2iBk7O6Eqwb3O60xEN86HH6SAdQNQ0lw9hmjiYfpVwZrwWWVdOonf2kKqqpY4WCJ5yntDaVb0AtRk_NQ7tMhC9L8RcCXVP3eIvb2U1WYj6FYat876PGiJs5hBRj2p6MDVHP9burQiPY" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img alt="" data-original-height="619" data-original-width="379" src="https://blogger.googleusercontent.com/img/a/AVvXsEgUbXddaqt9ulm2dE1damLzY_HQNXcDnU5OJBZGNX_l2iBk7O6Eqwb3O60xEN86HH6SAdQNQ0lw9hmjiYfpVwZrwWWVdOonf2kKqqpY4WCJ5yntDaVb0AtRk_NQ7tMhC9L8RcCXVP3eIvb2U1WYj6FYat876PGiJs5hBRj2p6MDVHP9burQiPY=s16000" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;</content><link href="http://blog.aggregatedintelligence.com/feeds/6725016538874587166/comments/default" rel="replies" title="Post Comments" type="application/atom+xml"/><link href="http://www.blogger.com/comment/fullpage/post/7656888/6725016538874587166?isPopup=true" rel="replies" title="1 Comments" type="text/html"/><link href="http://www.blogger.com/feeds/7656888/posts/default/6725016538874587166" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/7656888/posts/default/6725016538874587166" rel="self" type="application/atom+xml"/><link href="http://blog.aggregatedintelligence.com/2022/11/connecting-to-aws-athena-using-jdbc.html" rel="alternate" title="Connecting to AWS Athena using JDBC (Dbeaver)" type="text/html"/><author><name>Raj Rao</name><uri>http://www.blogger.com/profile/02773005045522319448</uri><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/a/AVvXsEiMVwQ9hhneiUvmRK9x-fRkKtaOUE82c9suvr30FehYs4J17c73FYU2TrmGaMpIlfVFOOzM9joqJowFDGzQQwc7gOFJUzn-ZAN9HnZum6tr0gRPTFibCrKgj8ixGkm0yb3RyrBGJoV9230XUA2Xh6eZVf4BPvmZ8Fk_5T1tGAsQZC9uA_Zgr1c=s72-c" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7656888.post-9087772367178365630</id><published>2022-09-28T10:28:00.002-06:00</published><updated>2022-09-28T10:28:29.593-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="PowerBi"/><title type="text">PowerBi - Row Level Security behavior - without table filter expressions</title><content type="html">&lt;p&gt;This is a quick post on RLS behavior in a powerbi dataset, where you dont define any table filter expressions.&lt;/p&gt;&lt;p&gt;Basically, when you setup a role and you dont define any table filter DAX expressions, it allows you to control who has access to your dataset. This is useful, when you have multiple datasets in a workspace and you need to reduce the access to a particular group.&lt;/p&gt;&lt;p&gt;Here is an example:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/a/AVvXsEjp61NR343_HpM2ChadJKFi-4nt38mtMd0hdnYUonDWFTefliIEpjC0zASublGT_QwQUKTMhbJfWJmeuSed-mNQi2msCYh76JEt0b3DCqxF1eA32GE0qBTAOLomE5UU629K-9z3ANLuKu-9fvDCUINxamLWRKijkJQycT_l4Czoz8db20ItGWk" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img alt="" data-original-height="212" data-original-width="766" src="https://blogger.googleusercontent.com/img/a/AVvXsEjp61NR343_HpM2ChadJKFi-4nt38mtMd0hdnYUonDWFTefliIEpjC0zASublGT_QwQUKTMhbJfWJmeuSed-mNQi2msCYh76JEt0b3DCqxF1eA32GE0qBTAOLomE5UU629K-9z3ANLuKu-9fvDCUINxamLWRKijkJQycT_l4Czoz8db20ItGWk=s16000" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;In the above case, people not assigned to the RLS role, will get the following message:&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/a/AVvXsEgWQlSyHD1Z6fWesfCR_2l5dLDlf3XmER9s8R6hCFvIK4id5Or2cfxvZGxlLs8-lfq3J6ncx2lC9XcG0IQew-Qq9_QJOh4LdImnIE4u7XFMmNZZX4ww8xgQsZzmREimijss8c5nPLGutqZpa7ZP2oqKgVW2z-hHwug3QYZStGrGSmmKj6I739E" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img alt="" data-original-height="294" data-original-width="687" height="137" src="https://blogger.googleusercontent.com/img/a/AVvXsEgWQlSyHD1Z6fWesfCR_2l5dLDlf3XmER9s8R6hCFvIK4id5Or2cfxvZGxlLs8-lfq3J6ncx2lC9XcG0IQew-Qq9_QJOh4LdImnIE4u7XFMmNZZX4ww8xgQsZzmREimijss8c5nPLGutqZpa7ZP2oqKgVW2z-hHwug3QYZStGrGSmmKj6I739E" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;I have found this behavior useful many times, when a dataset gets published, and all of a sudden, someone comes up with a late breaking security requirement and needs the dataset locked down. I quickly add a role and publish the dataset and that allows me to control who can see the data. Also, as people can see the reports, just with an error, it allows them to ask for access to this dataset (instead of completely hiding the dataset from them).&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;</content><link href="http://blog.aggregatedintelligence.com/feeds/9087772367178365630/comments/default" rel="replies" title="Post Comments" type="application/atom+xml"/><link href="http://www.blogger.com/comment/fullpage/post/7656888/9087772367178365630?isPopup=true" rel="replies" title="0 Comments" type="text/html"/><link href="http://www.blogger.com/feeds/7656888/posts/default/9087772367178365630" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/7656888/posts/default/9087772367178365630" rel="self" type="application/atom+xml"/><link href="http://blog.aggregatedintelligence.com/2022/09/powerbi-row-level-security-behavior.html" rel="alternate" title="PowerBi - Row Level Security behavior - without table filter expressions" type="text/html"/><author><name>Raj Rao</name><uri>http://www.blogger.com/profile/02773005045522319448</uri><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/a/AVvXsEjp61NR343_HpM2ChadJKFi-4nt38mtMd0hdnYUonDWFTefliIEpjC0zASublGT_QwQUKTMhbJfWJmeuSed-mNQi2msCYh76JEt0b3DCqxF1eA32GE0qBTAOLomE5UU629K-9z3ANLuKu-9fvDCUINxamLWRKijkJQycT_l4Czoz8db20ItGWk=s72-c" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7656888.post-7427850526237650052</id><published>2022-08-23T17:56:00.000-06:00</published><updated>2022-08-23T17:56:38.842-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="PowerBi"/><title type="text">PowerBi - Datasets - Create a report from a template</title><content type="html">&lt;p&gt;Have you wondered how to use the "Create a report" &amp;gt;&amp;gt; "From a template" option from a dataset in PowerBi Service?&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/a/AVvXsEjNxm2k-lNNzgHgdCdDweUBdI3Mnr_KNJBBpBpfnFQ_PPKctv9WwImBqjpF8b4j-afRIZijrKjj2EcSArrGPiPrW8y-iXG56ybl-N-Bnlfk2GlE9HwSOuMiWuepyKt8NfJyguHVxApSDUX83Lxg0__lK3YGOnameogerHq6cwWq_EDZSv-fQTE" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img alt="" data-original-height="197" data-original-width="193" src="https://blogger.googleusercontent.com/img/a/AVvXsEjNxm2k-lNNzgHgdCdDweUBdI3Mnr_KNJBBpBpfnFQ_PPKctv9WwImBqjpF8b4j-afRIZijrKjj2EcSArrGPiPrW8y-iXG56ybl-N-Bnlfk2GlE9HwSOuMiWuepyKt8NfJyguHVxApSDUX83Lxg0__lK3YGOnameogerHq6cwWq_EDZSv-fQTE=s16000" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;If you look at the documentation:&amp;nbsp;&lt;a href="https://docs.microsoft.com/en-us/power-bi/connect-data/service-dataset-details-page#visualize-this-data"&gt;Dataset details page - Power BI | Microsoft Docs&lt;/a&gt;, it is rather unhelpful:&amp;nbsp;&lt;div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/a/AVvXsEhMvuBTbMnk6OztirNL3Lw8dLaRBfnKHfe08zM5cEllPl6kryyavUKiO-2tTVbGLGFb98Bf26Nfl_G7lGMLiyMGG4vlRM8Sjqqb19-rP-bgT5iVRqQ5RSbgQPq7gT25sWrqFEWRv8Hm-t9Uhfp2WZ4Nol83Mt8pXVdGBIkXBNZgKzSRuyBnqk8" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img alt="" data-original-height="68" data-original-width="514" src="https://blogger.googleusercontent.com/img/a/AVvXsEhMvuBTbMnk6OztirNL3Lw8dLaRBfnKHfe08zM5cEllPl6kryyavUKiO-2tTVbGLGFb98Bf26Nfl_G7lGMLiyMGG4vlRM8Sjqqb19-rP-bgT5iVRqQ5RSbgQPq7gT25sWrqFEWRv8Hm-t9Uhfp2WZ4Nol83Mt8pXVdGBIkXBNZgKzSRuyBnqk8=s16000" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;It turns out that, there is some additional information a little earlier in that page:&amp;nbsp;&lt;a href="https://docs.microsoft.com/en-us/power-bi/connect-data/service-dataset-details-page#explore-related-reports"&gt;Dataset details page - Power BI | Microsoft Docs&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/a/AVvXsEhghgxXmC0a-E--_dMQX-YdCL5pNuN339rrtR6TlUF8UijG6zn80mqAqKRdA-ITsXaQ8OWRUd3c0mNELhp51nL7rSrJUkaZsWaxjoXQ4VsQP8MZcYdw6ZidPhbjBd_iOYwLLDlczEI6gyQwkKAI_2zGViaoOEPXxsZptO38ap7mbJXxdgRxBws" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img alt="" data-original-height="54" data-original-width="864" src="https://blogger.googleusercontent.com/img/a/AVvXsEhghgxXmC0a-E--_dMQX-YdCL5pNuN339rrtR6TlUF8UijG6zn80mqAqKRdA-ITsXaQ8OWRUd3c0mNELhp51nL7rSrJUkaZsWaxjoXQ4VsQP8MZcYdw6ZidPhbjBd_iOYwLLDlczEI6gyQwkKAI_2zGViaoOEPXxsZptO38ap7mbJXxdgRxBws=s16000" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;So it turns out that if you create a report from your dataset and post fix the report name as "(template)", it will use that report as the template for the new report. This is extremely helpful, as you can now create a report with instructions and some sample pages that can help users get started. I LOVE THIS FEATURE!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Note: (2022-8-23):&amp;nbsp;&lt;/b&gt;Unfortunately, this does not seem to work when you try and create a report directly (from outside the dataset details page).&lt;/div&gt;&lt;div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/a/AVvXsEg0fmWywAxUeLKRqWwQLXPqvOGA-uQuDSNxtteyK2tXmiP_i8i2ekN-V8TBxQ-HFBZrO7gUV10mI1fHSIKYjFkZluDwT0CpU0XoFsz3ihI2ieiFHaiX72giis3yHdxP5VSO2xilPVTVQiSqVB_FoJVwjqxHE5xBTdABhE_NaYFwFPkp64QCl_M" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img alt="" data-original-height="214" data-original-width="423" height="162" src="https://blogger.googleusercontent.com/img/a/AVvXsEg0fmWywAxUeLKRqWwQLXPqvOGA-uQuDSNxtteyK2tXmiP_i8i2ekN-V8TBxQ-HFBZrO7gUV10mI1fHSIKYjFkZluDwT0CpU0XoFsz3ihI2ieiFHaiX72giis3yHdxP5VSO2xilPVTVQiSqVB_FoJVwjqxHE5xBTdABhE_NaYFwFPkp64QCl_M" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/a/AVvXsEgUCYfUruLGjrqSI4OUyuEorPT9pHhsb3uIbstkSrbllC5t4-Z5QD11BqfVb9JcgelWBmPEysqYYdV9TPho__FXJMrHIwB_bCdOOQrGRnF627QJQ5tHYjlZbdD-RumIHZBHzvmDHJm5EOb-gffQxZ8sCZT5rrDy5MydSjR7isdW_1qQu5EYCb4" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img alt="" data-original-height="640" data-original-width="924" height="222" src="https://blogger.googleusercontent.com/img/a/AVvXsEgUCYfUruLGjrqSI4OUyuEorPT9pHhsb3uIbstkSrbllC5t4-Z5QD11BqfVb9JcgelWBmPEysqYYdV9TPho__FXJMrHIwB_bCdOOQrGRnF627QJQ5tHYjlZbdD-RumIHZBHzvmDHJm5EOb-gffQxZ8sCZT5rrDy5MydSjR7isdW_1qQu5EYCb4" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The "Auto-create report" option does not work! I really wish this did as currently we provide access to our datasets via PowerBi apps and so users dont have access to the dataset details page. Ideally, when the pick the "auto-create report" option with a dataset, it should use the template associated with the dataset.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;</content><link href="http://blog.aggregatedintelligence.com/feeds/7427850526237650052/comments/default" rel="replies" title="Post Comments" type="application/atom+xml"/><link href="http://www.blogger.com/comment/fullpage/post/7656888/7427850526237650052?isPopup=true" rel="replies" title="0 Comments" type="text/html"/><link href="http://www.blogger.com/feeds/7656888/posts/default/7427850526237650052" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/7656888/posts/default/7427850526237650052" rel="self" type="application/atom+xml"/><link href="http://blog.aggregatedintelligence.com/2022/08/powerbi-datasets-create-report-from.html" rel="alternate" title="PowerBi - Datasets - Create a report from a template" type="text/html"/><author><name>Raj Rao</name><uri>http://www.blogger.com/profile/02773005045522319448</uri><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/a/AVvXsEjNxm2k-lNNzgHgdCdDweUBdI3Mnr_KNJBBpBpfnFQ_PPKctv9WwImBqjpF8b4j-afRIZijrKjj2EcSArrGPiPrW8y-iXG56ybl-N-Bnlfk2GlE9HwSOuMiWuepyKt8NfJyguHVxApSDUX83Lxg0__lK3YGOnameogerHq6cwWq_EDZSv-fQTE=s72-c" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7656888.post-3342849179487919672</id><published>2022-07-27T17:30:00.003-06:00</published><updated>2022-07-27T17:30:13.307-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Tips N Tricks"/><title type="text">Bash script and /bin/bash^M: bad interpreter: No such file or directory</title><content type="html">&lt;p&gt;If you get the error: "Bash script and /bin/bash^M: bad interpreter: No such file or directory", then you are likely trying to run a shell script (.sh) from your windows drive. Most likely, the issue is that your line-endings are CR+LF and not the Unix style LF.&lt;/p&gt;&lt;p&gt;If you need to fix this, the simplest way is to open the file in NotePad++ and change the line-endings (bottom right side of the status bar).&lt;/p&gt;&lt;p&gt;Another simple way to do this is to run the following script that runs regex to replace CR+LF with just LF.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;sed -i -e 's/\r$//' myfolder/*.*&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Another option, if you are using GIT is to add a .gitattributes file with line-endings set to LF.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;* text eol=lf&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Please note that if you do this, you may have to first delete all files in your repo (expect .git folder and .gitattributes and then run git reset to get the latest files again).&lt;/p&gt;&lt;p&gt;Finally, another option is to not download the files directly from your command prompt or windows explorer. Instead use your WSL terminal to download the files and they should come down with the correct line endings.&lt;/p&gt;</content><link href="http://blog.aggregatedintelligence.com/feeds/3342849179487919672/comments/default" rel="replies" title="Post Comments" type="application/atom+xml"/><link href="http://www.blogger.com/comment/fullpage/post/7656888/3342849179487919672?isPopup=true" rel="replies" title="0 Comments" type="text/html"/><link href="http://www.blogger.com/feeds/7656888/posts/default/3342849179487919672" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/7656888/posts/default/3342849179487919672" rel="self" type="application/atom+xml"/><link href="http://blog.aggregatedintelligence.com/2022/07/bash-script-and-binbashm-bad.html" rel="alternate" title="Bash script and /bin/bash^M: bad interpreter: No such file or directory" type="text/html"/><author><name>Raj Rao</name><uri>http://www.blogger.com/profile/02773005045522319448</uri><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7656888.post-7325276508356980829</id><published>2022-07-20T16:55:00.002-06:00</published><updated>2022-07-20T16:55:28.537-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="PowerBi"/><title type="text">PowerBi PowerQuery - Convert Unix Timestamp to DateTime</title><content type="html">&lt;p&gt;The Unix timestamp represents the number of seconds since 1970-01-01. So to convert it to a DateTime in PowerQuery, use the following code:&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div style="text-align: left;"&gt;&lt;blockquote&gt;&amp;nbsp;= Table.AddColumn(Source, "unixTimeStamp to DateTime", each #datetimezone(1970,1,1,0,0,0,0,0) + #duration(0,0,0,[unixtimestamp]))&lt;/blockquote&gt;&lt;/div&gt;</content><link href="http://blog.aggregatedintelligence.com/feeds/7325276508356980829/comments/default" rel="replies" title="Post Comments" type="application/atom+xml"/><link href="http://www.blogger.com/comment/fullpage/post/7656888/7325276508356980829?isPopup=true" rel="replies" title="0 Comments" type="text/html"/><link href="http://www.blogger.com/feeds/7656888/posts/default/7325276508356980829" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/7656888/posts/default/7325276508356980829" rel="self" type="application/atom+xml"/><link href="http://blog.aggregatedintelligence.com/2022/07/powerbi-powerquery-convert-unix.html" rel="alternate" title="PowerBi PowerQuery - Convert Unix Timestamp to DateTime" type="text/html"/><author><name>Raj Rao</name><uri>http://www.blogger.com/profile/02773005045522319448</uri><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7656888.post-7416640772984365661</id><published>2022-06-07T17:48:00.006-06:00</published><updated>2022-06-07T17:49:10.043-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="PowerBi"/><title type="text">Power Bi - Filtering by a list of values</title><content type="html">&lt;p&gt;When you need to filter a Power Bi report by multiple values and your users want to copy &amp;amp; paste the list of values by which they wish the report filtered, there isnt an out of the box way to do it in Power Bi.&lt;/p&gt;&lt;p&gt;I recently stumbled upon an AppSource visual called "&lt;a href="https://appsource.microsoft.com/en-US/product/power-bi-visuals/insiderscoop1611244107840.powerbi_customviz_mass-filter" target="_blank"&gt;Mass Filter&lt;/a&gt;" and it does exactly that!&lt;/p&gt;&lt;p&gt;And a quick video that shows you how to use it:&amp;nbsp;&lt;a href="https://www.youtube.com/watch?v=6nKYTFTA1h4&amp;amp;feature=youtu.be"&gt;Power Bi - Filter by Multiple Comma Separated Values - YouTube&lt;/a&gt;&lt;/p&gt;</content><link href="http://blog.aggregatedintelligence.com/feeds/7416640772984365661/comments/default" rel="replies" title="Post Comments" type="application/atom+xml"/><link href="http://www.blogger.com/comment/fullpage/post/7656888/7416640772984365661?isPopup=true" rel="replies" title="0 Comments" type="text/html"/><link href="http://www.blogger.com/feeds/7656888/posts/default/7416640772984365661" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/7656888/posts/default/7416640772984365661" rel="self" type="application/atom+xml"/><link href="http://blog.aggregatedintelligence.com/2022/06/power-bi-filtering-by-list-of-values.html" rel="alternate" title="Power Bi - Filtering by a list of values" type="text/html"/><author><name>Raj Rao</name><uri>http://www.blogger.com/profile/02773005045522319448</uri><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7656888.post-3134250580630170194</id><published>2022-06-03T23:13:00.005-06:00</published><updated>2022-06-06T16:16:55.734-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="PowerBi"/><title type="text">Understanding PowerBi Incremental Refresh with Detect Changes</title><content type="html">&lt;p&gt;Incremental refresh involves partitioning of the data and this concept isnt something that is dwelled upon a lot in the documentation. Because of what fields you use for partitioning can make or break incremental refresh, a lot of times, not understanding the underlying concepts can cause weird behavior later on. Most often the issue, is duplicate records or ghost records. These issues typically surface a months after the incremental refresh is implemented, as the time periods for the archived and incremental refresh periods are measured in multiple months.&lt;/p&gt;&lt;p&gt;Here is some typical account data that one might encounter in a CRM system. I will be using this data to illustrate how Incremental Refresh works.&lt;/p&gt;&lt;table border="1" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse: collapse; border: none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 0in 5.4pt 0in 5.4pt; mso-yfti-tbllook: 1184;"&gt;
 &lt;tbody&gt;&lt;tr&gt;
  &lt;td style="border: 1pt solid windowtext; mso-border-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 22.25pt;" valign="top" width="30"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;&lt;b&gt;Id&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-left: none; border: 1pt solid windowtext; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 63pt;" valign="top" width="84"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;&lt;b&gt;Name&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-left: none; border: 1pt solid windowtext; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 76.5pt;" valign="top" width="102"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;&lt;b&gt;Created
  Date&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-left: none; border: 1pt solid windowtext; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 99pt;" valign="top" width="132"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;&lt;b&gt;Last
  Modified Date&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
  &lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
  &lt;td style="border-top: none; border: 1pt solid windowtext; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 22.25pt;" valign="top" width="30"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;1&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 63pt;" valign="top" width="84"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;Microsoft&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 76.5pt;" valign="top" width="102"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;2022-01-01&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 99pt;" valign="top" width="132"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;2022-01-02&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
  &lt;td style="border-top: none; border: 1pt solid windowtext; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 22.25pt;" valign="top" width="30"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;2&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 63pt;" valign="top" width="84"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;Sales Force&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 76.5pt;" valign="top" width="102"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;2022-02-01&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 99pt;" valign="top" width="132"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;2022-02-02&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
  &lt;td style="border-top: none; border: 1pt solid windowtext; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 22.25pt;" valign="top" width="30"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;3&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 63pt;" valign="top" width="84"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;Hitachi&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 76.5pt;" valign="top" width="102"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;2022-03-01&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 99pt;" valign="top" width="132"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;2022-03-01&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
  &lt;td style="border-top: none; border: 1pt solid windowtext; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 22.25pt;" valign="top" width="30"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;4&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 63pt;" valign="top" width="84"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;NCM&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 76.5pt;" valign="top" width="102"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;2022-04-01&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 99pt;" valign="top" width="132"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;2022-04-05&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
  &lt;td style="border-top: none; border: 1pt solid windowtext; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 22.25pt;" valign="top" width="30"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;5&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 63pt;" valign="top" width="84"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;Tesla&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 76.5pt;" valign="top" width="102"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;2022-05-01&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 99pt;" valign="top" width="132"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;2022-06-03&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
 &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;b&gt;Picking the partitioning field&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Incremental refresh works by storing the data in separate partitions. If you choose "months" then a partition is created for each month. These partitions are important for PowerBi as when data needs to be refreshed, the entire partition's data is reloaded. When a partition is older than the number of months you wish to archive, then that partition is dropped. The partitions are always created using a date column.&lt;/p&gt;&lt;p&gt;The first thing to remember is that one needs to pick a date-time column that &lt;b&gt;does not change (invariant)&lt;/b&gt;. This means that one cannot use the &lt;b&gt;LastModifiedDate&lt;/b&gt; column, which many systems capture, as that will change all the time. Typically, one will end up using the &lt;b&gt;CreatedDate&lt;/b&gt; field, as that should never change once the record has been created.&amp;nbsp;&lt;/p&gt;&lt;p&gt;Next you need to create 2 parameters named "RangeStart" and "RangeEnd". These need to be of type Date or Date/Time. You will use these 2 parameters to filter the above table by its CreatedDate. You can use any values you like for the RangeStart and RangeEnd on your computer, while developing your dataset, they will be reset upon the first refresh that is performed in PowerBi.com.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/a/AVvXsEiTftW4ZLK73A8ypBPz5qoDAxICp9nVWIc_XDe_4d-ULpPQjHBhFZd2wpdbVX4tYuqjIyFZgWRpDqWqtQdmMC1b_gZNhXcOJqrqJ-5DXbu1EiUSz-kSPazuq3yx9irBpn1R0SwfECSBGogJS4TnYck-C1nIDxIP3mawp6SK3UXcojHCcJXiF_U" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img alt="" data-original-height="222" data-original-width="421" height="169" src="https://blogger.googleusercontent.com/img/a/AVvXsEiTftW4ZLK73A8ypBPz5qoDAxICp9nVWIc_XDe_4d-ULpPQjHBhFZd2wpdbVX4tYuqjIyFZgWRpDqWqtQdmMC1b_gZNhXcOJqrqJ-5DXbu1EiUSz-kSPazuq3yx9irBpn1R0SwfECSBGogJS4TnYck-C1nIDxIP3mawp6SK3UXcojHCcJXiF_U" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;This is what the formula looks like:&lt;p&gt;&lt;/p&gt;&lt;p&gt;= Table.SelectRows(#"Reordered Columns", each &lt;span style="background-color: #fcff01;"&gt;[createddate] &amp;gt;= RangeStart and [createddate] &amp;lt; RangeEnd&lt;/span&gt;)&lt;/p&gt;&lt;p&gt;The next step is to setup the incremental refresh.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/a/AVvXsEh164rI80PziLRrjbesbTQ7YUjRuJbxjd18OvEs_rr9r8jMITzro7HdDhS5s7-Wz6cTzMip61JKIh8zjKgJ4CAVSNL0mS3QHfq-6Yx2NzOXL0HRXG_6Q42K8Shwfh7iPvNZmUIFVJ8OVhcHUlsO2_27g09NomtOAaG39X4-u4kUx4n272p-z2U" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img alt="" data-original-height="1230" data-original-width="1422" height="346" src="https://blogger.googleusercontent.com/img/a/AVvXsEh164rI80PziLRrjbesbTQ7YUjRuJbxjd18OvEs_rr9r8jMITzro7HdDhS5s7-Wz6cTzMip61JKIh8zjKgJ4CAVSNL0mS3QHfq-6Yx2NzOXL0HRXG_6Q42K8Shwfh7iPvNZmUIFVJ8OVhcHUlsO2_27g09NomtOAaG39X4-u4kUx4n272p-z2U=w400-h346" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/a/AVvXsEjtabB5lep9DXKRTcTREvw7hXJiap8sWt6wXR5WS3RGOMONwJZFNOZCmi3913fUal0ImdLsso7IBZLSFCS_npGUlAOgoaznYdmpmkIoEBZHjmYtbpEvGlobTYx7qhXYLvtyMoNhKYcsefRCRizevMp0aRAn158jHEj-lAfMlyIxBJlL9OVrYsU" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img alt="" data-original-height="190" data-original-width="1407" height="86" src="https://blogger.googleusercontent.com/img/a/AVvXsEjtabB5lep9DXKRTcTREvw7hXJiap8sWt6wXR5WS3RGOMONwJZFNOZCmi3913fUal0ImdLsso7IBZLSFCS_npGUlAOgoaznYdmpmkIoEBZHjmYtbpEvGlobTYx7qhXYLvtyMoNhKYcsefRCRizevMp0aRAn158jHEj-lAfMlyIxBJlL9OVrYsU=w640-h86" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;p&gt;For this example, I am using Archive data set to &lt;b&gt;6 months&lt;/b&gt; and Incrementally refresh data &lt;b&gt;starting 3 months&lt;/b&gt; before refresh date. This will make it easier for me to illustrate the way incremental refresh works. You will likely use very different values in your production datasets. Take note of the fact that I have set the "detect data changes" option. This allows you to fine tune the incremental refresh even more (and a setting I think you should definitely use). Instead of refreshing all the partitions in the "Incremental Refresh" period, only those partitions that have changes are refreshed. But how does PowerBi know which partitions changed? You use a field that is updated anytime a record is updated (an audit date column). Typically in most systems this is a field called &lt;b&gt;LastModifiedDate.&lt;/b&gt;&amp;nbsp;PowerBi, keeps track of the max value of this field for each Incremental Refresh partition. The next time the dataset is refreshed, only those partitions are reloaded where the source data returns a higher LastModifiedDate than the one PowerBi captured the last time it ran.&amp;nbsp;&lt;b&gt;SalesForce note&lt;/b&gt;: you should use the&amp;nbsp;&lt;b&gt;SysModStamp&lt;/b&gt;&amp;nbsp;column instead of the&amp;nbsp;&lt;b&gt;LastModifiedDate&lt;/b&gt;&amp;nbsp;column, as even backend process changes will update the&amp;nbsp;&lt;b&gt;SysModStamp&lt;/b&gt;&amp;nbsp;column, where as LastModifedDate is typically only updated by user based changes.&lt;/p&gt;&lt;p&gt;With the settings as defined above (3 months of incremental refresh and another 3 months of archived data, for a total of 6 months of data), on the very first refresh in PowerBi.com, we will see 3 + (3*2) queries getting fired off (3 for the archived months and 6 for incremental refresh months). The reason you see the additional set of queries for the incremental refresh is that PowerBi will send 2 queries per partition (in this case its by month). These queries will look like this:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;select max("systemmodstamp") as "C1" from&amp;nbsp; (&amp;nbsp; &amp;nbsp; &amp;nbsp;select "systemmodstamp"&amp;nbsp; &amp;nbsp; &amp;nbsp;from account&amp;nbsp; &amp;nbsp; &amp;nbsp;where "createddate" &amp;gt;= timestamp '2022-01-01 00:00:00' and "createddate" &amp;lt; timestamp '2022-02-01 00:00:00'&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;) as "ITBL"&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;select "id",&amp;nbsp; &amp;nbsp; &amp;nbsp;"name",&amp;nbsp; &amp;nbsp; &amp;nbsp;"isdeleted",&amp;nbsp; &amp;nbsp; &amp;nbsp;"createddate",&amp;nbsp; &amp;nbsp; &amp;nbsp;"systemmodstamp" from account where "createddate" &amp;gt;= timestamp '2022-01-01 00:00:00' and "createddate" &amp;lt; timestamp '2022-02-01 00:00:00'&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;The 1st query is on the "detect data changes" column (&lt;b&gt;sysmodstamp&lt;/b&gt;) and gets the max value for that partition. The 2nd query gets the data for that partition. After this first refresh in PowerBi.com, all 6 months of data are loaded into the dataset.&lt;/p&gt;&lt;p&gt;Now on every subsequent refresh, PowerBi will first send similar queries as this for each partition that is part of "Incremental Refresh". In our case it will run the queries for the months of April, May, June.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;select max("systemmodstamp") as "C1" from&amp;nbsp; (&amp;nbsp; &amp;nbsp; &amp;nbsp;select "systemmodstamp"&amp;nbsp; &amp;nbsp; &amp;nbsp;from account&amp;nbsp; &amp;nbsp; &amp;nbsp;where "createddate" &amp;gt;= timestamp '2022-04-01 00:00:00' and "createddate" &amp;lt; timestamp '2022-05-01 00:00:00'&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;) as "ITBL"&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;PowerBi will then compare these max values to the previous max values it retrieved. PowerBi will only refresh those partitions for which the new max values are different from the previous max values on the detect-changes-column. By doing this, PowerBi can be even more efficient about which partitions it is reloading. If you had not used the detect-data-changes option, then for every subsequent refresh, PowerBi would reload all 3 "incremental refresh" partitions.&lt;/p&gt;&lt;p&gt;Now lets get back to the data we were loading. Initially this data was (I have added the partition each record would be loaded into, in this table). Lets assume this occurred on &lt;b&gt;6/3/2022&lt;/b&gt;&lt;/p&gt;&lt;table border="1" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse: collapse; border: none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 0in 5.4pt 0in 5.4pt; mso-yfti-tbllook: 1184;"&gt;
 &lt;tbody&gt;&lt;tr&gt;
  &lt;td style="border: 1pt solid windowtext; mso-border-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 22.25pt;" valign="top" width="30"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;&lt;b&gt;Id&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-left: none; border: 1pt solid windowtext; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 63pt;" valign="top" width="84"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;&lt;b&gt;Name&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-left: none; border: 1pt solid windowtext; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 76.5pt;" valign="top" width="102"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;&lt;b&gt;Created
  Date&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-left: none; border: 1pt solid windowtext; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 99pt;" valign="top" width="132"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;&lt;b&gt;Last
  Modified Date&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-left: none; border: 1pt solid windowtext; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 99pt;" valign="top" width="132"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;&lt;b&gt;Partition&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
  &lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
  &lt;td style="border-top: none; border: 1pt solid windowtext; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 22.25pt;" valign="top" width="30"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;1&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 63pt;" valign="top" width="84"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;Microsoft&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 76.5pt;" valign="top" width="102"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;2022-01-01&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 99pt;" valign="top" width="132"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;2022-01-02&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 99pt;" valign="top" width="132"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;January
  (archived)&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
  &lt;td style="border-top: none; border: 1pt solid windowtext; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 22.25pt;" valign="top" width="30"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;2&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 63pt;" valign="top" width="84"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;Sales Force&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 76.5pt;" valign="top" width="102"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;2022-02-01&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 99pt;" valign="top" width="132"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;2022-02-02&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 99pt;" valign="top" width="132"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;February
  (archived)&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
  &lt;td style="border-top: none; border: 1pt solid windowtext; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 22.25pt;" valign="top" width="30"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;3&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 63pt;" valign="top" width="84"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;Hitachi&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 76.5pt;" valign="top" width="102"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;2022-03-01&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 99pt;" valign="top" width="132"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;2022-03-01&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 99pt;" valign="top" width="132"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;March
  (archived)&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
  &lt;td style="border-top: none; border: 1pt solid windowtext; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 22.25pt;" valign="top" width="30"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;4&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 63pt;" valign="top" width="84"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;NCM&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 76.5pt;" valign="top" width="102"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;2022-04-01&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 99pt;" valign="top" width="132"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;2022-04-05&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 99pt;" valign="top" width="132"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;Apr (Incr.
  Refresh)&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
  &lt;td style="border-top: none; border: 1pt solid windowtext; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 22.25pt;" valign="top" width="30"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;5&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 63pt;" valign="top" width="84"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;Tesla&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 76.5pt;" valign="top" width="102"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;2022-05-01&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 99pt;" valign="top" width="132"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;2022-06-03&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 99pt;" valign="top" width="132"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;May (Incr.
  Refresh)&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
 &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Lets assume the following changes happened on the &lt;b&gt;next day&lt;/b&gt; (&lt;b&gt;6/4/2022&lt;/b&gt;)&lt;/p&gt;&lt;table border="1" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse: collapse; border: none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 0in 5.4pt 0in 5.4pt; mso-yfti-tbllook: 1184;"&gt;
 &lt;tbody&gt;&lt;tr&gt;
  &lt;td style="border: 1pt solid windowtext; mso-border-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 22.25pt;" valign="top" width="30"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;&lt;b&gt;Id&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-left: none; border: 1pt solid windowtext; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 63pt;" valign="top" width="84"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;&lt;b&gt;Name&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-left: none; border: 1pt solid windowtext; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 76.5pt;" valign="top" width="102"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;&lt;b&gt;Created
  Date&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-left: none; border: 1pt solid windowtext; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 99pt;" valign="top" width="132"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;&lt;b&gt;Last
  Modified Date&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-left: none; border: 1pt solid windowtext; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 99pt;" valign="top" width="132"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;&lt;b&gt;Partition&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
  &lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
  &lt;td style="border-top: none; border: 1pt solid windowtext; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 22.25pt;" valign="top" width="30"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;1&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 63pt;" valign="top" width="84"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;Microsoft
  (deleted)&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 76.5pt;" valign="top" width="102"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;2022-01-01&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 99pt;" valign="top" width="132"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;2022-06-04&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 99pt;" valign="top" width="132"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;January
  (&lt;span style="background-color: #fcff01;"&gt;archived&lt;/span&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
  &lt;td style="border-top: none; border: 1pt solid windowtext; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 22.25pt;" valign="top" width="30"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;2&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 63pt;" valign="top" width="84"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;SalesForce
  (SFDC)&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 76.5pt;" valign="top" width="102"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;2022-02-01&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 99pt;" valign="top" width="132"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;2022-02-02&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 99pt;" valign="top" width="132"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;February
  (&lt;span style="background-color: #fcff01;"&gt;archived&lt;/span&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
  &lt;td style="border-top: none; border: 1pt solid windowtext; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 22.25pt;" valign="top" width="30"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;3&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 63pt;" valign="top" width="84"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;Hitachi&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 76.5pt;" valign="top" width="102"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;2022-03-01&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 99pt;" valign="top" width="132"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;2022-03-01&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 99pt;" valign="top" width="132"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;March
  (&lt;span style="background-color: #fcff01;"&gt;archived&lt;/span&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
  &lt;td style="border-top: none; border: 1pt solid windowtext; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 22.25pt;" valign="top" width="30"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;4&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 63pt;" valign="top" width="84"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;National
  CineMedia&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 76.5pt;" valign="top" width="102"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;2022-04-01&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 99pt;" valign="top" width="132"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;2022-06-04&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 99pt;" valign="top" width="132"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;Apr (&lt;span style="background-color: #fcff01;"&gt;Incr.
  Refresh&lt;/span&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
  &lt;td style="border-top: none; border: 1pt solid windowtext; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 22.25pt;" valign="top" width="30"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;5&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 63pt;" valign="top" width="84"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;Tesla/Twitter&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 76.5pt;" valign="top" width="102"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;2022-05-01&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 99pt;" valign="top" width="132"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;2022-06-04&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 99pt;" valign="top" width="132"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;May (&lt;span style="background-color: #fcff01;"&gt;Incr.
  Refresh&lt;/span&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
  &lt;td style="border-top: none; border: 1pt solid windowtext; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 22.25pt;" valign="top" width="30"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;6&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 63pt;" valign="top" width="84"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;Disney&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 76.5pt;" valign="top" width="102"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;2022-06-04&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 99pt;" valign="top" width="132"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;2022-06-04&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 99pt;" valign="top" width="132"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;June (&lt;span style="background-color: #fcff01;"&gt;Incr.
  Refresh&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
 &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;In the above case, because rows 1 and 2 are in archived partitions they will not be reloaded. This can be a problem if you support soft-deletes, as now your report potentially has 1 additional record than the source (as row 1 was soft-deleted in the source system). The name change from row 2 will also not show up in your report. The only changes that will be loaded are the changes to the rows 4, 5 and 6.&lt;/p&gt;&lt;p&gt;Finally, when July rolls around, the January partition will be dropped entirely from the dataset and a July Partition will be added.&lt;/p&gt;&lt;table border="1" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse: collapse; border: none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 0in 5.4pt 0in 5.4pt; mso-yfti-tbllook: 1184;"&gt;
 &lt;tbody&gt;&lt;tr&gt;
  &lt;td style="border: 1pt solid windowtext; mso-border-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 22.25pt;" valign="top" width="30"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;&lt;b&gt;Id&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-left: none; border: 1pt solid windowtext; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 70.45pt;" valign="top" width="94"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;&lt;b&gt;Name&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-left: none; border: 1pt solid windowtext; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 69.05pt;" valign="top" width="92"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;&lt;b&gt;Created
  Date&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-left: none; border: 1pt solid windowtext; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 76.5pt;" valign="top" width="102"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;&lt;b&gt;Last
  Modified Date&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-left: none; border: 1pt solid windowtext; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 121.5pt;" valign="top" width="162"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;&lt;b&gt;Partition&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
  &lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
  &lt;td style="border-top: none; border: 1pt solid windowtext; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 22.25pt;" valign="top" width="30"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;&lt;s&gt;1&lt;o:p&gt;&lt;/o:p&gt;&lt;/s&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 70.45pt;" valign="top" width="94"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;&lt;s&gt;Microsoft
  (deleted)&lt;o:p&gt;&lt;/o:p&gt;&lt;/s&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 69.05pt;" valign="top" width="92"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;&lt;s&gt;2022-01-01&lt;o:p&gt;&lt;/o:p&gt;&lt;/s&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 76.5pt;" valign="top" width="102"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;&lt;s&gt;2022-06-04&lt;o:p&gt;&lt;/o:p&gt;&lt;/s&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 121.5pt;" valign="top" width="162"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;&lt;s&gt;January
  (archived)&lt;o:p&gt;&lt;/o:p&gt;&lt;/s&gt;&lt;/p&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;&lt;span style="background: yellow; mso-highlight: yellow;"&gt;Partition is dropped&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
  &lt;td style="border-top: none; border: 1pt solid windowtext; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 22.25pt;" valign="top" width="30"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;2&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 70.45pt;" valign="top" width="94"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;SalesForce
  (SFDC)&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 69.05pt;" valign="top" width="92"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;2022-02-01&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 76.5pt;" valign="top" width="102"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;2022-02-02&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 121.5pt;" valign="top" width="162"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;February
  (archived)&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
  &lt;td style="border-top: none; border: 1pt solid windowtext; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 22.25pt;" valign="top" width="30"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;3&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 70.45pt;" valign="top" width="94"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;Hitachi&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 69.05pt;" valign="top" width="92"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;2022-03-01&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 76.5pt;" valign="top" width="102"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;2022-03-01&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 121.5pt;" valign="top" width="162"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;March
  (archived)&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
  &lt;td style="border-top: none; border: 1pt solid windowtext; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 22.25pt;" valign="top" width="30"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;4&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 70.45pt;" valign="top" width="94"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;National
  CineMedia&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 69.05pt;" valign="top" width="92"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;2022-04-01&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 76.5pt;" valign="top" width="102"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;2022-06-04&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 121.5pt;" valign="top" width="162"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;Apr (&lt;span style="background-color: #ead1dc;"&gt;archived&lt;/span&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;&lt;span style="background: yellow; mso-highlight: yellow;"&gt;Partition type changed&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
  &lt;td style="border-top: none; border: 1pt solid windowtext; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 22.25pt;" valign="top" width="30"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;5&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 70.45pt;" valign="top" width="94"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;Tesla/Twitter&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 69.05pt;" valign="top" width="92"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;2022-05-01&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 76.5pt;" valign="top" width="102"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;2022-06-04&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 121.5pt;" valign="top" width="162"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;May (Incr.
  Refresh)&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
  &lt;td style="border-top: none; border: 1pt solid windowtext; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 22.25pt;" valign="top" width="30"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;6&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 70.45pt;" valign="top" width="94"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;Disney&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 69.05pt;" valign="top" width="92"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;2022-06-04&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 76.5pt;" valign="top" width="102"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;2022-06-04&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 121.5pt;" valign="top" width="162"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;June (Incr.
  Refresh&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
  &lt;td style="border-top: none; border: 1pt solid windowtext; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 22.25pt;" valign="top" width="30"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;7&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 70.45pt;" valign="top" width="94"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;Paramount
  Studios&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 69.05pt;" valign="top" width="92"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;2022-07-04&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 76.5pt;" valign="top" width="102"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;2022-07-04&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt; width: 121.5pt;" valign="top" width="162"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;July (&lt;span style="background-color: #ead1dc;"&gt;Incr.
  Refresh&lt;/span&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;&lt;span style="background: yellow; mso-highlight: yellow;"&gt;Partition is added&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
 &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;b&gt;Incremental Refresh and CRM data:&lt;/b&gt;&lt;/p&gt;&lt;p&gt;When you use "CreatedDate" as your partition field, one thing you have to think about is what period of data you need refreshed. Imagine if you set up your Incremental Refresh to be 12 months and Archive period to be 24 months. On an entity like "Account", sometimes accounts may get created and may not get sold to or touched for a long time. So, if the account was created more than 12 months ago, then when it gets finally used and if any changes were to occur on that entity, you would not see those changes. In the above example, Microsoft is no longer even in the dataset, as its created date is outside the archival range. If Microsoft had an order on 2022-06-04, you would see the order's details, but the order would not have the account details, as its no longer being loaded.&lt;/p&gt;&lt;p&gt;For this reason, one needs to know what is the maximum time period between last-modified on an entity and its created date. You would then have to setup your refresh settings based on the usage statistics of the entities at your company. This is also one of the biggest reasons that it is very hard to setup an incremental refresh with CRM data.&lt;/p&gt;&lt;p&gt;When it comes to Order/Opportunity data, you have a little more lee-way. Typically one should use a field like "Order-Date" and not something like "Shipped-Date", as the latter could change. Also, you could institute a rule that states that orders/opportunities that are older than x months should be closed and a new one created.&lt;/p&gt;&lt;p&gt;&lt;b&gt;What would happen if you use a partition column that might change&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Lets take the following data as an example:&lt;/p&gt;&lt;table border="1" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse: collapse; border: none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 0in 5.4pt 0in 5.4pt; mso-yfti-tbllook: 1184;"&gt;
 &lt;tbody&gt;&lt;tr&gt;
  &lt;td style="border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 22.25pt;" valign="top" width="30"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;&lt;b&gt;Id&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 63.0pt;" valign="top" width="84"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;&lt;b&gt;Order Name&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 76.5pt;" valign="top" width="102"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;&lt;b&gt;Order Date&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 99.0pt;" valign="top" width="132"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;&lt;b&gt;Last
  Modified Date&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 99.0pt;" valign="top" width="132"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;&lt;b&gt;Order
  Value&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 99.0pt;" valign="top" width="132"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;&lt;b&gt;Partition&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
  &lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
  &lt;td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 22.25pt;" valign="top" width="30"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;1&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 63.0pt;" valign="top" width="84"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;My Big Order&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 76.5pt;" valign="top" width="102"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;2021-01-01&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 99.0pt;" valign="top" width="132"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;2022-01-02&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 99.0pt;" valign="top" width="132"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;$1 million&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 99.0pt;" valign="top" width="132"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;January&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
 &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;If we were to have a refresh setting where the partition field were set to "Order Date" and where we incrementally refresh data in the last 12 months and archive another 12 months of data. The above order would have be in an "archived" partition. Now if the Order Date were to be changed to 2022-06-01:&lt;div&gt;&lt;table border="1" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse: collapse; border: none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 0in 5.4pt 0in 5.4pt; mso-yfti-tbllook: 1184;"&gt;
 &lt;tbody&gt;&lt;tr&gt;
  &lt;td style="border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 22.25pt;" valign="top" width="30"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;&lt;b&gt;Id&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 63.0pt;" valign="top" width="84"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;&lt;b&gt;Order Name&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 76.5pt;" valign="top" width="102"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;&lt;b&gt;Order Date&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 99.0pt;" valign="top" width="132"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;&lt;b&gt;Last
  Modified Date&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 99.0pt;" valign="top" width="132"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;&lt;b&gt;Order
  Value&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 99.0pt;" valign="top" width="132"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;&lt;b&gt;Partition&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;
  &lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
  &lt;td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 22.25pt;" valign="top" width="30"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;1&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 63.0pt;" valign="top" width="84"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;My Big Order&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 76.5pt;" valign="top" width="102"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;2022-06-01&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 99.0pt;" valign="top" width="132"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;2022-06-01&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 99.0pt;" valign="top" width="132"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;$1.5 million&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
  &lt;td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 99.0pt;" valign="top" width="132"&gt;
  &lt;p class="MsoNormal" style="line-height: normal; margin-bottom: 0in;"&gt;January&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
  &lt;/td&gt;
 &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;This same record would be loaded into the "Incremental Refresh" partition. So you would have 2 copies of the same order in your dataset and your order value would be over stated by $1 million. One could try and de-dup this data, but PowerBi is very inefficient at de-duping large record sets. Also, your algorithm would have to be smart, as you would want to keep the latest version of the order.&lt;br /&gt;&lt;p&gt;&lt;b&gt;Important things to remember:&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ol style="text-align: left;"&gt;&lt;li&gt;The incremental refresh column must be a date/time column. You can use an integer column but it needs to be of type yyyymmdd (so you cant use any arbitrary integer column).&lt;/li&gt;&lt;li&gt;Hard deletes cannot be handled by incremental refresh. You can use it only if your entity implements soft-deletes (i.e., uses a flag to denote a delete). So if your system performs hard-deletes, then you are SOL!&lt;/li&gt;&lt;li&gt;Make sure that query folding is supported by your data-source and that it is occurring, otherwise, you will end up pulling multiple copies of the data from the data-source and end up considerably slowing down your refresh and possibly inviting the wrath of your data-source administrators. (Don't ask me how I know!)&lt;br /&gt;&lt;a href="https://blogger.googleusercontent.com/img/a/AVvXsEg0C4fMJOmUWsG1m6YIhWSq5bLk67RRIZTh6J204-85mgaUNMaVyUsg8IOHJP-BAiK1INtil4vqcj3TrYXrtlNdCgiEtn2XqnkIQon_4AjVGrdFVS8isJ6pTTbMN5tFQbLRSmfM9iSNKF7E3FsdxYN9OiwL6Z5C3cX_5V5NuwG_sVXczwZmE84" style="margin-left: 1em; margin-right: 1em; text-align: center;"&gt;&lt;img alt="" data-original-height="56" data-original-width="569" src="https://blogger.googleusercontent.com/img/a/AVvXsEg0C4fMJOmUWsG1m6YIhWSq5bLk67RRIZTh6J204-85mgaUNMaVyUsg8IOHJP-BAiK1INtil4vqcj3TrYXrtlNdCgiEtn2XqnkIQon_4AjVGrdFVS8isJ6pTTbMN5tFQbLRSmfM9iSNKF7E3FsdxYN9OiwL6Z5C3cX_5V5NuwG_sVXczwZmE84=s16000" /&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;b&gt;Some Tips and Notes:&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ol style="text-align: left;"&gt;&lt;li&gt;If you implement incremental refresh in your dataset, then know that you will not be able to download your PBIX file from powerbi.com. Plan for this ahead of time. Another important consideration is that if you implement incremental refresh in your dataset and you need to make model changes, then the partitions will be deleted and the entire data reloaded. This is another reason to not implement incremental refresh directly in your dataset.&lt;/li&gt;&lt;li&gt;If you do need to implement incremental refresh in your dataset, then consider:&lt;/li&gt;&lt;ol&gt;&lt;li&gt;Storing your PBIX file in a shared location and have an agreed upon method for your team to work on that file. I highly recommend using Sharepoint for this.&lt;/li&gt;&lt;li&gt;You can publish your changes using a tool like "ALM Toolkit" This will not cause your dataset to loose its changes. You can also use the deployment pipeline to push your changes in PowerBi and again this will not delete your existing partitions.&lt;/li&gt;&lt;/ol&gt;&lt;li&gt;Often times you need to implement incremental refresh because your source is very slow. In this case, you could implement the incremental refresh as a dataflow. You would pull the dataflow into your dataset. In this case, you may not have to implement incremental refresh in your dataset, as the data may load fast enough from the data-flow into your dataset.&lt;/li&gt;&lt;li&gt;PowerBi will setup a partitions based on your incremental refresh settings. When powerbi refreshes data, it is refreshing the entire partition (i.e., it will delete the partition and reload the data from the data-source). So you need to carefully consider the incremental refresh settings and figure out how many rows on average might fall in a partition. If you partition by year and each year has a billion rows, then you might want to consider partitioning by month.&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;/p&gt;&lt;/div&gt;</content><link href="http://blog.aggregatedintelligence.com/feeds/3134250580630170194/comments/default" rel="replies" title="Post Comments" type="application/atom+xml"/><link href="http://www.blogger.com/comment/fullpage/post/7656888/3134250580630170194?isPopup=true" rel="replies" title="0 Comments" type="text/html"/><link href="http://www.blogger.com/feeds/7656888/posts/default/3134250580630170194" rel="edit" type="application/atom+xml"/><link href="http://www.blogger.com/feeds/7656888/posts/default/3134250580630170194" rel="self" type="application/atom+xml"/><link href="http://blog.aggregatedintelligence.com/2022/06/understanding-powerbi-incremental.html" rel="alternate" title="Understanding PowerBi Incremental Refresh with Detect Changes" type="text/html"/><author><name>Raj Rao</name><uri>http://www.blogger.com/profile/02773005045522319448</uri><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/a/AVvXsEiTftW4ZLK73A8ypBPz5qoDAxICp9nVWIc_XDe_4d-ULpPQjHBhFZd2wpdbVX4tYuqjIyFZgWRpDqWqtQdmMC1b_gZNhXcOJqrqJ-5DXbu1EiUSz-kSPazuq3yx9irBpn1R0SwfECSBGogJS4TnYck-C1nIDxIP3mawp6SK3UXcojHCcJXiF_U=s72-c" width="72"/><thr:total>0</thr:total></entry></feed>