<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:g-custom="http://base.google.com/cns/1.0" xmlns:media="http://search.yahoo.com/mrss/" version="2.0">
  <channel>
    <title>cbcc52ea</title>
    <link>https://www.demanddata.io</link>
    <description />
    <atom:link href="https://www.demanddata.io/feed/rss2" type="application/rss+xml" rel="self" />
    <image>
      <title />
      <url>https://irp-cdn.multiscreensite.com/81f1173d/dms3rep/multi/Analyst_Advisory_Bad_Ass_Content.png</url>
      <link>https://www.demanddata.io</link>
    </image>
    <item>
      <title>Alter Snowflake with Dynamic SQL and Python</title>
      <link>https://www.demanddata.io/alter-snowflake-with-dynamic-sql-and-python</link>
      <description />
      <content:encoded>&lt;h3&gt;&#xD;
  
                  
         Adding Python to Alteryx can make your Snowflake dreams come true
        
                &#xD;
&lt;/h3&gt;&#xD;
&lt;div data-rss-type="text"&gt;&#xD;
  
                  
         Anyone who follows me knows how much I love the combination of Alteryx and Snowflake.  Alteryx provides a logic layer that enables any analyst to manipulate data and Snowflake provides the scale needed to get some amazing insights across large data sets.  However, I have found there were always a few things missing.  The Alteryx In-DB tools, while comprehensive, cannot do everything.  There are some gaps (most notably - ahem -
         
                  &#xD;
  &lt;b&gt;&#xD;
    &lt;i&gt;&#xD;
      
                      
           any Alteryx product managers reading this
          
                    &#xD;
    &lt;/i&gt;&#xD;
  &lt;/b&gt;&#xD;
  
                  
         - simple Pivot or Unpivot tools in-DB).  There is also a lot of functionality like changing warehouses, schemas or databases that cannot be easily done from within Alteryx.
        
                &#xD;
&lt;/div&gt;&#xD;
&lt;div data-rss-type="text"&gt;&#xD;
  &lt;h3&gt;&#xD;
    &lt;span&gt;&#xD;
      
                      
           Enter the python tool
          
                    &#xD;
    &lt;/span&gt;&#xD;
  &lt;/h3&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div data-rss-type="text"&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
          Now
          
                    &#xD;
    &lt;span&gt;&#xD;
      &lt;span&gt;&#xD;
        
                        
            ,
           
                      &#xD;
      &lt;/span&gt;&#xD;
    &lt;/span&gt;&#xD;
    &lt;span&gt;&#xD;
      
                      
           I am more business and less code
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
          .  I muddle through code when I have to
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           ,
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
          and I finally decided this was something I had to do.  I had to be able to use a mix of custom SQL with the native in-db tools on
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           S
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
          nowflake.  I was pleasantly surprised that
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           this was WAY easier th
          
                    &#xD;
    &lt;/span&gt;&#xD;
    &lt;span&gt;&#xD;
      
                      
           a
          
                    &#xD;
    &lt;/span&gt;&#xD;
    &lt;span&gt;&#xD;
      
                      
           n I expected
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
          with building some custom macros that take advantage of the
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           S
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
          nowflake -
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           P
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
          ython connectors.  
         
                  &#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;br/&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
          To Start with
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           , t
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
          he newer versions of Alteryx with integrated jupyter notebooks help a lot!   
         
                  &#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;br/&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
          When you drop a
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           P
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
          ython tool on to the Alteryx canvas
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           ,
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
          this notebook will open up.  You can enter in your code (or for us non-coders - find the code on stack overflow and paste it in :)
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           )
          
                    &#xD;
    &lt;/span&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;span&gt;&#xD;
      &lt;span&gt;&#xD;
        
                        
            ﻿
           
                      &#xD;
      &lt;/span&gt;&#xD;
    &lt;/span&gt;&#xD;
  &lt;/p&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div&gt;&#xD;
  &lt;a&gt;&#xD;
    &lt;img src="https://irp-cdn.multiscreensite.com/81f1173d/dms3rep/multi/Python+in+Alteryx-window1.png" alt=""/&gt;&#xD;
  &lt;/a&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div data-rss-type="text"&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
          This code loads the packages that are required to execute
          
                    &#xD;
    &lt;span&gt;&#xD;
      &lt;span&gt;&#xD;
        
                        
            code
           
                      &#xD;
      &lt;/span&gt;&#xD;
    &lt;/span&gt;&#xD;
    
                    
          against
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           S
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
          nowflake.  As a note, you may get an error when loading these.  If you do,  try to run Alteryx as an administrator on your machine.  You also may get success by adding
          
                    &#xD;
    &lt;code&gt;&#xD;
    &lt;/code&gt;&#xD;
    &lt;code&gt;&#xD;
      
                      
           install_type=User
          
                    &#xD;
    &lt;/code&gt;&#xD;
    
                    
           
          
                    &#xD;
    &lt;code&gt;&#xD;
      
                      
           to your command (package = "snowflake-sqlalchemy", install_type=User
          
                    &#xD;
    &lt;/code&gt;&#xD;
    &lt;code&gt;&#xD;
      
                      
           ).
          
                    &#xD;
    &lt;/code&gt;&#xD;
    &lt;code&gt;&#xD;
    &lt;/code&gt;&#xD;
    &lt;code&gt;&#xD;
    &lt;/code&gt;&#xD;
    &lt;code&gt;&#xD;
      
                      
           Right clicking on Alteryx designer and running as administrator is what worked for me.
          
                    &#xD;
    &lt;/code&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;br/&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;span&gt;&#xD;
      &lt;span&gt;&#xD;
        
                        
            ﻿
           
                      &#xD;
      &lt;/span&gt;&#xD;
    &lt;/span&gt;&#xD;
    
                    
          from ayx import Package
         
                  &#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
          from ayx import Alteryx
         
                  &#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
          Alteryx.installPackages(package="snowflake-connector-python")
         
                  &#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
          Alteryx.installPackages(package="snowflake-sqlalchemy")
         
                  &#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;br/&gt;&#xD;
  &lt;/p&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div data-rss-type="text"&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
          I am using the standard code samples from snowflake on how to set up your connections
          
                    &#xD;
    &lt;span&gt;&#xD;
      &lt;span&gt;&#xD;
        
                        
            ;
           
                      &#xD;
      &lt;/span&gt;&#xD;
    &lt;/span&gt;&#xD;
    &lt;span&gt;&#xD;
      
                      
           With one little trick :)
          
                    &#xD;
    &lt;/span&gt;&#xD;
    &lt;span&gt;&#xD;
      
                      
           .
          
                    &#xD;
    &lt;/span&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;br/&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
          As your see
          
                    &#xD;
    &lt;span&gt;&#xD;
      &lt;span&gt;&#xD;
        
                        
            ,
           
                      &#xD;
      &lt;/span&gt;&#xD;
    &lt;/span&gt;&#xD;
    
                    
          we are creating a variable object
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           ,
          
                    &#xD;
    &lt;/span&gt;&#xD;
    &lt;span&gt;&#xD;
      &lt;span&gt;&#xD;
        
                        
            inputs
           
                      &#xD;
      &lt;/span&gt;&#xD;
    &lt;/span&gt;&#xD;
    &lt;span&gt;&#xD;
      &lt;span&gt;&#xD;
        
                        
            ,
           
                      &#xD;
      &lt;/span&gt;&#xD;
    &lt;/span&gt;&#xD;
    
                    
          which will read the data stream #1 that I drag into my input tool.
          
                    &#xD;
    &lt;span&gt;&#xD;
      &lt;span&gt;&#xD;
      &lt;/span&gt;&#xD;
    &lt;/span&gt;&#xD;
    
                    
           This data
          
                    &#xD;
    &lt;span&gt;&#xD;
      &lt;span&gt;&#xD;
      &lt;/span&gt;&#xD;
    &lt;/span&gt;&#xD;
    
                    
          stream will contain the basic information about the
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           S
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
          nowflake account.  We can set these values using interface tools as part of a macro or analytic app. 
         
                  &#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;br/&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
          The code
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           sfUser = (inputs['username'].values[0])
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
          sets that variable to the first row of the column 'username'.     
         
                  &#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;br/&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
          The rest below is just the standard
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           S
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
          nowflake connector syntax.  You will know it is working as we have requested
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           S
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
          nowflake to send the current version (which you will see in your
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           P
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
          ython tool or in your
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           A
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
          lteryx messages when you run this in a workflow
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           .
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
          )
          
                    &#xD;
    &lt;br/&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;br/&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;br/&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
          from ayx import Alteryx
         
                  &#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
          import snowflake as sf
         
                  &#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;br/&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;br/&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
          inputs = Alteryx.read("#1")
         
                  &#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;br/&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
          sfUser = (inputs['username'].values[0]) 
         
                  &#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
          sfAccount = (inputs['account'].values[0])
         
                  &#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
          sfPswd = (inputs['password'].values[0])
         
                  &#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;br/&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
          from sqlalchemy import create_engine
         
                  &#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
          engine = create_engine(
         
                  &#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
           'snowflake://{user}:{password}@{account}/'.format(
         
                  &#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
           user = sfUser,
         
                  &#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
           password = sfPswd,
         
                  &#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
           account = sfAccount,
         
                  &#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
           )
         
                  &#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
          )
         
                  &#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
           
         
                  &#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
          con = sf.connector.connect(
         
                  &#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
           user = sfUser,
         
                  &#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
           password = sfPswd,
         
                  &#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
           account = sfAccount,
         
                  &#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
          )
         
                  &#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;br/&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
          sfq = con.cursor()
         
                  &#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;br/&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;br/&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
          inputs2 = Alteryx.read("#2")
         
                  &#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;br/&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
          for index, row in inputs2.head().iterrows():
         
                  &#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
            sfq.execute(row['SQL'])
         
                  &#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
            print(row['SQL']+" executed")
         
                  &#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
             
         
                  &#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
          con.close()
         
                  &#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
          engine.dispose()
         
                  &#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;span&gt;&#xD;
      &lt;span&gt;&#xD;
        
                        
            ﻿
           
                      &#xD;
      &lt;/span&gt;&#xD;
    &lt;/span&gt;&#xD;
  &lt;/p&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div data-rss-type="text"&gt;&#xD;
  &lt;h3&gt;&#xD;
    &lt;span&gt;&#xD;
      
                      
           Now for the dynamic part
          
                    &#xD;
    &lt;/span&gt;&#xD;
  &lt;/h3&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div data-rss-type="text"&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
          What we are doing here is creating a second box for the SQL script we want to run. 
         
                  &#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
          The command sfg.execute('WILL EXECUTE THIS SQL SCRIPT').  This problem with this is it only accepts
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           one
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
          statement at a time.
         
                  &#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;br/&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
          That said,
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
            
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
          we can read in multiple SQL statements and use a very simple loop
          
                    &#xD;
    &lt;span&gt;&#xD;
      &lt;span&gt;&#xD;
        
                        
            ;
           
                      &#xD;
      &lt;/span&gt;&#xD;
    &lt;/span&gt;&#xD;
    
                    
          to loop through each statement and execute it.
         
                  &#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;br/&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
          inputs2 = Alteryx.read("#2")
         
                  &#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;br/&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
          for index, row in inputs2.head().iterrows():
         
                  &#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
            sfq.execute(row['SQL'])
         
                  &#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
            print(row['SQL']+" executed")
         
                  &#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
             
         
                  &#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
          con.close()
         
                  &#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
          engine.dispose()
         
                  &#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;br/&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
          This means we can input individual SQL statements and execute them in an Alteryx workflow
         
                  &#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;span&gt;&#xD;
      &lt;span&gt;&#xD;
        
                        
            ﻿
           
                      &#xD;
      &lt;/span&gt;&#xD;
    &lt;/span&gt;&#xD;
  &lt;/p&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div data-rss-type="text"&gt;&#xD;
  &lt;h3&gt;&#xD;
    &lt;span&gt;&#xD;
      
                      
           Thats a wrap!
          
                    &#xD;
    &lt;/span&gt;&#xD;
  &lt;/h3&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div&gt;&#xD;
  &lt;a&gt;&#xD;
    &lt;img src="https://irp-cdn.multiscreensite.com/81f1173d/dms3rep/multi/wrapping+it+up.png" alt=""/&gt;&#xD;
  &lt;/a&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div data-rss-type="text"&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
          Now
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           ,
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
          it
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           '
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
          s just a question of connecting a few interface tools.  I am splitting the SQL statement into rows using a
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           semicolon
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
          to mirror the effect of writing out a long SQL statement.  The input and output tools on the bottom are really just there to give this macro a seamless in-db feel.  We could very easily tweak the
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           P
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
          ython macro to return a
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           S
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
          nowflake select statement as a data
          
                    &#xD;
    &lt;span&gt;&#xD;
      &lt;span&gt;&#xD;
      &lt;/span&gt;&#xD;
    &lt;/span&gt;&#xD;
    
                    
          frame and have an output from the macro as well.  However, the purpose of this macro
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           i
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
          s to automate some administrative tasks in a workflow.  I can now have complete command of my
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           S
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
          nowflake environment from within Alteryx, and I can easily build up a suite of macros to deal with common tasks or execute anything remotely in
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           S
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
          nowflake from Alteryx!
          
                    &#xD;
    &lt;span&gt;&#xD;
      &lt;span&gt;&#xD;
        
                        
            ﻿
           
                      &#xD;
      &lt;/span&gt;&#xD;
    &lt;/span&gt;&#xD;
  &lt;/p&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div data-rss-type="text"&gt;&#xD;
  &lt;h3&gt;&#xD;
    &lt;span&gt;&#xD;
      
                      
           Now in Action!
          
                    &#xD;
    &lt;/span&gt;&#xD;
  &lt;/h3&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div&gt;&#xD;
  &lt;a&gt;&#xD;
    &lt;img src="https://irp-cdn.multiscreensite.com/81f1173d/dms3rep/multi/macro.png" alt=""/&gt;&#xD;
  &lt;/a&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div&gt;&#xD;
  &lt;a&gt;&#xD;
    &lt;img src="https://irp-cdn.multiscreensite.com/81f1173d/dms3rep/multi/its+done.png" alt=""/&gt;&#xD;
  &lt;/a&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div data-rss-type="text"&gt;&#xD;
  &lt;h3&gt;&#xD;
    &lt;span&gt;&#xD;
      
                      
           Full code below:
          
                    &#xD;
    &lt;/span&gt;&#xD;
  &lt;/h3&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div&gt;&#xD;
  &lt;a&gt;&#xD;
    &lt;img src="https://irp-cdn.multiscreensite.com/81f1173d/dms3rep/multi/full_code.png" alt=""/&gt;&#xD;
  &lt;/a&gt;&#xD;
&lt;/div&gt;</content:encoded>
      <pubDate>Thu, 17 Dec 2020 14:09:39 GMT</pubDate>
      <guid>https://www.demanddata.io/alter-snowflake-with-dynamic-sql-and-python</guid>
      <g-custom:tags type="string" />
    </item>
    <item>
      <title>Why You Need  Real Time Right Now</title>
      <link>https://www.demanddata.io/why-real-time-right-now</link>
      <description />
      <content:encoded>&lt;h3&gt;&#xD;
  
                  
         Time is the enemy of forecasting
        
                &#xD;
&lt;/h3&gt;&#xD;
&lt;div data-rss-type="text"&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
          In our previous post, we discussed why
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           d
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
          emand forecasting matters and how an accurate demand forecast can mathematically and quantitatively improve your service level and/or inventory levels (cost).  Now it is time to focus on the
          
                    &#xD;
    &lt;span&gt;&#xD;
      &lt;span&gt;&#xD;
      &lt;/span&gt;&#xD;
    &lt;/span&gt;&#xD;
    &lt;span&gt;&#xD;
      
                      
           biggest uncertainty of them all
          
                    &#xD;
    &lt;/span&gt;&#xD;
    &lt;span&gt;&#xD;
      
                      
           .
          
                    &#xD;
    &lt;/span&gt;&#xD;
    &lt;span&gt;&#xD;
      
                      
             Time.
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
             
         
                  &#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
          Advanced forecasting algorithms can help eliminate uncertainty through reducing variables that are “unknown” by understanding relationships at a scale that no human could comprehend.  This helps turn the seemingly “unknown” in to a “known”.  As we stated earlier, advances in math and cloud computing make finding these relationships much easier and can be computed almost instantaneously. However, the element of time is a tricky compounding factor.   Even
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           little unknowns become big over time as time compounds all errors
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
          and introduces more uncertainties.         
         
                  &#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
          The most certainty you have is in the precise moment you make an estimate.   
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           When you look ahead 1 day, 1 week or even 1-month (as most corporate S&amp;amp;OP) cycles still do – then you must start to rely less and less on facts and more and more on assumptions.
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
            Assumptions mean uncertainty and uncertainty means cost. 
         
                  &#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
          There are loads of examples of this. 
          
                    &#xD;
    &lt;span&gt;&#xD;
      &lt;span&gt;&#xD;
        
                        
            When I lived in Florida,
           
                      &#xD;
      &lt;/span&gt;&#xD;
    &lt;/span&gt;&#xD;
    
                    
          every September during hurricane season
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           ,
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
          we would get the dreaded cone of uncertainty any time a hurricane formed.  As below shows
          
                    &#xD;
    &lt;span&gt;&#xD;
      &lt;span&gt;&#xD;
        
                        
            ,
           
                      &#xD;
      &lt;/span&gt;&#xD;
    &lt;/span&gt;&#xD;
    
                    
          the further out you get,
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           the
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
          expected position gets wider.  By day 5 - the uncertainty stretched over 500 miles – hardly accurate enough to do any planning of significance
          
                    &#xD;
    &lt;span&gt;&#xD;
      &lt;span&gt;&#xD;
        
                        
            ﻿
           
                      &#xD;
      &lt;/span&gt;&#xD;
    &lt;/span&gt;&#xD;
    
                    
          .
          
                    &#xD;
    &lt;br/&gt;&#xD;
  &lt;/p&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div&gt;&#xD;
  &lt;img src="https://irp-cdn.multiscreensite.com/81f1173d/dms3rep/multi/hurricane-picture.png"/&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div data-rss-type="text"&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;span&gt;&#xD;
      
                      
           Would you wait 1 week for a forecast update on this?
          
                    &#xD;
    &lt;/span&gt;&#xD;
  &lt;/p&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div data-rss-type="text"&gt;&#xD;
  
                  
         The models that make up this track are changing all the time, based on hundreds of new factors like wind shear, temperature and pressure.  If you lived in Florida, you would not want to wait a week to have this forecast updated, right?  At this point the storm would have passed, 
         
                  &#xD;
  &lt;b&gt;&#xD;
    
                    
          so your only option would be to prepare (cost) or hope for the best (risk).
         
                  &#xD;
  &lt;/b&gt;&#xD;
  
                  
         Well this is exactly what happens in most companies.     An aggregate demand (say a weekly bucket) gets rolled into a
         
                  &#xD;
  &lt;b&gt;&#xD;
    
                    
          monthly forecast, which then gets discussed in an S&amp;amp;OP meeting (usually 2 – 3 weeks after the month has ended)
         
                  &#xD;
  &lt;/b&gt;&#xD;
  
                  
         .     The
         
                  &#xD;
  &lt;b&gt;&#xD;
    
                    
          downstream factories and suppliers then get wide ranges to plan against, which they ultimately fill with safety stock inventory
         
                  &#xD;
  &lt;/b&gt;&#xD;
  
                  
         or padded delivery dates. 
        
                &#xD;
&lt;/div&gt;&#xD;
&lt;div data-rss-type="text"&gt;&#xD;
  &lt;h3&gt;&#xD;
    &lt;span&gt;&#xD;
      
                      
           Enter Real time forecasting (instant ML)
          
                    &#xD;
    &lt;/span&gt;&#xD;
  &lt;/h3&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div data-rss-type="text"&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
          If you could look in real-time, everyday there are
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           hundreds of variables influencing your demand. 
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
            Conditions can change rapidly which requires models to be rebuilt based on live data (real sales, real stock availability, real weather conditions, promotions, pricing…. the list goes on).  We have shown that
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           ,
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
          w
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           ith
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
          machine learning
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           ,
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
          we can model many of these, but a static model is not great either (look what happened to all those companies that had rigid statistical forecasting models in the time of COVID).  To obtain the best possible projection of demand,
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           c
          
                    &#xD;
    &lt;/span&gt;&#xD;
    &lt;span&gt;&#xD;
      
                      
           ompanies need to work on data as close to real-time as possible and recompute models based on what is happening now,
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
          not what we think might happen in a week or even what happened last week.
         
                  &#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;br/&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
          Let
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           '
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
          s look at
          
                    &#xD;
    &lt;span&gt;&#xD;
      &lt;span&gt;&#xD;
        
                        
            a
           
                      &#xD;
      &lt;/span&gt;&#xD;
    &lt;/span&gt;&#xD;
    
                    
          real example of a recent customer and a new product launch.   This was a new produc
          
                    &#xD;
    &lt;span&gt;&#xD;
      &lt;span&gt;&#xD;
        
                        
            t
           
                      &#xD;
      &lt;/span&gt;&#xD;
    &lt;/span&gt;&#xD;
    
                    
          with little history
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           ,
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
          and the launch team made some best estimates of launch demand.  As you can see
          
                    &#xD;
    &lt;span&gt;&#xD;
      &lt;span&gt;&#xD;
        
                        
            ,
           
                      &#xD;
      &lt;/span&gt;&#xD;
    &lt;/span&gt;&#xD;
    &lt;span&gt;&#xD;
      &lt;span&gt;&#xD;
        
                        
            with instant ML we are able to remodel and re
           
                      &#xD;
      &lt;/span&gt;&#xD;
    &lt;/span&gt;&#xD;
    &lt;span&gt;&#xD;
      
                      
           -
          
                    &#xD;
    &lt;/span&gt;&#xD;
    &lt;span&gt;&#xD;
      
                      
           predict the forecasts using the most real-time data from the launch.
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
            This provides a quick consensus of models and enables resources to be diverted to meet true demand.  Sticking with the original model for longer would have created an almost certain inventory impact and huge bullwhip across the supply chain. 
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           Using real-time data
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
          ensures that we are keeping our variability down as low as possibl
          
                    &#xD;
    &lt;span&gt;&#xD;
      &lt;span&gt;&#xD;
        
                        
            e,
           
                      &#xD;
      &lt;/span&gt;&#xD;
    &lt;/span&gt;&#xD;
    
                    
          which enables us to keep our service level high and our cost down.
         
                  &#xD;
  &lt;/p&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div data-rss-type="text"&gt;&#xD;
  &lt;h3&gt;&#xD;
    &lt;span&gt;&#xD;
      
                      
           We closed off our last post with the following thought...
          
                    &#xD;
    &lt;/span&gt;&#xD;
  &lt;/h3&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div data-rss-type="text"&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;span&gt;&#xD;
      
                      
           Know what you do not know costs you.  (and there is a pretty accurate equation for this)
          
                    &#xD;
    &lt;/span&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;span&gt;&#xD;
      
                      
           Well if you are reforecasting with an out of date model, or you are reforecasting without the latest available data - you are definitely leaving information that you know out of your model and forecasts. This is costing you money and/or impacting your service.
          
                    &#xD;
    &lt;/span&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;span&gt;&#xD;
      
                      
           Next, we will start to explore how technologies can close these gaps – and make sure that you are providing your supply chain with the most accurate demand.  That means leveraging all the variables you have (at the lowest possible level) when predicting your demand and doing it as fast and as often as you can.
          
                    &#xD;
    &lt;/span&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;span&gt;&#xD;
      &lt;br/&gt;&#xD;
    &lt;/span&gt;&#xD;
  &lt;/p&gt;&#xD;
&lt;/div&gt;</content:encoded>
      <enclosure url="https://irp-cdn.multiscreensite.com/81f1173d/dms3rep/multi/real-time-right-now-image.jpg" length="49405" type="image/jpeg" />
      <pubDate>Mon, 02 Nov 2020 12:28:09 GMT</pubDate>
      <guid>https://www.demanddata.io/why-real-time-right-now</guid>
      <g-custom:tags type="string" />
      <media:content medium="image" url="https://irp-cdn.multiscreensite.com/81f1173d/dms3rep/multi/real-time-right-now-image.jpg">
        <media:description>thumbnail</media:description>
      </media:content>
      <media:content medium="image" url="https://irp-cdn.multiscreensite.com/81f1173d/dms3rep/multi/real-time-right-now-image.jpg">
        <media:description>main image</media:description>
      </media:content>
    </item>
    <item>
      <title>In Supply Chain,  Maths is cool again</title>
      <link>https://www.demanddata.io/in-supply-chain-maths-is-cool-again</link>
      <description />
      <content:encoded>&lt;h3&gt;&#xD;
  
                  
                  
                  
                  
                  
                  
                  
                  
                  
                  
         Why use maths?
        
                
                
                
                
                
                
                
                
                
                &#xD;
&lt;/h3&gt;&#xD;
&lt;div data-rss-type="text"&gt;&#xD;
  
                  
                  
                  
                  
                  
                  
                  
                  
                  
                  
         You cannot go far these days without hearing about data science, digital transformation or AI.   This is especially true in the supply chain discipline.   However, when taking it back to basics, what AI, ML and Data Science are really doing are solving mathematical equations that are hardly new.    These equations are just trying to optimize a series of variables to minimize cost and maximize service – something supply chain professionals have been doing for decades.      So what has changed?  Cloud Computing and Cloud Storage!
         
                  
                  
                  
                  
                  
                  
                  
                  
                  
                  &#xD;
  &lt;blockquote&gt;&#xD;
    &lt;ul&gt;&#xD;
      &lt;li&gt;&#xD;
        &lt;b&gt;&#xD;
          &lt;span&gt;&#xD;
            
                            
                            
                            
                            
                            
                            
                            
                            
                            
                            
              Cloud Computing
             
                          
                          
                          
                          
                          
                          
                          
                          
                          
                          &#xD;
          &lt;/span&gt;&#xD;
          
                          
                          
                          
                          
                          
                          
                          
                          
                          
                          
              
            
                        
                        
                        
                        
                        
                        
                        
                        
                        
                        &#xD;
        &lt;/b&gt;&#xD;
        
                        
                        
                        
                        
                        
                        
                        
                        
                        
                        
            is enabling supply chain professionals to perform more math, faster.
           
                      
                      
                      
                      
                      
                      
                      
                      
                      
                      &#xD;
      &lt;/li&gt;&#xD;
      &lt;li&gt;&#xD;
        &lt;font&gt;&#xD;
          &lt;b&gt;&#xD;
            
                            
                            
                            
                            
                            
                            
                            
                            
                            
                            
              Cheap Storage
             
                          
                          
                          
                          
                          
                          
                          
                          
                          
                          &#xD;
          &lt;/b&gt;&#xD;
        &lt;/font&gt;&#xD;
        
                        
                        
                        
                        
                        
                        
                        
                        
                        
                        
            is providing the ability to store more data about products and environmental variables which gives more fuel for the math to solve.     
           
                      
                      
                      
                      
                      
                      
                      
                      
                      
                      &#xD;
      &lt;/li&gt;&#xD;
    &lt;/ul&gt;&#xD;
  &lt;/blockquote&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div data-rss-type="text"&gt;&#xD;
  &lt;h3&gt;&#xD;
    &lt;span&gt;&#xD;
      
                      
                      
                      
                      
                      
                      
                      
                      
                      
                      
           Maths solve variables.  Variables = Risk = Cost
          
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    &#xD;
    &lt;/span&gt;&#xD;
  &lt;/h3&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div data-rss-type="text"&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
          One of my very first managers simplified this in one of my first meetings about supply chain design as an Intern at American Home Products (now many mergers later – part of Pfizer).  He said
          
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
                      
                      
                      
                      
                      
                      
                      
                      
                      
           “If I know what supply I am getting today
          
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    &#xD;
    &lt;/span&gt;&#xD;
    &lt;span&gt;&#xD;
      
                      
                      
                      
                      
                      
                      
                      
                      
                      
                      
           ,
          
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    &#xD;
    &lt;/span&gt;&#xD;
    &lt;span&gt;&#xD;
      &lt;span&gt;&#xD;
        
                        
                        
                        
                        
                        
                        
                        
                        
                        
                        
            and I know exactly what I am selling tomorrow,
           
                      
                      
                      
                      
                      
                      
                      
                      
                      
                      &#xD;
      &lt;/span&gt;&#xD;
    &lt;/span&gt;&#xD;
    &lt;span&gt;&#xD;
      
                      
                      
                      
                      
                      
                      
                      
                      
                      
                      
           m
          
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    &#xD;
    &lt;/span&gt;&#xD;
    &lt;span&gt;&#xD;
      
                      
                      
                      
                      
                      
                      
                      
                      
                      
                      
           y inventory should be zero”.
          
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    &#xD;
    &lt;/span&gt;&#xD;
    &lt;span&gt;&#xD;
      
                      
                      
                      
                      
                      
                      
                      
                      
                      
                      
            
          
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    &#xD;
    &lt;/span&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;br/&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
          Now
          
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
                      
                      
                      
                      
                      
                      
                      
                      
                      
           ,
          
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
          we all know that is unfortunately not the case – and all companies in the supply chain inevitably end up with inventory.  However
          
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
                      
                      
                      
                      
                      
                      
                      
                      
                      
           ,
          
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
          unpacking that statement a little further all he was saying was that inventory is a buffer for variability (also known as risk).  We need inventory because we don’t know what we are going to get today (supply)
          
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
                      
                      
                      
                      
                      
                      
                      
                      
                      
           ,
          
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
          and we certainly don’t know what we are going to sell tomorrow (demand).  It's really all a constant balance between supply and demand.  On the supply side, we use inventory to create some buffer and on the demand side we can manage service expectations and line fill rate.     
          
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    &#xD;
    &lt;span&gt;&#xD;
      &lt;span&gt;&#xD;
        
                        
                        
                        
                        
                        
                        
                        
                        
                        
                        
            ﻿
           
                      
                      
                      
                      
                      
                      
                      
                      
                      
                      &#xD;
      &lt;/span&gt;&#xD;
    &lt;/span&gt;&#xD;
  &lt;/p&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div&gt;&#xD;
  &lt;a&gt;&#xD;
    &lt;img src="https://irp-cdn.multiscreensite.com/81f1173d/dms3rep/multi/supply+and+demand.png" alt=""/&gt;&#xD;
  &lt;/a&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div data-rss-type="text"&gt;&#xD;
  &lt;h3&gt;&#xD;
    &lt;span&gt;&#xD;
      
                      
                      
                      
                      
                      
                      
                      
                      
                      
                      
           Less data = more cost
          
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    &#xD;
    &lt;/span&gt;&#xD;
  &lt;/h3&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div data-rss-type="text"&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
          In the pharmaceutical industry – where I learned the supply chain trade, there were often some very high consequences for not having enough stock, ranging from lost sales on very high margin products to adversely affecting human health.  When I was doing planning, we were reliant on  supply chain segmentation – usually we classified products as A, B or C based on their importance to the company and/or society. In other words – never run out of an A product...
          
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
                      
                      
                      
                      
                      
                      
                      
                      
                      
           ever
          
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
          .    B products - bad news but survivable.  C products - just get it back in stock quickly. What struck me was how much excess inventory was always piled on to A products,  even products that had years of history showing stable demand and stable supply.  The lack of data and inability to process it just meant products got grouped with inventory and safety policies into 3 categories - even across 100s or 1000s of products.  This may have worked (at times) but it failed to take into account that inventory equal
          
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
                      
                      
                      
                      
                      
                      
                      
                      
                      
           s
          
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
          cos
          
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
                      
                      
                      
                      
                      
                      
                      
                      
                      
           t.
          
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
            Having more than you need costs your business something, either through obsole
          
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
                      
                      
                      
                      
                      
                      
                      
                      
                      
           sce
          
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
          nce risk, cost of capital, cost of storage or cost of capacity.  Now sometimes that cost is justified
          
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
                      
                      
                      
                      
                      
                      
                      
                      
                      
           ,
          
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
          but often it is not.  However
          
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
                      
                      
                      
                      
                      
                      
                      
                      
                      
           ,
          
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
          the good news is that this can be solved for.
          
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    &#xD;
    &lt;br/&gt;&#xD;
  &lt;/p&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div&gt;&#xD;
  &lt;a&gt;&#xD;
    &lt;img src="https://irp-cdn.multiscreensite.com/81f1173d/dms3rep/multi/2020-09-14_14-14-08.png" alt=""/&gt;&#xD;
  &lt;/a&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div data-rss-type="text"&gt;&#xD;
  &lt;h3&gt;&#xD;
    &lt;span&gt;&#xD;
      
                      
                      
                      
                      
                      
                      
                      
                      
                      
                      
           The inventory, supply, demand, service relationship
          
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    &#xD;
    &lt;/span&gt;&#xD;
  &lt;/h3&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div data-rss-type="text"&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
          Our equation above is a more complex version of the first equation.  It is the cumulative distribution function for a normally distributed equation and models random demand variability fairly well.  σ  is your variability (how good your forecast is) and x is expected deviation from a forecast and f(x) is the probability of that deviation happening.
          
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
                      
                      
                      
                      
                      
                      
                      
                      
                      
            
          
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
          To simplify = if you know your variability
          
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
                      
                      
                      
                      
                      
                      
                      
                      
                      
           ,
          
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
          you can precisely determine the probability of having a certain amount of stock in the future.   
         
                  
                  
                  
                  
                  
                  
                  
                  
                  
                  &#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;br/&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
          This means if you wanted to ensure that your service level was 98%
          
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
                      
                      
                      
                      
                      
                      
                      
                      
                      
           ,
          
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
          and you can model your supply and demand with a variability of  σ
          
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
                      
                      
                      
                      
                      
                      
                      
                      
                      
           ,
          
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
          we can say exactly how much inventory is needed. This also means that if we reduce variability, we can reduce inventory and get the
          
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    &#xD;
    &lt;span&gt;&#xD;
      &lt;span&gt;&#xD;
        
                        
                        
                        
                        
                        
                        
                        
                        
                        
                        
            ﻿
           
                      
                      
                      
                      
                      
                      
                      
                      
                      
                      &#xD;
      &lt;/span&gt;&#xD;
    &lt;/span&gt;&#xD;
    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
          same service level.    Solving these kinds of equations can be quite difficult by hand,  but they are pretty easy for computers and can be solved with a few lines of code at an impressive speed and scale. 
         
                  
                  
                  
                  
                  
                  
                  
                  
                  
                  &#xD;
  &lt;/p&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div data-rss-type="text"&gt;&#xD;
  &lt;h3&gt;&#xD;
    &lt;span&gt;&#xD;
      
                      
                      
                      
                      
                      
                      
                      
                      
                      
                      
           Forget A,B,C segments - segment everything
          
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    &#xD;
    &lt;/span&gt;&#xD;
  &lt;/h3&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div data-rss-type="text"&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
          What this means is the idea of having supply chain segments is changing.   We don’t need to classify items into A, B, C categories anymore. 
          
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
                      
                      
                      
                      
                      
                      
                      
                      
                      
            
          
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
          In fact, one can calculate target inventory for every item in your organizatio
          
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    &#xD;
    &lt;span&gt;&#xD;
      &lt;span&gt;&#xD;
        
                        
                        
                        
                        
                        
                        
                        
                        
                        
                        
            n,
           
                      
                      
                      
                      
                      
                      
                      
                      
                      
                      &#xD;
      &lt;/span&gt;&#xD;
    &lt;/span&gt;&#xD;
    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
          at every step in the supply chain…..independently.   All you need to know is how much variability there is in supply and in demand and what availability you are comfortable with.  The math will take care of the rest.
          
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    &#xD;
    &lt;span&gt;&#xD;
      &lt;span&gt;&#xD;
        
                        
                        
                        
                        
                        
                        
                        
                        
                        
                        
            ﻿
           
                      
                      
                      
                      
                      
                      
                      
                      
                      
                      &#xD;
      &lt;/span&gt;&#xD;
    &lt;/span&gt;&#xD;
  &lt;/p&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div data-rss-type="text"&gt;&#xD;
  &lt;h3&gt;&#xD;
    &lt;span&gt;&#xD;
      
                      
                      
                      
                      
                      
                      
                      
                      
                      
                      
           Get Variability down
          
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    &#xD;
    &lt;/span&gt;&#xD;
  &lt;/h3&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div data-rss-type="text"&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
          A common saying I have heard throughout my career (in supply chain and otherwise) is:   
          
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
                      
                      
                      
                      
                      
                      
                      
                      
                      
           You don’t know what you don’t know
          
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
          .    This is very true, but it is best to start with what you do know.   This means build out your demand forecasts with as much data as you can.  There are tools which can take this data and use it to lower your variability by training demand forecasting algorithms across vast numbers of iterations and combinations of factors.  This enables the deconstruction of even the most seemingly random events into mathematically solvable equations with increasingly small degrees of error. 
         
                  
                  
                  
                  
                  
                  
                  
                  
                  
                  &#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;br/&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;span&gt;&#xD;
      
                      
                      
                      
                      
                      
                      
                      
                      
                      
                      
           On the demand side
          
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
          , things like:
         
                  
                  
                  
                  
                  
                  
                  
                  
                  
                  &#xD;
  &lt;/p&gt;&#xD;
  &lt;ul&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
                        
                        
                        
                        
                        
                        
                        
                        
                        
                        
            Seasonality and hyper-seasonality (yearly and weekly or even daily trends)
           
                      
                      
                      
                      
                      
                      
                      
                      
                      
                      &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
                        
                        
                        
                        
                        
                        
                        
                        
                        
                        
            Events (promotions, holidays, advertising)
           
                      
                      
                      
                      
                      
                      
                      
                      
                      
                      &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
                        
                        
                        
                        
                        
                        
                        
                        
                        
                        
            External Factors (weather, traffic, competitor activity)
           
                      
                      
                      
                      
                      
                      
                      
                      
                      
                      &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
  &lt;/ul&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;span&gt;&#xD;
      
                      
                      
                      
                      
                      
                      
                      
                      
                      
                      
           On the supply side
          
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
          things like:
         
                  
                  
                  
                  
                  
                  
                  
                  
                  
                  &#xD;
  &lt;/p&gt;&#xD;
  &lt;ul&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
                        
                        
                        
                        
                        
                        
                        
                        
                        
                        
            Failure rates
           
                      
                      
                      
                      
                      
                      
                      
                      
                      
                      &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
                        
                        
                        
                        
                        
                        
                        
                        
                        
                        
            Shipping lanes
           
                      
                      
                      
                      
                      
                      
                      
                      
                      
                      &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
    &lt;li&gt;&#xD;
      &lt;span&gt;&#xD;
        
                        
                        
                        
                        
                        
                        
                        
                        
                        
                        
            Frequency of production
           
                      
                      
                      
                      
                      
                      
                      
                      
                      
                      &#xD;
      &lt;/span&gt;&#xD;
    &lt;/li&gt;&#xD;
  &lt;/ul&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
          By modeling what has happened in the past and overlaying what you know about the future (Christmas does happ
          
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
                      
                      
                      
                      
                      
                      
                      
                      
                      
           en
          
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    
          every year and around the same time :),   we can start to apply what we know to our expectations - which lowers our overall variability. 
          
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    &#xD;
    &lt;span&gt;&#xD;
      &lt;span&gt;&#xD;
        
                        
                        
                        
                        
                        
                        
                        
                        
                        
                        
            ﻿
           
                      
                      
                      
                      
                      
                      
                      
                      
                      
                      &#xD;
      &lt;/span&gt;&#xD;
    &lt;/span&gt;&#xD;
  &lt;/p&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div data-rss-type="text"&gt;&#xD;
  &lt;h3&gt;&#xD;
    &lt;span&gt;&#xD;
      
                      
                      
                      
                      
                      
                      
                      
                      
                      
                      
           Whats next?
          
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    &#xD;
    &lt;/span&gt;&#xD;
  &lt;/h3&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div&gt;&#xD;
  &lt;a&gt;&#xD;
    &lt;img src="https://irp-cdn.multiscreensite.com/81f1173d/dms3rep/multi/Tangent+Works.svg" alt=""/&gt;&#xD;
  &lt;/a&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div data-rss-type="text"&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;span&gt;&#xD;
      
                      
                      
                      
                      
                      
                      
                      
                      
                      
                      
           Demand Data has partnered with Tangent Works,  a leading machine learning time-series company.  We are busy working with a number of CPG and retail companies to take all their data and leverage Tangent Works' TIM engine to create a new breed of time-series forecasts (either demand or supply) that go beyond traditional statistical methods to incorporate the features of each product and link in your supply chain.  The results are improved forecast accuracy but most importantly forecasts that are modeled for each unique aspect in your supply chain.   Over the coming weeks, we will show you how to use the TIM engine to lower your variability and how to do it at speed,  which will overcome another one of life's great variables....time.
          
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    &#xD;
    &lt;/span&gt;&#xD;
  &lt;/p&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div data-rss-type="text"&gt;&#xD;
  &lt;h3&gt;&#xD;
    &lt;span&gt;&#xD;
      
                      
                      
                      
                      
                      
                      
                      
                      
                      
                      
           By James Smith - Demand Data
          
                    
                    
                    
                    
                    
                    
                    
                    
                    
                    &#xD;
    &lt;/span&gt;&#xD;
  &lt;/h3&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div&gt;&#xD;
  &lt;a&gt;&#xD;
    &lt;img src="https://irp-cdn.multiscreensite.com/81f1173d/dms3rep/multi/biography-1920w.png" alt=""/&gt;&#xD;
  &lt;/a&gt;&#xD;
&lt;/div&gt;</content:encoded>
      <enclosure url="https://irp-cdn.multiscreensite.com/81f1173d/dms3rep/multi/2020-09-14_14-14-08.png" length="4752" type="image/png" />
      <pubDate>Mon, 14 Sep 2020 13:43:12 GMT</pubDate>
      <guid>https://www.demanddata.io/in-supply-chain-maths-is-cool-again</guid>
      <g-custom:tags type="string" />
      <media:content medium="image" url="https://irp-cdn.multiscreensite.com/81f1173d/dms3rep/multi/2020-09-14_14-14-08.png">
        <media:description>thumbnail</media:description>
      </media:content>
      <media:content medium="image" url="https://irp-cdn.multiscreensite.com/81f1173d/dms3rep/multi/2020-09-14_14-14-08.png">
        <media:description>main image</media:description>
      </media:content>
    </item>
    <item>
      <title>Weather Based Marketing with Alteryx and Snowflake</title>
      <link>https://www.demanddata.io/weather-based-marketing-with-alteryx-and-snowflake</link>
      <description />
      <content:encoded>&lt;h3&gt;&#xD;
  
                  
                  
                  
         Getting Started:
        
                
                
                &#xD;
&lt;/h3&gt;&#xD;
&lt;div data-rss-type="text"&gt;&#xD;
  
                  
                  
                  
         This post will give you all the tools and details on how to use weather to drive business/sales to your organization.  The high level process will involve taking locations of interest (in our sample, we will use retail locations of major chains) and then establish a custom weather criteria.  The output is a list of locations meeting that criteria upon which an action can be taken.  We will explore actions in a later post but such actions include things like: creating a custom facebook territory for a campaign, sending customers targeted weather specific offers,  inputting into a retailers target stock program, adjusting your stores forecast....the list goes on). 
        
                
                
                &#xD;
&lt;/div&gt;&#xD;
&lt;div&gt;&#xD;
  &lt;a&gt;&#xD;
    &lt;img src="https://irp-cdn.multiscreensite.com/81f1173d/dms3rep/multi/Oveview.png" alt=""/&gt;&#xD;
  &lt;/a&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div data-rss-type="text"&gt;&#xD;
  &lt;h3&gt;&#xD;
    &lt;span&gt;&#xD;
      
                      
                      
                      
           Pre-requisites
          
                    
                    
                    &#xD;
    &lt;/span&gt;&#xD;
  &lt;/h3&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div data-rss-type="text"&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
                    
                    
          To proceed from here
          
                    
                    
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
                      
                      
           ,
          
                    
                    
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
                    
                    
          you will need to have the following:
         
                  
                  
                  &#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
                    
                    
          1)   Alteryx designer --&amp;gt; 
          
                    
                    
                    &#xD;
    &lt;a href="http://www.alteryx.com" target="_blank"&gt;&#xD;
      
                      
                      
                      
           Free trial here
          
                    
                    
                    &#xD;
    &lt;/a&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
                    
                    
          2)  Snowflake account --&amp;gt;
          
                    
                    
                    &#xD;
    &lt;a href="http://www.snowflake.com" target="_blank"&gt;&#xD;
      
                      
                      
                      
           Free trial here
          
                    
                    
                    &#xD;
    &lt;/a&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
                    
                    
          3)  Setup Alteryx for data exchange --&amp;gt; 
          
                    
                    
                    &#xD;
    &lt;a href="https://www.demanddata.io/getting-started-snowflake-data-exchange" target="_blank"&gt;&#xD;
      
                      
                      
                      
           post here
          
                    
                    
                    &#xD;
    &lt;/a&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
                    
                    
          4)  Request the following data
          
                    
                    
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
                      
                      
            
          
                    
                    
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
                    
                    
          sets in the
          
                    
                    
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
                      
                      
           S
          
                    
                    
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
                    
                    
          nowflake data exchange  --&amp;gt;   Global retail data, weather sample set  (Search
          
                    
                    
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
                      
                      
           www.
          
                    
                    
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
                    
                    
          demanddata.io or
          
                    
                    
                    &#xD;
    &lt;a href="mailto:Sales@demanddata.io"&gt;&#xD;
      
                      
                      
                      
           email us
          
                    
                    
                    &#xD;
    &lt;/a&gt;&#xD;
    
                    
                    
                    
          for links!)
         
                  
                  
                  &#xD;
  &lt;/p&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div data-rss-type="text"&gt;&#xD;
  &lt;h3&gt;&#xD;
    &lt;span&gt;&#xD;
      
                      
                      
                      
           How it all works
           
                      
                      
                      &#xD;
      &lt;span&gt;&#xD;
        
                        
                        
                        
            ﻿
           
                      
                      
                      &#xD;
      &lt;/span&gt;&#xD;
    &lt;/span&gt;&#xD;
  &lt;/h3&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div data-rss-type="text"&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
                    
                    
          Connect to the weather sample set in Alteryx
          
                    
                    
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
                      
                      
           ,
          
                    
                    
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
                    
                    
          and the first step is to get an overview of all of the weather stations that are available.  You can do this with a group by station id, latitude, longitude and stream that into Alteryx.  This allows us to bring a minimal amount of data into our local environment.  You can do the same with your locations of interest-  these can be anything with a lat/long pair (or do some Geocoding --&amp;gt; future post on this soon!).  Make sure you put some point tools on your coordinates to turn them into spatial objects and then use a find nearest tool to map all your locations to a weather station.  Then
          
                    
                    
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
                      
                      
           ,
          
                    
                    
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
                    
                    
          use a summarize tool or a unique tool to get back unique weather stations.  What we have effectively done here is mapped all our locations of interests (our stores, our customers, our suppliers etc) to a weather station.
          
                    
                    
                    &#xD;
    &lt;span&gt;&#xD;
      &lt;span&gt;&#xD;
      &lt;/span&gt;&#xD;
    &lt;/span&gt;&#xD;
    
                    
                    
                    
          We can put in some confidence limits around how far away a station is but I've found in the US a 20 mile radius captures most of the population.  (
          
                    
                    
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
                      
                      
           O
          
                    
                    
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
                    
                    
          f course we could use Alteryx to PRECISELY calculate this number)! 
         
                  
                  
                  &#xD;
  &lt;/p&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div&gt;&#xD;
  &lt;a&gt;&#xD;
    &lt;img src="https://irp-cdn.multiscreensite.com/81f1173d/dms3rep/multi/Weather+Start.png" alt=""/&gt;&#xD;
  &lt;/a&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div data-rss-type="text"&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
                    
                    
          Now that this is done
          
                    
                    
                    &#xD;
    &lt;span&gt;&#xD;
      &lt;span&gt;&#xD;
        
                        
                        
                        
            ,
           
                      
                      
                      &#xD;
      &lt;/span&gt;&#xD;
    &lt;/span&gt;&#xD;
    
                    
                    
                    
          we can push the relevant weather stations back to
          
                    
                    
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
                      
                      
           S
          
                    
                    
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
                    
                    
          nowflake with a data stream in tool.
          
                    
                    
                    &#xD;
    &lt;span&gt;&#xD;
      &lt;span&gt;&#xD;
      &lt;/span&gt;&#xD;
    &lt;/span&gt;&#xD;
    
                    
                    
                    
          Here we use a temporary table and join back to our main weather day.   Effectively
          
                    
                    
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
                      
                      
           ,
          
                    
                    
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
                    
                    
          we have done a nice little geospatial filter in
          
                    
                    
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
                      
                      
           S
          
                    
                    
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
                    
                    
          nowflake with just 3 tools in Alteryx!  We have also effectively mapped all o
          
                    
                    
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
                      
                      
           f
          
                    
                    
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
                    
                    
          our locations of interest to a weather node (on which we have history and a live forecast through
          
                    
                    
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
                      
                      
           S
          
                    
                    
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
                    
                    
          nowflakes data exchange).  From here we have some options-  we can get our weather history and do some modelling (in a later post we will show how to use weather history to improve sales forecasting)
          
                    
                    
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
                      
                      
           , but f
          
                    
                    
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
                    
                    
          or our first introduction to this topic
          
                    
                    
                    &#xD;
    &lt;span&gt;&#xD;
      &lt;span&gt;&#xD;
        
                        
                        
                        
            ,
           
                      
                      
                      &#xD;
      &lt;/span&gt;&#xD;
    &lt;/span&gt;&#xD;
    
                    
                    
                    
          we are going to work only with the forecast.  Our data set contains a json file with the next 15 days of forecasts.     
          
                    
                    
                    &#xD;
    &lt;span&gt;&#xD;
      &lt;span&gt;&#xD;
        
                        
                        
                        
            ﻿
           
                      
                      
                      &#xD;
      &lt;/span&gt;&#xD;
    &lt;/span&gt;&#xD;
  &lt;/p&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div&gt;&#xD;
  &lt;a&gt;&#xD;
    &lt;img src="https://irp-cdn.multiscreensite.com/81f1173d/dms3rep/multi/output.png" alt=""/&gt;&#xD;
  &lt;/a&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div data-rss-type="text"&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
                    
                    
          Now again back to options
          
                    
                    
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
                      
                      
           -
          
                    
                    
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
                    
                    
           if you are good with SQL
          
                    
                    
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
                      
                      
           ,
          
                    
                    
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
                    
                    
          you can use the flatten functions within
          
                    
                    
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
                      
                      
           S
          
                    
                    
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
                    
                    
          nowflake to flatten all this data out,   however
          
                    
                    
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
                      
                      
           ,
          
                    
                    
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
                    
                    
          I
          
                    
                    
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
                      
                      
           ,
          
                    
                    
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
                    
                    
          personally
          
                    
                    
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
                      
                      
           ,
          
                    
                    
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
                    
                    
          find it much easier to do with Alteryx and the json parse capabilities which make unpacking and figuring out this data fairly painless.
          
                    
                    
                    &#xD;
    &lt;span&gt;&#xD;
      &lt;span&gt;&#xD;
      &lt;/span&gt;&#xD;
    &lt;/span&gt;&#xD;
    
                    
                    
                    
           If going the Alteryx route,  you need a json parse tool to bring all the elements out,  then a text parse tool to expand out fields
          
                    
                    
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
                      
                      
           .
          
                    
                    
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
                    
                    
             Then you can use a cross tab tool to pivot all your elements and fields into a more manageable flattened structure.   By sorting based on our forecast date and
          
                    
                    
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
                      
                      
           us
          
                    
                    
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
                    
                    
          ing a unique
          
                    
                    
                    &#xD;
    &lt;span&gt;&#xD;
      &lt;span&gt;&#xD;
        
                        
                        
                        
            tool
           
                      
                      
                      &#xD;
      &lt;/span&gt;&#xD;
    &lt;/span&gt;&#xD;
    
                    
                    
                    
          , we bring in the latest forecast only for each city or weather station id.       
          
                    
                    
                    &#xD;
    &lt;span&gt;&#xD;
      &lt;span&gt;&#xD;
        
                        
                        
                        
            ﻿
           
                      
                      
                      &#xD;
      &lt;/span&gt;&#xD;
    &lt;/span&gt;&#xD;
  &lt;/p&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div&gt;&#xD;
  &lt;a&gt;&#xD;
    &lt;img src="https://irp-cdn.multiscreensite.com/81f1173d/dms3rep/multi/weather+streaming-9bf1eab3.png" alt=""/&gt;&#xD;
  &lt;/a&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div data-rss-type="text"&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
                    
                    
          Now
          
                    
                    
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
                      
                      
           ,
          
                    
                    
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
                    
                    
          we just need to deal with the conversions
          
                    
                    
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
                      
                      
           i
          
                    
                    
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
                    
                    
          n the different fields.  In this dataset, temperature is all based in degrees Kelvin.  For those of you who forgot your primary school chemistry,
          
                    
                    
                    &#xD;
    &lt;span&gt;&#xD;
      &lt;span&gt;&#xD;
      &lt;/span&gt;&#xD;
    &lt;/span&gt;&#xD;
    
                    
                    
                    
          Kelvin is just Celsius re-based to absolute zero.
          
                    
                    
                    &#xD;
    &lt;span&gt;&#xD;
      &lt;span&gt;&#xD;
      &lt;/span&gt;&#xD;
    &lt;/span&gt;&#xD;
    
                    
                    
                    
           It
          
                    
                    
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
                      
                      
           '
          
                    
                    
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
                    
                    
          s quite a simple formula to convert
          
                    
                    
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
                      
                      
           ,
          
                    
                    
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
                    
                    
          just subtract 273.15.   (Why 273.15?  You are going to have to talk to a physics PhD for that one
          
                    
                    
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
                      
                      
           ,
          
                    
                    
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
                    
                    
          I'm afraid).  For the Americans who adopted Fahrenheit with its easy to remember numbers like freezing water at 32 and boiling water at 212
          
                    
                    
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
                      
                      
           ,
          
                    
                    
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
                    
                    
          that
          
                    
                    
                    &#xD;
    &lt;span&gt;&#xD;
      &lt;span&gt;&#xD;
        
                        
                        
                        
            conversion
           
                      
                      
                      &#xD;
      &lt;/span&gt;&#xD;
    &lt;/span&gt;&#xD;
    
                    
                    
                    
          is just multiply by 9/5 and add 32.  Finally
          
                    
                    
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
                      
                      
           ,
          
                    
                    
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
                    
                    
          time
          
                    
                    
                    &#xD;
    &lt;span&gt;&#xD;
      &lt;span&gt;&#xD;
        
                        
                        
                        
            ;
           
                      
                      
                      &#xD;
      &lt;/span&gt;&#xD;
    &lt;/span&gt;&#xD;
    
                    
                    
                    
          all the coders will recognize the time field as unix time
          
                    
                    
                    &#xD;
    &lt;span&gt;&#xD;
      &lt;span&gt;&#xD;
        
                        
                        
                        
            ,
           
                      
                      
                      &#xD;
      &lt;/span&gt;&#xD;
    &lt;/span&gt;&#xD;
    
                    
                    
                    
          but for the rest of us
          
                    
                    
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
                      
                      
           ,
          
                    
                    
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
                    
                    
          it
          
                    
                    
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
                      
                      
           '
          
                    
                    
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
                    
                    
          s just the number of seconds that have occurred since the epoch (really the beginning of time for computers) which at some point was arbitrarily decided at Jan 1st, 1970.  Apparently
          
                    
                    
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
                      
                      
           ,
          
                    
                    
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
                    
                    
          the 60's didn
          
                    
                    
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
                      
                      
           '
          
                    
                    
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
                    
                    
          t really exist (for unix developers anyway).   A nifty Alteryx trick here is to use the multi-field formula
          
                    
                    
                    &#xD;
    &lt;span&gt;&#xD;
      &lt;span&gt;&#xD;
        
                        
                        
                        
            ,
           
                      
                      
                      &#xD;
      &lt;/span&gt;&#xD;
    &lt;/span&gt;&#xD;
    
                    
                    
                    
          so you can apply the same temperature formulas to many fields at once.
          
                    
                    
                    &#xD;
    &lt;span&gt;&#xD;
      &lt;span&gt;&#xD;
        
                        
                        
                        
            ﻿
           
                      
                      
                      &#xD;
      &lt;/span&gt;&#xD;
    &lt;/span&gt;&#xD;
  &lt;/p&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div&gt;&#xD;
  &lt;a&gt;&#xD;
    &lt;img src="https://irp-cdn.multiscreensite.com/81f1173d/dms3rep/multi/Conversion.png" alt=""/&gt;&#xD;
  &lt;/a&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div data-rss-type="text"&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
                    
                    
          Now
          
                    
                    
                    &#xD;
    &lt;span&gt;&#xD;
      &lt;span&gt;&#xD;
        
                        
                        
                        
            that
           
                      
                      
                      &#xD;
      &lt;/span&gt;&#xD;
    &lt;/span&gt;&#xD;
    
                    
                    
                    
          we have all the weather stations
          
                    
                    
                    &#xD;
    &lt;span&gt;&#xD;
      &lt;span&gt;&#xD;
      &lt;/span&gt;&#xD;
    &lt;/span&gt;&#xD;
    
                    
                    
                    
          that are close to our locations of interest
          
                    
                    
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
                      
                      
           ,
          
                    
                    
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
                    
                    
          all that is left to do is bring back the metadata about our locations.   As a note here
          
                    
                    
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
                      
                      
           ,
          
                    
                    
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
                    
                    
          we will likely
          
                    
                    
                    &#xD;
    &lt;span&gt;&#xD;
      &lt;span&gt;&#xD;
        
                        
                        
                        
            have
           
                      
                      
                      &#xD;
      &lt;/span&gt;&#xD;
    &lt;/span&gt;&#xD;
    
                    
                    
                    
          multiple locations for the same weather conditions but that is to be expected.  You may have 100 locations in central London
          
                    
                    
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
                      
                      
           for
          
                    
                    
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
                    
                    
          example
          
                    
                    
                    &#xD;
    &lt;span&gt;&#xD;
      &lt;span&gt;&#xD;
        
                        
                        
                        
            ,
           
                      
                      
                      &#xD;
      &lt;/span&gt;&#xD;
    &lt;/span&gt;&#xD;
    
                    
                    
                    
          which may all be mapped to a single weather condition station.  From here
          
                    
                    
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
                      
                      
           ,
          
                    
                    
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
                    
                    
          you can see the forecast against all of your locations of interest, or you can take it up a notch and make this dynamic with a few analytic app anchors.     In this case,  we have taken all of the different fields and mapped them to allow a user to select locations that fit certain weather criteria.
          
                    
                    
                    &#xD;
    &lt;span&gt;&#xD;
      &lt;span&gt;&#xD;
        
                        
                        
                        
            ﻿
           
                      
                      
                      &#xD;
      &lt;/span&gt;&#xD;
    &lt;/span&gt;&#xD;
  &lt;/p&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div&gt;&#xD;
  &lt;a&gt;&#xD;
    &lt;img src="https://irp-cdn.multiscreensite.com/81f1173d/dms3rep/multi/Weather+anchors.png" alt=""/&gt;&#xD;
  &lt;/a&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div&gt;&#xD;
  &lt;a&gt;&#xD;
    &lt;img src="https://irp-cdn.multiscreensite.com/81f1173d/dms3rep/multi/analytic+app+sample.png" alt=""/&gt;&#xD;
  &lt;/a&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div data-rss-type="text"&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
                    
                    
          So what these means is you can establish a user based criteria for rain or drought,  hot or cold,  windy or calm,  clear or cloudy and run this app to produce all the locations of interest that meet this certain criteria at some point in the next 14 days.  We have hooked this up to a simple report tool and for example
          
                    
                    
                    &#xD;
    &lt;span&gt;&#xD;
      &lt;span&gt;&#xD;
        
                        
                        
                        
            ,
           
                      
                      
                      &#xD;
      &lt;/span&gt;&#xD;
    &lt;/span&gt;&#xD;
    
                    
                    
                    
          shown all the Tesco stores in the UK that are expected to get 30mm of rain on any given day. 
          
                    
                    
                    &#xD;
    &lt;span&gt;&#xD;
      &lt;span&gt;&#xD;
        
                        
                        
                        
            ﻿
           
                      
                      
                      &#xD;
      &lt;/span&gt;&#xD;
    &lt;/span&gt;&#xD;
    
                    
                    
                    
          Bad news in the southwest UK towards the end of September.
         
                  
                  
                  &#xD;
  &lt;/p&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div&gt;&#xD;
  &lt;a&gt;&#xD;
    &lt;img src="https://irp-cdn.multiscreensite.com/81f1173d/dms3rep/multi/tesco+rain.png" alt=""/&gt;&#xD;
  &lt;/a&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div data-rss-type="text"&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;span&gt;&#xD;
      
                      
                      
                      
           So from here - it is really up to you to think creatively about how this type of automated data can be used to drive your business.     With the weather history we mentioned earlier maybe you have used machine learning to predict which products sell well on hot and sunny days,   or that consumers who are stuck indoors on rainy days use your service or visit your locations more.   Then its just a question of creating live predictions of when these conditions will exist so that you can ensure your inventory is adequately stocked,   or your store is adequately staffed or that you are positioning your product online at just the right moment.       The Alteryx APA platform can make all of this possible with easy integrations.      Increase target stock or target staffing at locations in your ERP systems -  no problem.   Create a custom Facebook territory and upload it directly into Facebook audience manager (easy).  Send a custom email campaign with the perfect product for the upcoming weekend -  just join on postcode and create custom campaign audiences for your marketing teams.     So umbrella salespeople in Southampton - be ready :)   
          
                    
                    
                    &#xD;
    &lt;/span&gt;&#xD;
  &lt;/p&gt;&#xD;
&lt;/div&gt;</content:encoded>
      <enclosure url="https://irp-cdn.multiscreensite.com/81f1173d/dms3rep/multi/Marketing+Homepage.png" length="45356" type="image/png" />
      <pubDate>Mon, 14 Sep 2020 10:30:57 GMT</pubDate>
      <guid>https://www.demanddata.io/weather-based-marketing-with-alteryx-and-snowflake</guid>
      <g-custom:tags type="string" />
      <media:content medium="image" url="https://irp-cdn.multiscreensite.com/81f1173d/dms3rep/multi/Marketing+Homepage.png">
        <media:description>thumbnail</media:description>
      </media:content>
      <media:content medium="image" url="https://irp-cdn.multiscreensite.com/81f1173d/dms3rep/multi/Marketing+Homepage.png">
        <media:description>main image</media:description>
      </media:content>
    </item>
    <item>
      <title>Connect Snowflake with Alteryx</title>
      <link>https://www.demanddata.io/connect-alteryx-to-snowflake</link>
      <description />
      <content:encoded>&lt;h3&gt;&#xD;
  
                  
         Alteryx + Snowflake =  Awesomeness
        
                &#xD;
&lt;/h3&gt;&#xD;
&lt;div data-rss-type="text"&gt;&#xD;
  
                  
         The flexibility and scale of Snowflake enables any user to bust through any misconceptions about data availability or data size.  However, it does require a good deal of SQL knowledge to get insights and is more suited to engineers that analysts as direct users.  When paired with Alteryx, the power of the Snowflake data engine plus all of the data sets in the Snowflake marketplace become instantly accessible in an intuitive drag and drop interface.
        
                &#xD;
&lt;/div&gt;&#xD;
&lt;div data-rss-type="text"&gt;&#xD;
  &lt;h3&gt;&#xD;
    &lt;span&gt;&#xD;
      
                      
           Getting your PC ready
          
                    &#xD;
    &lt;/span&gt;&#xD;
  &lt;/h3&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div data-rss-type="text"&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;span&gt;&#xD;
      
                      
           I promise this will be the last admin step needed to achieve unlimited data superpowers.  It is annoying I admit, but a small step compared to what you will achieve.    The snowflake drivers do not come standard with windows machines so they have to be downloaded and installed.   Note this process as to be repeated on all machines that will connect to snowflake (including server if you are lucky enough to have alteryx server)
          
                    &#xD;
    &lt;/span&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;span&gt;&#xD;
      &lt;span&gt;&#xD;
        
                        
            ﻿
           
                      &#xD;
      &lt;/span&gt;&#xD;
    &lt;/span&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;span&gt;&#xD;
      
                      
           ﻿The link is below (for a windows 64 bit machine).   If you are using a 32-bit machine, please read the advisory on the main page and start a gofundme account to try and score a new laptop before attempting to continue.  If you are using linux then I am certain you are not reading this step-by-step guide.   If you are using a mac, you can afford to pay someone to do this for you and cant use Alteryx anyway (which I understand is a heated debate but best taken up elsewhere)
          
                    &#xD;
    &lt;/span&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;a href="https://sfc-repo.snowflakecomputing.com/odbc/win64/latest/index.html" target="_blank"&gt;&#xD;
      
                      
           https://sfc-repo.snowflakecomputing.com/odbc/win64/latest/index.html
          
                    &#xD;
    &lt;/a&gt;&#xD;
    &lt;span&gt;&#xD;
      
                      
           ﻿
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
          ﻿
          
                    &#xD;
    &lt;span&gt;&#xD;
      &lt;br/&gt;&#xD;
    &lt;/span&gt;&#xD;
  &lt;/p&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div data-rss-type="text"&gt;&#xD;
  &lt;h3&gt;&#xD;
    &lt;span&gt;&#xD;
      
                      
           Making the connection
          
                    &#xD;
    &lt;/span&gt;&#xD;
  &lt;/h3&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div data-rss-type="text"&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
          You can connect Alteryx to databases using both the regular input tool or the in database tool.  For simplicity
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           ,
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
          I am focusing on the in-DB tools. The reality is the in-DB can easily perform the functions of the regular tool plus much more
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           ,
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
          so I recommend us
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           ing
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
          them always when connecting to databases.   Under in-database,  click through to connect In-DB.   Under datasource
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           ,
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
          you should see
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           S
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
          nowflake as an option (if not review the first step).
         
                  &#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;br/&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
          File or User connection?   
         
                  &#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
          Decision time.  Windows (and therefore Alteryx) allows for 2 types of ODBC connections,  one is user based (where the setup is stored with the user of the machine) and the other is file based (where the credentials are stored in a file that can be shared).  Personally
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           ,
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
          I like the file option because it
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           '
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
          s easily transportable (to a server for instance) or to share with a fellow analyst.  However
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           ,
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
          this may give your security team the total creeps
          
                    &#xD;
    &lt;span&gt;&#xD;
      &lt;span&gt;&#xD;
        
                        
            ,
           
                      &#xD;
      &lt;/span&gt;&#xD;
    &lt;/span&gt;&#xD;
    
                    
          so admittedly
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           ,
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
          the more secure way is a user based connection.
          
                    &#xD;
    &lt;span&gt;&#xD;
      &lt;span&gt;&#xD;
      &lt;/span&gt;&#xD;
    &lt;/span&gt;&#xD;
    
                    
          Either way
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           ,
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
          choose your option
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           . I
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
          f you choose the file based method
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           ,
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
          you will need to specify a folder where the connection details will go.
          
                    &#xD;
    &lt;span&gt;&#xD;
      &lt;span&gt;&#xD;
        
                        
            ﻿
           
                      &#xD;
      &lt;/span&gt;&#xD;
    &lt;/span&gt;&#xD;
  &lt;/p&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div&gt;&#xD;
  &lt;a&gt;&#xD;
    &lt;img src="https://irp-cdn.multiscreensite.com/81f1173d/dms3rep/multi/Connect+to+Alteryx.png" alt=""/&gt;&#xD;
  &lt;/a&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div data-rss-type="text"&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
          This being
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           W
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
          indows there are...well..a lot of windows.   You will need to create your machine based connection to
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           S
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
          nowflake first.
         
                  &#xD;
  &lt;/p&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div&gt;&#xD;
  &lt;a&gt;&#xD;
    &lt;img src="https://irp-cdn.multiscreensite.com/81f1173d/dms3rep/multi/02-setup+odbc.png" alt=""/&gt;&#xD;
  &lt;/a&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div data-rss-type="text"&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
          From here you need to enter in your parameters
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           .
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
            There are a few gotchas here to understand.
         
                  &#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;br/&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
          1) Datasource -  this is the name of the datasource (eg.  SNOWFLAKE_CENSUS)
         
                  &#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
          2) User/password - for your
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           S
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
          nowflake account
         
                  &#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
          3) Server -  this is your
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           S
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
          nowflake URL -
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           WITHOUT the https://
          
                    &#xD;
    &lt;/span&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
          4) Database, Schema -  these are the DEFAULT locations when you sign-in.   These can be changed but if not explicitly changed in a workflow will default here
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           .
          
                    &#xD;
    &lt;/span&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
          5) Warehouse -  this is the compute resource this connection will use.  This can
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           '
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
          t be changed (easily anyway) so I highly recommend you use a warehouse that is always on extra-small.  If someone increases its size and you are happily blasting away with Alteryx you can get some bill surprises
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           .
          
                    &#xD;
    &lt;/span&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
          6)  Role. This also can
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           '
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
          t easily be changed.   I strongly suggest you don
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           '
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
          t use accountadmin for this unless this is your own personal playground
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           -
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
          then you own the toys play with them as you wish :)
         
                  &#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
          7) Tracing.  This can be blank but I recommend 4 (minimal logging)
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           .
          
                    &#xD;
    &lt;/span&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
          8) Authenticator/Proxy/No-Proxy -   Leave this all blank.  If you are using multi-factor and/or proxy servers lets hope you are not following this step by step guide.  (
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           I
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
          f you are then email us and we can certainly help with setting this up)
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           .
          
                    &#xD;
    &lt;/span&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;br/&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;br/&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
          Now
          
                    &#xD;
    &lt;span&gt;&#xD;
      &lt;span&gt;&#xD;
        
                        
            ,
           
                      &#xD;
      &lt;/span&gt;&#xD;
    &lt;/span&gt;&#xD;
    
                    
          you will be asked to configure a write driver.   
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           THIS IS IMPORTANT
          
                    &#xD;
    &lt;/span&gt;&#xD;
    &lt;span&gt;&#xD;
      
                      
           .
          
                    &#xD;
    &lt;/span&gt;&#xD;
    &lt;span&gt;&#xD;
      &lt;span&gt;&#xD;
        
                        
            WAKE UP NOW!
           
                      &#xD;
      &lt;/span&gt;&#xD;
    &lt;/span&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;br/&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
          If you plan on writing little or no data to
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           S
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
          nowflake from Alteryx
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           ,
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
          then select same as read driver here.  When I say little I typically mean 1000 rows at a time or less.  This is because standard ODBC drivers insert into databases one row at a time.  This is super inefficient even for
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           S
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
          nowflake.  If you do same as read driver and later decide you want to write 1,000,000 rows into snowflake with Alteryx you are
         
                  &#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;span&gt;&#xD;
      
                      
           a) GOING TO BURN LOADS AND LOADS OF CASH
          
                    &#xD;
    &lt;/span&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;span&gt;&#xD;
      
                      
           b) GOING TO THINK SNOWFLAKE IS HORRIBLE AND REGRET READING THIS BLOG
          
                    &#xD;
    &lt;/span&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;span&gt;&#xD;
      &lt;span&gt;&#xD;
        
                        
            c) WILL GO BACK TO EXCEL AND LOSE ALL HOPE OF A CAREER IN DATA
           
                      &#xD;
      &lt;/span&gt;&#xD;
    &lt;/span&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
          If you do want to load lots of data into
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           S
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
          nowflake fear not and use the bulk loading option.    At the time of this writing, bulk loading requires an s3 bucket and account.   However
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           ,
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
          there are alternative options in late stage beta and Demand Data has specifically built loaders for Azure and GCP (contact us for interest).   Setting up the s3 loader in self-explanatory but a little tricky.  If you get stuck
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           ,
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
          contact us and we can help.
         
                  &#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;br/&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
          **TECHNICAL ASIDE**** Read if you care. The bulk loader works by zipping your data into chunks and compressing it and uploading it into a temporary storage and then triggering
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           S
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
          nowflake to read this data directly into the engine.  It is amazingly efficient 
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           H
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
          ow efficient?   We can load from Alteryx 1,000,000 rows (1GB) in under 2 minutes.   Using the standard loader, this would take 24 hours or more.   
         
                  &#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;br/&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
          PHEW - Now you are done with that.    You should be able to pull up a list of tables and connect to one using standard SQL or the visual query builder.
         
                  &#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;span&gt;&#xD;
      &lt;span&gt;&#xD;
        
                        
            ﻿
           
                      &#xD;
      &lt;/span&gt;&#xD;
    &lt;/span&gt;&#xD;
  &lt;/p&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div&gt;&#xD;
  &lt;a&gt;&#xD;
    &lt;img src="https://irp-cdn.multiscreensite.com/81f1173d/dms3rep/multi/03-connect.png" alt=""/&gt;&#xD;
  &lt;/a&gt;&#xD;
&lt;/div&gt;</content:encoded>
      <enclosure url="https://irp-cdn.multiscreensite.com/81f1173d/dms3rep/multi/alteryx-logo-blue-smaller.png" length="14324" type="image/png" />
      <pubDate>Thu, 13 Aug 2020 15:02:07 GMT</pubDate>
      <guid>https://www.demanddata.io/connect-alteryx-to-snowflake</guid>
      <g-custom:tags type="string" />
      <media:content medium="image" url="https://irp-cdn.multiscreensite.com/81f1173d/dms3rep/multi/alteryx-logo-blue-smaller.png">
        <media:description>thumbnail</media:description>
      </media:content>
      <media:content medium="image" url="https://irp-cdn.multiscreensite.com/81f1173d/dms3rep/multi/alteryx-logo-blue-smaller.png">
        <media:description>main image</media:description>
      </media:content>
    </item>
    <item>
      <title>Basic Census Analytics with Alteryx</title>
      <link>https://www.demanddata.io/basic-census-analytics</link>
      <description />
      <content:encoded>&lt;h3&gt;&#xD;
  
                  
         US Census has details on 230,000 areas in the US
        
                &#xD;
&lt;/h3&gt;&#xD;
&lt;div data-rss-type="text"&gt;&#xD;
  &lt;div&gt;&#xD;
    
                    
          Now that you have connected to the census data, you can begin to explore it in huge detail using Alteryx. In this post, we can use the spatial tools to find local information about any area or zip code in the US.
         
                  &#xD;
  &lt;/div&gt;&#xD;
  &lt;div&gt;&#xD;
    &lt;br/&gt;&#xD;
  &lt;/div&gt;&#xD;
  &lt;div&gt;&#xD;
    
                    
          The following link contains the workflow in Alteryx.  It is based on a connection to the safegraph data set in the
          
                    &#xD;
    &lt;a href="http://www.demanddata.io/getting-started-snowflake-data-exchange" target="_blank"&gt;&#xD;
      
                      
           data exchange post
          
                    &#xD;
    &lt;/a&gt;&#xD;
    
                    
          .  
         
                  &#xD;
  &lt;/div&gt;&#xD;
  &lt;div&gt;&#xD;
    &lt;br/&gt;&#xD;
  &lt;/div&gt;&#xD;
  &lt;div&gt;&#xD;
    
                    
           
          
                    &#xD;
    &lt;a href="https://smithjameskgmail-my.sharepoint.com/:u:/g/personal/james_demanddata_io/Ecx_PkA_9jxNkfJCvlTvggEBX-xL35McFZc-V0xLDafrAg?e=7CWtSV" target="_blank"&gt;&#xD;
      
                      
           US_POPULATION_BY_BLOCK
          
                    &#xD;
    &lt;/a&gt;&#xD;
    &lt;br/&gt;&#xD;
  &lt;/div&gt;&#xD;
  &lt;div&gt;&#xD;
    &lt;br/&gt;&#xD;
  &lt;/div&gt;&#xD;
  &lt;div&gt;&#xD;
    
                    
          If you have followed the previous posts and setup a file connection, all you need to do is go to Options--&amp;gt;Advanced Options--&amp;gt;Workflow Dependencies and replace the my connection file with the file you setup to connect to your instance.
         
                  &#xD;
  &lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div&gt;&#xD;
  &lt;a&gt;&#xD;
    &lt;img src="https://irp-cdn.multiscreensite.com/81f1173d/dms3rep/multi/Workflow%2BDependencies.png" alt=""/&gt;&#xD;
  &lt;/a&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div data-rss-type="text"&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
          From her
          
                    &#xD;
    &lt;span&gt;&#xD;
      &lt;span&gt;&#xD;
        
                        
            e,
           
                      &#xD;
      &lt;/span&gt;&#xD;
    &lt;/span&gt;&#xD;
    
                    
          I'll walk through the basic workflow and then we can do a deeper dive into how this data
          
                    &#xD;
    &lt;span&gt;&#xD;
      &lt;span&gt;&#xD;
      &lt;/span&gt;&#xD;
    &lt;/span&gt;&#xD;
    
                    
          set is structured so we can ask more questions.
         
                  &#xD;
  &lt;/p&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div data-rss-type="text"&gt;&#xD;
  &lt;h3&gt;&#xD;
    &lt;span&gt;&#xD;
      
                      
           WORKFLOW WALKTHROUGH
          
                    &#xD;
    &lt;/span&gt;&#xD;
  &lt;/h3&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div data-rss-type="text"&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
          The top leg of the workflow starts with the census questions.  This contains all the questions on the 2010 census.  We first filter the questions to get questions related to population  "TABLE_ID" LIKE B0110%e%. 
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
            
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
          Snowflake uses standard SQL syntax meaning that the % symbol is a wildcard.  This says give me all tables starting with B0110 then that have an "e" and then any other value after that.   B0110 are all the population related questions and the e means estimate.  You can also get m meaning margin of error.
         
                  &#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;br/&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
          On the bottom leg of the workflow we are going to connect to the responses for the B01 table (this has the answers to each question) - the top leg has the questions themselves.    Here we can select the questions we are interested in.   In the example it's just total population.  But you could easily add other questions like male population between the ages of 22 to 24 by selecting B01001E10, as an example
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           .
          
                    &#xD;
    &lt;/span&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;span&gt;&#xD;
      &lt;span&gt;&#xD;
        
                        
            ﻿
           
                      &#xD;
      &lt;/span&gt;&#xD;
    &lt;/span&gt;&#xD;
  &lt;/p&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div&gt;&#xD;
  &lt;a&gt;&#xD;
    &lt;img src="https://irp-cdn.multiscreensite.com/81f1173d/dms3rep/multi/image+1.png" alt=""/&gt;&#xD;
  &lt;/a&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div data-rss-type="text"&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
          After each leg
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           ,
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
          we will use the datastream out tool to bring the result set into Alteryx.  On the bottom le
          
                    &#xD;
    &lt;span&gt;&#xD;
      &lt;span&gt;&#xD;
        
                        
            g,
           
                      &#xD;
      &lt;/span&gt;&#xD;
    &lt;/span&gt;&#xD;
    
                    
          we need a simple pivot to get the question_id as a row instead of a field (header). 
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           J
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
          oining will bring the question into context of the answer.  Then with the select tool we just choose the question context and now we can an answer by census block.
          
                    &#xD;
    &lt;span&gt;&#xD;
      &lt;span&gt;&#xD;
        
                        
            ﻿
           
                      &#xD;
      &lt;/span&gt;&#xD;
    &lt;/span&gt;&#xD;
  &lt;/p&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div&gt;&#xD;
  &lt;a&gt;&#xD;
    &lt;img src="https://irp-cdn.multiscreensite.com/81f1173d/dms3rep/multi/image2.png" alt=""/&gt;&#xD;
  &lt;/a&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div data-rss-type="text"&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
          Now a census block isn
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           '
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
          t very useful to us without context,
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           b
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
          ut there is a census block metadata table as well in the data source,
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           w
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
          hich has details on each census block.  That table for reference is
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           "METADATA_CBG_GEOGRAPHIC_DATA"
          
                    &#xD;
    &lt;/span&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;br/&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;span&gt;&#xD;
      &lt;span&gt;&#xD;
        
                        
            ﻿
           
                      &#xD;
      &lt;/span&gt;&#xD;
    &lt;/span&gt;&#xD;
    
                    
          Downloading this data and joining it back by census group gives you population as well as coordinates and the land area and water area for each census group.   
         
                  &#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;br/&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
          Adding a create points tool from the spatial object bar enables us to transform this data into a map object visible through any browse tool.
         
                  &#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;br/&gt;&#xD;
  &lt;/p&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div&gt;&#xD;
  &lt;a&gt;&#xD;
    &lt;img src="https://irp-cdn.multiscreensite.com/81f1173d/dms3rep/multi/image3.png" alt=""/&gt;&#xD;
  &lt;/a&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div data-rss-type="text"&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;span&gt;&#xD;
      
                      
           Now that is absurdly detailed!!    And remember we have details on this level for over 7,000 individual questions from the census.     In future posts we will show how to build this up to aggregate trade areas around your specific locations of interest.
          
                    &#xD;
    &lt;/span&gt;&#xD;
  &lt;/p&gt;&#xD;
&lt;/div&gt;</content:encoded>
      <enclosure url="https://irt-cdn.multiscreensite.com/608d29533a264674a08a4d94f08e0aef/dms3rep/multi/library_law.jpg" length="239062" type="image/jpeg" />
      <pubDate>Thu, 13 Aug 2020 14:56:57 GMT</pubDate>
      <guid>https://www.demanddata.io/basic-census-analytics</guid>
      <g-custom:tags type="string" />
      <media:content medium="image" url="https://irp-cdn.multiscreensite.com/81f1173d/dms3rep/multi/Background+Picture.png">
        <media:description>thumbnail</media:description>
      </media:content>
      <media:content medium="image" url="https://irt-cdn.multiscreensite.com/608d29533a264674a08a4d94f08e0aef/dms3rep/multi/library_law.jpg">
        <media:description>main image</media:description>
      </media:content>
    </item>
    <item>
      <title>Open your store with Alteryx</title>
      <link>https://www.demanddata.io/open-your-store-with-alteryx</link>
      <description />
      <content:encoded>&lt;h3&gt;&#xD;
  
         Data sets and Workflows used in Alteryx Webinar
        &#xD;
&lt;/h3&gt;&#xD;
&lt;div data-rss-type="text"&gt;&#xD;
  &lt;div&gt;&#xD;
    
          This post contains the content and workflows used in the opening your store with Alteryx webinar.  These data sets will enable you to replicate and expand on the work to help retailers assess the impact of COVID on their business.
         &#xD;
  &lt;/div&gt;&#xD;
  &lt;div&gt;&#xD;
    &lt;br/&gt;&#xD;
  &lt;/div&gt;&#xD;
  &lt;div&gt;&#xD;
    
          The full package of data and workflows is available in the attached zip file or go through and review piece by piece.   
          &#xD;
    &lt;font&gt;&#xD;
      &lt;a href="https://smithjameskgmail-my.sharepoint.com/:u:/g/personal/james_demanddata_io/EZY1sMD-qpdNvmJhnFasM1AB84PlDL_3FMLNmG-X3DB-og?e=AabB23" target="_blank"&gt;&#xD;
        
            ZIP 
           &#xD;
      &lt;/a&gt;&#xD;
    &lt;/font&gt;&#xD;
  &lt;/div&gt;&#xD;
  &lt;div&gt;&#xD;
    &lt;br/&gt;&#xD;
  &lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div data-rss-type="text"&gt;&#xD;
  &lt;h3&gt;&#xD;
    &lt;span&gt;&#xD;
      
           Get COVID Cases
          &#xD;
    &lt;/span&gt;&#xD;
  &lt;/h3&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div data-rss-type="text"&gt;&#xD;
  &lt;p&gt;&#xD;
    
          The workflow for covid cases is attached below:
         &#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;a href="https://smithjameskgmail-my.sharepoint.com/:u:/g/personal/james_demanddata_io/EYAFVMicQpVMo1hcuk3qedUBosEdkzMs6FUz3yARy0Qkpg?e=pFuqJb" target="_blank"&gt;&#xD;
      
           COVID WORKFLOW
          &#xD;
    &lt;/a&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;br/&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;span&gt;&#xD;
      
           The prerequisite data
          &#xD;
    &lt;/span&gt;&#xD;
    &lt;span&gt;&#xD;
      &lt;span&gt;&#xD;
      &lt;/span&gt;&#xD;
    &lt;/span&gt;&#xD;
    &lt;span&gt;&#xD;
      
           sets for this are:
          &#xD;
    &lt;/span&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;span&gt;&#xD;
      &lt;span&gt;&#xD;
        
            1)  Snowflake data exchange share - starschema dataset (see connecting to
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/span&gt;&#xD;
    &lt;span&gt;&#xD;
      
           `S
          &#xD;
    &lt;/span&gt;&#xD;
    &lt;span&gt;&#xD;
      
           nowflake
          &#xD;
    &lt;/span&gt;&#xD;
    &lt;span&gt;&#xD;
      
           )
          &#xD;
    &lt;/span&gt;&#xD;
    
            OR feel free to plug in data from Johns Hopkins which is available
          &#xD;
    &lt;a href="https://github.com/CSSEGISandData/COVID-19/tree/master/csse_covid_19_data/csse_covid_19_time_series" target="_blank"&gt;&#xD;
      
           HERE
          &#xD;
    &lt;/a&gt;&#xD;
    
          (might need some tweaking)
         &#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    
          2) Census shape files - available
          &#xD;
    &lt;a href="https://www2.census.gov/geo/tiger/GENZ2018/shp/cb_2018_us_county_500k.zip" target="_blank"&gt;&#xD;
      
           HERE
          &#xD;
    &lt;/a&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    
          3) Census 2019 population estimate - available
          &#xD;
    &lt;a href="https://www2.census.gov/programs-surveys/popest/tables/2010-2019/counties/totals/co-est2019-annres.xlsx" target="_blank"&gt;&#xD;
      
           HERE
          &#xD;
    &lt;/a&gt;&#xD;
    &lt;br/&gt;&#xD;
  &lt;/p&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div data-rss-type="text"&gt;&#xD;
  &lt;h3&gt;&#xD;
    &lt;span&gt;&#xD;
      
           GET Mobility Data
          &#xD;
    &lt;/span&gt;&#xD;
  &lt;/h3&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div data-rss-type="text"&gt;&#xD;
  &lt;p&gt;&#xD;
    
          The workflow for mobility data is attached:
         &#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;a href="https://smithjameskgmail-my.sharepoint.com/:u:/g/personal/james_demanddata_io/EenjkP4IAc5GipslbSFX_QYBNzFIBTVYW7DUTo_naHGb_w?e=53J62R" target="_blank"&gt;&#xD;
      
           MOBILITY WORKFLOW
          &#xD;
    &lt;/a&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;br/&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    
          The prerequisites data
          &#xD;
    &lt;span&gt;&#xD;
      
            
          &#xD;
    &lt;/span&gt;&#xD;
    
          sets for this are:
         &#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    
          1) 
          &#xD;
    &lt;a href="https://www.google.com/covid19/mobility/" target="_blank"&gt;&#xD;
      
           Google mobility index
          &#xD;
    &lt;/a&gt;&#xD;
    &lt;span&gt;&#xD;
      &lt;span&gt;&#xD;
        
             
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/span&gt;&#xD;
  &lt;/p&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div data-rss-type="text"&gt;&#xD;
  &lt;h3&gt;&#xD;
    &lt;span&gt;&#xD;
      
           Get Population by Block
          &#xD;
    &lt;/span&gt;&#xD;
  &lt;/h3&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div data-rss-type="text"&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;span&gt;&#xD;
      
           This is easy!  Just look at the other post --&amp;gt;
          &#xD;
    &lt;/span&gt;&#xD;
    &lt;span&gt;&#xD;
      &lt;span&gt;&#xD;
      &lt;/span&gt;&#xD;
    &lt;/span&gt;&#xD;
    &lt;a href="http://www.demanddata.io/basic-census-analytics"&gt;&#xD;
      
           http://www.demanddata.io/basic-census-analytics
          &#xD;
    &lt;/a&gt;&#xD;
  &lt;/p&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div data-rss-type="text"&gt;&#xD;
  &lt;h3&gt;&#xD;
    &lt;span&gt;&#xD;
      
           Bring it all together
          &#xD;
    &lt;/span&gt;&#xD;
  &lt;/h3&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div data-rss-type="text"&gt;&#xD;
  &lt;p&gt;&#xD;
    
          The link to this workflow:
         &#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;a href="https://smithjameskgmail-my.sharepoint.com/:u:/g/personal/james_demanddata_io/EZbtV5Uaq5FOs5ofgFcBs5cBh2U7N-mzaRlUryl4_a118Q?e=I5iW5d" target="_blank"&gt;&#xD;
      
           Bring it all together
          &#xD;
    &lt;/a&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;br/&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    
          Prerequisites for this workflow.   
         &#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    
          1)  Connection to
          &#xD;
    &lt;span&gt;&#xD;
      
           D
          &#xD;
    &lt;/span&gt;&#xD;
    
          emand
          &#xD;
    &lt;span&gt;&#xD;
      
           D
          &#xD;
    &lt;/span&gt;&#xD;
    
          ata retailer database (See post on connecting via
          &#xD;
    &lt;span&gt;&#xD;
      
           S
          &#xD;
    &lt;/span&gt;&#xD;
    
          nowflake) -  or import your own locations of interest!!
         &#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    
          2)  Mobility to Geo mapping table (maps the name of each county to its coordinates) --&amp;gt;
          &#xD;
    &lt;a href="https://smithjameskgmail-my.sharepoint.com/:u:/g/personal/james_demanddata_io/Eccx3hI-BE5Mr2GLZb5P5QcBYaBWkBYH8RNHaxGBjVzSng?e=HYW1jj" target="_blank"&gt;&#xD;
      
           HERE
          &#xD;
    &lt;/a&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    
          3) Employee Data (this is dummy data but connect your own!!) --&amp;gt;
          &#xD;
    &lt;a href="https://smithjameskgmail-my.sharepoint.com/:u:/g/personal/james_demanddata_io/ET0gGyzSwy1BsgNlRUls1ZkBMjdgYx7TGrh-iP6RxV3EsA?e=IDqYFo" target="_blank"&gt;&#xD;
      
           HERE
          &#xD;
    &lt;/a&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    
          4) US zipcodes all match to coordinates.  All US zip codes and their geographic metadata --&amp;gt;
          &#xD;
    &lt;a href="https://smithjameskgmail-my.sharepoint.com/:x:/g/personal/james_demanddata_io/EeYLJFV0RclAsqWX5S-9I0QBQnFdvDK9eT1tDvAPHM_7TA?e=hfrcMy" target="_blank"&gt;&#xD;
      
           HERE
          &#xD;
    &lt;/a&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;br/&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    
          Then you need the ouputs from the first 3 workflows as well.
         &#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;br/&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;span&gt;&#xD;
      &lt;span&gt;&#xD;
        
            ﻿
           &#xD;
      &lt;/span&gt;&#xD;
    &lt;/span&gt;&#xD;
  &lt;/p&gt;&#xD;
&lt;/div&gt;</content:encoded>
      <enclosure url="https://irt-cdn.multiscreensite.com/ef621c33f6e54f47a1448c010061a238/dms3rep/multi/adult-blockchain-blond-1037913.jpg" length="127773" type="image/jpeg" />
      <pubDate>Thu, 13 Aug 2020 14:49:39 GMT</pubDate>
      <guid>https://www.demanddata.io/open-your-store-with-alteryx</guid>
      <g-custom:tags type="string" />
      <media:content medium="image" url="https://irp-cdn.multiscreensite.com/81f1173d/dms3rep/multi/Webinar+background.png">
        <media:description>thumbnail</media:description>
      </media:content>
      <media:content medium="image" url="https://irt-cdn.multiscreensite.com/ef621c33f6e54f47a1448c010061a238/dms3rep/multi/adult-blockchain-blond-1037913.jpg">
        <media:description>main image</media:description>
      </media:content>
    </item>
    <item>
      <title>Getting Started with Snowflake Data Exchange</title>
      <link>https://www.demanddata.io/getting-started-snowflake-data-exchange</link>
      <description />
      <content:encoded>&lt;h3&gt;&#xD;
  
                  
         Get Live Data from Snowflake Data Exchange
        
                &#xD;
&lt;/h3&gt;&#xD;
&lt;div data-rss-type="text"&gt;&#xD;
  
                  
         In this post, we will run through how to connect your existing Snowflake account to the Snowflake data exchange or set up a trial so you can immediately start accessing live external data for your analytics.
        
                &#xD;
&lt;/div&gt;&#xD;
&lt;div data-rss-type="text"&gt;&#xD;
  &lt;h3&gt;&#xD;
    
                    
          Setup a new account:
         
                  &#xD;
  &lt;/h3&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
          If you already have access to a
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           S
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
          nowflake account
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           ,
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
          congratulations!  You can skip these steps.  If not
          
                    &#xD;
    &lt;span&gt;&#xD;
      &lt;span&gt;&#xD;
        
                        
            ,
           
                      &#xD;
      &lt;/span&gt;&#xD;
    &lt;/span&gt;&#xD;
    
                    
          go to trial.snowflake.com.   On the below page, indicate your edition (Enterprise is the correct choice for 95% of applications) and your chosen cloud.  Within minutes
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           ,
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
          you will receive an email with your account id.  It looks something like XX1234-us-west.azure.snowflake.com. When you activate the link, create your account admin username and password
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           ,
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
          and you are ready to go. 
          
                    &#xD;
    &lt;br/&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;h3&gt;&#xD;
    &lt;span&gt;&#xD;
      &lt;span&gt;&#xD;
        
                        
            ﻿
           
                      &#xD;
      &lt;/span&gt;&#xD;
    &lt;/span&gt;&#xD;
  &lt;/h3&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div&gt;&#xD;
  &lt;a&gt;&#xD;
    &lt;img src="https://irp-cdn.multiscreensite.com/81f1173d/dms3rep/multi/01-Snowflake.png" alt=""/&gt;&#xD;
  &lt;/a&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div data-rss-type="text"&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
          Once your account is setup
          
                    &#xD;
    &lt;span&gt;&#xD;
      &lt;span&gt;&#xD;
        
                        
            ,
           
                      &#xD;
      &lt;/span&gt;&#xD;
    &lt;/span&gt;&#xD;
    
                    
          on the worksheet tab, my recommendation is to immediately execute the following code:
         
                  &#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;br/&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;span&gt;&#xD;
      
                      
           CREATE WAREHOUSE MY_COMPUTE_WAREHOUSE;
          
                    &#xD;
    &lt;/span&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;span&gt;&#xD;
      
                      
           ALTER WAREHOUSE MY_COMPUTE_WAREHOUSE SET WAREHOUSE_SIZE = "X-Small", AUTO_SUSPEND = 60;
          
                    &#xD;
    &lt;/span&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;br/&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
          This will create a brand new compute warehouse and set it to the smallest size with the minimum auto-off (after 60 seconds).  Unless you are dealing with huge data
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
            
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
          sets, for the type of investigation we will be doing these settings will ensure you get the most of your $400 in free credit (and if you stick to an extra-small warehouse you will easily get a full month of querying in!)
          
                    &#xD;
    &lt;span&gt;&#xD;
      &lt;span&gt;&#xD;
      &lt;/span&gt;&#xD;
    &lt;/span&gt;&#xD;
  &lt;/p&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div data-rss-type="text"&gt;&#xD;
  &lt;h3&gt;&#xD;
    &lt;span&gt;&#xD;
      
                      
           Connect and Search the Data Exchange﻿
          
                    &#xD;
    &lt;/span&gt;&#xD;
  &lt;/h3&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div data-rss-type="text"&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
          From your main page,  just hit the marketplace logo and begin to search through all the data providers that are available. 
          
                    &#xD;
    &lt;span&gt;&#xD;
      &lt;span&gt;&#xD;
        
                        
            ﻿
           
                      &#xD;
      &lt;/span&gt;&#xD;
    &lt;/span&gt;&#xD;
  &lt;/p&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div&gt;&#xD;
  &lt;a&gt;&#xD;
    &lt;img src="https://irp-cdn.multiscreensite.com/81f1173d/dms3rep/multi/02-Data_marketplace.png" alt=""/&gt;&#xD;
  &lt;/a&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div data-rss-type="text"&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
          From here
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           ,
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
          make sure you
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           have selected
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
          account admin role and select your listing to subscribe to it.  Note that standard listings are available immediately. 
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           Y
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
          ou may need to set the role to ACCOUNTADMIN to subscribe. 
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           Subscribing to a p
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
          ersonalized listing require
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           s
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
          some interaction with the provider and may or may not have a separate subscription fee.   
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           I
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
          n the
          
                    &#xD;
    &lt;span&gt;&#xD;
      &lt;span&gt;&#xD;
        
                        
            image
           
                      &#xD;
      &lt;/span&gt;&#xD;
    &lt;/span&gt;&#xD;
    
                    
          below
          
                    &#xD;
    &lt;span&gt;&#xD;
      &lt;span&gt;&#xD;
      &lt;/span&gt;&#xD;
    &lt;/span&gt;&#xD;
    
                    
          ,  we are going to use this data
          
                    &#xD;
    &lt;span&gt;&#xD;
      &lt;span&gt;&#xD;
      &lt;/span&gt;&#xD;
    &lt;/span&gt;&#xD;
    
                    
          set provided by
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           S
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
          afegraph to power some of next steps.     
         
                  &#xD;
  &lt;/p&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div&gt;&#xD;
  &lt;a&gt;&#xD;
    &lt;img src="https://irp-cdn.multiscreensite.com/81f1173d/dms3rep/multi/03-data-marketplave.png" alt=""/&gt;&#xD;
  &lt;/a&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div data-rss-type="text"&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
          Once you have done that,  back in
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           S
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
          nowflake you will immediately see all the tables in a new database in
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           S
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
          nowflake (you may have to refresh
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           .
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
          )
          
                    &#xD;
    &lt;br/&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
          Then in line with best practice
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           , r
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
          un this line of code to allow for a non accountadmin to use the database.   (It is advised that you limit the number of people who use accountadmin role and do not use it as a role for querying data
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           .
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
          )
         
                  &#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;br/&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;span&gt;&#xD;
      
                      
           GRANT IMPORTED PRIVILEGES ON DATABASE "SAFEGRAPH_AZURE_WESTEUROPE_SAFEGRAPH_CENSUS_DATA" TO ROLE SYSADMIN 
          
                    &#xD;
    &lt;/span&gt;&#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    
                    
          From here
          
                    &#xD;
    &lt;span&gt;&#xD;
      
                      
           ,
          
                    &#xD;
    &lt;/span&gt;&#xD;
    
                    
          you are ready to query this data,  however as we believe in no code/low code
          
                    &#xD;
    &lt;span&gt;&#xD;
      &lt;span&gt;&#xD;
        
                        
            ,
           
                      &#xD;
      &lt;/span&gt;&#xD;
    &lt;/span&gt;&#xD;
    
                    
          the next post will show you how to connect to this data from Alteryx and the fun will begin!
         
                  &#xD;
  &lt;/p&gt;&#xD;
  &lt;p&gt;&#xD;
    &lt;span&gt;&#xD;
      &lt;span&gt;&#xD;
        
                        
            ﻿
           
                      &#xD;
      &lt;/span&gt;&#xD;
    &lt;/span&gt;&#xD;
  &lt;/p&gt;&#xD;
&lt;/div&gt;</content:encoded>
      <enclosure url="https://irp-cdn.multiscreensite.com/81f1173d/dms3rep/multi/snowflake.jpeg" length="25010" type="image/jpeg" />
      <pubDate>Wed, 12 Aug 2020 11:17:06 GMT</pubDate>
      <guid>https://www.demanddata.io/getting-started-snowflake-data-exchange</guid>
      <g-custom:tags type="string" />
      <media:content medium="image" url="https://irp-cdn.multiscreensite.com/81f1173d/dms3rep/multi/snowflake.jpeg">
        <media:description>thumbnail</media:description>
      </media:content>
      <media:content medium="image" url="https://irp-cdn.multiscreensite.com/81f1173d/dms3rep/multi/snowflake.jpeg">
        <media:description>main image</media:description>
      </media:content>
    </item>
  </channel>
</rss>
