Welcome [tc18.tableau.com] · Operationalizing and Scaling Tableau Prep. American Culture. What is...

56

Transcript of Welcome [tc18.tableau.com] · Operationalizing and Scaling Tableau Prep. American Culture. What is...

Page 1: Welcome [tc18.tableau.com] · Operationalizing and Scaling Tableau Prep. American Culture. What is Culture The social behavior and norms found in human societies It tells us how we
Page 2: Welcome [tc18.tableau.com] · Operationalizing and Scaling Tableau Prep. American Culture. What is Culture The social behavior and norms found in human societies It tells us how we

Welcome

Page 3: Welcome [tc18.tableau.com] · Operationalizing and Scaling Tableau Prep. American Culture. What is Culture The social behavior and norms found in human societies It tells us how we

Tableau Prep: Below Decks

# T C 1 8

Doug Thomae

Staff Software Engineer

Tableau

Page 4: Welcome [tc18.tableau.com] · Operationalizing and Scaling Tableau Prep. American Culture. What is Culture The social behavior and norms found in human societies It tells us how we

Goal

That you understand enough to start investigating the operation of Tableau Prep on your own, if you want to.

Page 5: Welcome [tc18.tableau.com] · Operationalizing and Scaling Tableau Prep. American Culture. What is Culture The social behavior and norms found in human societies It tells us how we

Agenda

American Culture

Executing A Flow (Batch)

Measuring Culture

Interacting With A Flow

Operationalizing and Scaling Tableau Prep

Page 6: Welcome [tc18.tableau.com] · Operationalizing and Scaling Tableau Prep. American Culture. What is Culture The social behavior and norms found in human societies It tells us how we

American Culture

Page 7: Welcome [tc18.tableau.com] · Operationalizing and Scaling Tableau Prep. American Culture. What is Culture The social behavior and norms found in human societies It tells us how we

What is Culture

The social behavior and norms found in human societiesIt tells us how we should behave and relate to other people and other cultures

A “programmed” lens that affects how we interpret events in our environment

What’s dangerous?

What’s beneficial?

How do we decide?

Culture has a large influence on mass behavior…but influences individuals in the culture to varying degrees

Page 8: Welcome [tc18.tableau.com] · Operationalizing and Scaling Tableau Prep. American Culture. What is Culture The social behavior and norms found in human societies It tells us how we

American “Nations”

USA consists of 11 regional culturesBased on history. Outlined in dialect maps, genetic study

Complex mapping from culture to politics, religion and issues

Similar ideas that came beforeWilber Zelinsky, “Doctrine of First Effective Settlement”

Kevin Phillips, Emerging Republican Majority, 1969

Joel Garreau, The Nine Nations of North America, 1981

David Hackett Fisher, Albion’s Seed, 1989

David Hackett Fisher, Champlain’s Dream, 2008

Robert Cushing, The Big Sort, 2008

…and others…

Page 9: Welcome [tc18.tableau.com] · Operationalizing and Scaling Tableau Prep. American Culture. What is Culture The social behavior and norms found in human societies It tells us how we
Page 10: Welcome [tc18.tableau.com] · Operationalizing and Scaling Tableau Prep. American Culture. What is Culture The social behavior and norms found in human societies It tells us how we

“American Nations” vs. Genome Map

Han, Carbonetto, Curtis, Wang, Granka, Byrnes, Noto, Kermany, Myres, Barber, Rand, Song, Roman, Battat, Elyashiv, Guturu, Hong, Chahine, Ball, “Clustering of 770,000 genomes reveals post-colonial population structure of North America”, Nature Communications 8, Article number 14238, 07 February 2017

Page 11: Welcome [tc18.tableau.com] · Operationalizing and Scaling Tableau Prep. American Culture. What is Culture The social behavior and norms found in human societies It tells us how we

Executing Batch Flows

Page 12: Welcome [tc18.tableau.com] · Operationalizing and Scaling Tableau Prep. American Culture. What is Culture The social behavior and norms found in human societies It tells us how we

The Beginning of the Beginning: Filtered Map

Page 13: Welcome [tc18.tableau.com] · Operationalizing and Scaling Tableau Prep. American Culture. What is Culture The social behavior and norms found in human societies It tells us how we

Tableau Prep Desktop is Web Client/Server

Electron’s embedded Chrome

Electron

TP Front End(Typescript, React,

Redux)

TP Back End(Spring + Collection

of Java Services)

Tableau Query Pipeline + Connector Platform

HTTPS

AQL

PostgreSQL Server“Customer Database”

Front End Back End

C++ Stack

Page 14: Welcome [tc18.tableau.com] · Operationalizing and Scaling Tableau Prep. American Culture. What is Culture The social behavior and norms found in human societies It tells us how we

Tableau Prep Back End Services

Service Name Purpose

Cache Analysis Service Caching of data for interactive operation

Connection ServicePresentation models for connection dialogs.

Enables sharing of presentation models/dialogs with rest of Tableau products

File Service Storing and saving .tfl/.tflx documents. Probably should be named “document service”

Flow Executor Service Entry point for compiling and initiating flows runs

Flow Operation Service Manages binning and brushing during interactive operation

Function Def ServiceRetrieves Tableau function definitions from C++ stack.

Enables sharing of functions/formulas with rest of Tableau products

Page 15: Welcome [tc18.tableau.com] · Operationalizing and Scaling Tableau Prep. American Culture. What is Culture The social behavior and norms found in human societies It tells us how we

Tableau Prep Back End Services

Service Name Purpose

Desktop Integration Service Returns information about installed Tableau Desktop products

Licensing Service License validation and activation

Versioning Service Document versioning (in the “documents from different releases” sense of version)

LoomDoc Validator Service Analyzes/validates LoomDoc objects

Node Validator Service Validates single nodes by doing a front end compile and returning errors (or not)

MRU Flow Service Persists/retrieves the most recently used documents list

Page 16: Welcome [tc18.tableau.com] · Operationalizing and Scaling Tableau Prep. American Culture. What is Culture The social behavior and norms found in human societies It tells us how we

Tableau Prep Back End Services

Service Name Purpose

Status Service Tracks/returns the status of flows that have been initiated by the Flow Executor Service.

Telemetry Service Gathers/sends telemetry (if the user has chosen that option).

Page 17: Welcome [tc18.tableau.com] · Operationalizing and Scaling Tableau Prep. American Culture. What is Culture The social behavior and norms found in human societies It tells us how we

What is a Tableau Prep Flow?

Answer 1: It’s the graph displayed in the top pane

Answer 2: It’s a specification defined in loom-lang“loom-lang” is the language that captures flow definitions

It’s only current textual form is in JSON

Answer 3: It’s a set of specifications for queriesEach node in a flow is a specification for a query (e.g. for a SQL database or in Hyper)

When federation is involved, it may be multiple queries

Page 18: Welcome [tc18.tableau.com] · Operationalizing and Scaling Tableau Prep. American Culture. What is Culture The social behavior and norms found in human societies It tells us how we

Same Flow Graph, One Level Down

Input Node Output Node

Container Node

Filter off HI

Page 19: Welcome [tc18.tableau.com] · Operationalizing and Scaling Tableau Prep. American Culture. What is Culture The social behavior and norms found in human societies It tells us how we

Flow Document/Loom-Lang

{“nodes”:{<see next page>

},“connections”: {

“53bcf9c0-59a8-4f42-bf28-daf4be6b144c”:{“connectionType”: “.v1.SqlConnection”,“isPackaged”: false“name”: “dthomae2.tsi.lan”,

“connectionAttributes”: {“server”: “dthomae2.tsi.lan”,“dbname”: “tc18”,“port”: “5432”,“class”: postgres

}}

}}

Connection id, unique within a flow

Standard fields for all connections

connectionAttributes differ by connection class

Page 20: Welcome [tc18.tableau.com] · Operationalizing and Scaling Tableau Prep. American Culture. What is Culture The social behavior and norms found in human societies It tells us how we

Flow Document/Loom-Lang, continued

{“nodes”:{

“074e9fd5-e4a5-4217-80b2-2caa214f02bf”:{“nodeType”: “.v1.LoadSql”,“name”: “county_to_nation_map”,“id”: “074e9fd5-e4a5-4217-80b2-2caa214f02bf”,“baseType”: “input”,“nextNodes”: [{

“namespace”: “Default”,“nextNodeId”: “a77e4d8e-387d-4ccd-be23-75b487896686”,“nextNamespace”: “Default”

}],

<node type specific fields>}

},“connections”: {…}

}

Node id, unique within a flow

Standard fields for all nodes

074e9fd5-e4a5-4217-80b2-2caa214f02bf

Page 21: Welcome [tc18.tableau.com] · Operationalizing and Scaling Tableau Prep. American Culture. What is Culture The social behavior and norms found in human societies It tells us how we

Flow Document/Loom-Lang, continued{

“nodes”:{“074e9fd5-e4a5-4217-80b2-2caa214f02bf”:{“nodeType”: “.v1.LoadSql”,“baseType”: “input”,“nextNodes”: [{“nextNodeId”: “a77…”,“nextNamespace”: “Default”}],

},“a77e4d8e-387d-4cc-be23-75b487896686”:{“nodeType”: “.v1.Container”,“baseType”: “container”,“nextNodes”: [{“nextNodeId”: “132…”,“nextNamespace”: “Default”}],“loomContainer”: {

“nodes”: {“120daf25-3ae2-4f11-b83d-b5c87651edfd”: {

“nodeType” : “.v1.RangeFilter”,“baseType”: “transform”,“nextNodes” : []

}}

}}

},…

Page 22: Welcome [tc18.tableau.com] · Operationalizing and Scaling Tableau Prep. American Culture. What is Culture The social behavior and norms found in human societies It tells us how we

Loom-Lang, continued

All nodes have:A type, which has a version component and a type name

A name

An id which is unique within the flow

A base type, one of input, output, transform, container, and supernode (another type of container)

…followed by node type specific fields

Every node input and output exists in a namespace:Namespaces are how Tableau Prep keeps duplicate column names straight

Single input/single output nodes use the “Default” namespace

Join nodes have an incoming “Left” and “Right” namespace

General multi-input nodes (e.g. Unions) generate guids as namespaces

Page 23: Welcome [tc18.tableau.com] · Operationalizing and Scaling Tableau Prep. American Culture. What is Culture The social behavior and norms found in human societies It tells us how we

Compilation and Queries

Flow executor Service

Loom engine

Front end compiler

Pre-compilation

Build node and type info

Back end compiler

Build execution

plan

Create nodeLogical and

physical models

AQLRunner Querypipeline

Connectorplatform

PostgreSQLdatabase

Database agnostic “logical” query

Database dependentSQL query

Error info

Tableau data platform

Page 24: Welcome [tc18.tableau.com] · Operationalizing and Scaling Tableau Prep. American Culture. What is Culture The social behavior and norms found in human societies It tells us how we

Logical Query for Our Flow<logical-query>

<selects><field>[stcou]</field>

...other fields</selects><projectOp class=\"logical-operator\">

<expressions><binding name=[stcou]><identifierExp identifier=\"[stcou]\" class=\"logical-expression\"/></binding>

…other fields<projectOp><selectOp class=\"logical-operator\">

<predicate><funcallExp function=\"!\" shape=\"scalar\" class=\"logical-expression\">

<funcallExp function=\"&amp;&amp;\" shape=\"scalar\" class=\"logical-expression\"><funcallExp function=\"==\" shape=\"scalar\" class=\"logical-expression\">

<identifierExp identifier=\"[state]\" class=\"logical-expression\"/><literalExp value=\"&quot;HI&quot;\" datatype=\"string\" class=\"logical-expression\"/>

</funcallExp><funcallExp function=\"!\" shape=\"scalar\" class=\"logical-expression\">

<funcallExp function=\"ISNULL\" shape=\"scalar\" class=\"logical-expression\"><identifierExp identifier=\"[state]\" class=\"logical-expression\"/>

</funcallExp></funcallExp>

</funcallExp></funcallExp>

</predicate>…table and field name information

</logical-query>

Page 25: Welcome [tc18.tableau.com] · Operationalizing and Scaling Tableau Prep. American Culture. What is Culture The social behavior and norms found in human societies It tells us how we

PostgreSQL QuerySELECT "e1b673e1-afa9-47aa-bbac-0b12dc"."stcou" AS "stcou","e1b673e1-afa9-47aa-bbac-0b12dc"."county" AS "county","e1b673e1-afa9-47aa-bbac-0b12dc"."state" AS "state","e1b673e1-afa9-47aa-bbac-0b12dc"."nation" AS "nation“

FROM "public"."county_to_nation_map" "e1b673e1-afa9-47aa-bbac-0b12dc“WHERE (NOT (("e1b673e1-afa9-47aa-bbac-0b12dc"."state" = 'HI’)

AND (NOT ("e1b673e1-afa9-47aa-bbac-0b12dc"."state" IS NULL)))

)

Page 26: Welcome [tc18.tableau.com] · Operationalizing and Scaling Tableau Prep. American Culture. What is Culture The social behavior and norms found in human societies It tells us how we

We Use Hyper Under the Covers a Lot

Local Files (e.g. .csv, .xls) are put into Hyper:Connector creates a table in Hyper and transfers data into it

Queries are then generated for Hyper, just as if it was any other database

Hyper is used for federationFederation brings together data in one place to do cross database joins

Hyper is the place where the data is brought together

Federation for Tableau Prep is exactly the same as it is for other Tableau products

Page 27: Welcome [tc18.tableau.com] · Operationalizing and Scaling Tableau Prep. American Culture. What is Culture The social behavior and norms found in human societies It tells us how we

Handling Local Files, continued

Same data comes from .csv instead of PostgreSQL, Hyper sees:1) At ingestion time a table is created and data copied into it

CREATE TABLE "TableauTemp"."CountyToNationMapUSA#csv" ("STCOU" BIGINT, "County" TEXT COLLATE "en_US", "State" TEXT COLLATE "en_US","Nation\" TEXT COLLATE "en_US")

COPY "TableauTemp"."CountyToNationMapUSA#csv" ("STCOU", "County", "State", "Nation") FROM STDIN WITH (FORMAT HYPERBINARY, SANITIZE)

2) Later, when the query happensSELECT "-1384900078"."STCOU" AS "STCOU“,

"-1384900078".\"County\" AS \"County\","-1384900078"."State" AS "State","-1384900078"."Nation" AS "Nation”

FROM "TableauTemp"."CountyToNationMapUSA#csv" "-1384900078“WHERE (NOT (("-1384900078"."State" = 'HI') AND (NOT ("-1384900078"."State" IS NULL)))

Page 28: Welcome [tc18.tableau.com] · Operationalizing and Scaling Tableau Prep. American Culture. What is Culture The social behavior and norms found in human societies It tells us how we

Measuring Culture

Page 29: Welcome [tc18.tableau.com] · Operationalizing and Scaling Tableau Prep. American Culture. What is Culture The social behavior and norms found in human societies It tells us how we

Hofstede’s Cultural Dimensions

Geert Hofstede devised a set of dimensions that can be used to compare cultures:

Power Distance—degree of acceptance of unequal power

Individualism vs. collectivism—degree of integration into groups

Uncertainty avoidance—a society’s tolerance for things outside the status quo

Masculinity vs. femininity—degree of preference for achievement, heroism, assertiveness

Long-term orientation—degree to which a society is able/willing to adapt or change

Indulgence vs. restraint—degree to which behavior is controlled by social norms

Page 30: Welcome [tc18.tableau.com] · Operationalizing and Scaling Tableau Prep. American Culture. What is Culture The social behavior and norms found in human societies It tells us how we

Hofestede’s Dimensions Can Be Measured

High power distance:Greater income inequality

Smaller middle class

Dictatorships or oligarchies

Violence in national politics

Political systems changed by revolution

Business executives older

Innovations only when supported by hierarchy

Low power distance:Smaller income inequality

Larger middle class

Separation of powers

Peaceful political conflict resolution

Political systems changed by evolution

Business executives younger

Spontaneous innovations

Note that these are measures that allow

cultures to be compared, not absolute indices

Page 31: Welcome [tc18.tableau.com] · Operationalizing and Scaling Tableau Prep. American Culture. What is Culture The social behavior and norms found in human societies It tells us how we

Gini Coefficient

The Gini coefficient measures income inequality:

Page 32: Welcome [tc18.tableau.com] · Operationalizing and Scaling Tableau Prep. American Culture. What is Culture The social behavior and norms found in human societies It tells us how we

Interacting With Flows

Page 33: Welcome [tc18.tableau.com] · Operationalizing and Scaling Tableau Prep. American Culture. What is Culture The social behavior and norms found in human societies It tells us how we

Prepping ACS Gini Data

Page 34: Welcome [tc18.tableau.com] · Operationalizing and Scaling Tableau Prep. American Culture. What is Culture The social behavior and norms found in human societies It tells us how we

Binning

Binning produces the vertical “bar chart” of values in the profile pane:

The Flow Operation service is called to generate the binned values

It uses the Flow Executor service to generate the actual queries

Binning uses various “bin strategies” to decide how to do the actual binning:

A bin strategy decides how to select the values/ranges that will be shown to the user

When the user clicks on the node a bin strategy is chosen based on the type of the column

The final binning operation is a count of something, although continuous ranges need to be partitioned first

Page 35: Welcome [tc18.tableau.com] · Operationalizing and Scaling Tableau Prep. American Culture. What is Culture The social behavior and norms found in human societies It tells us how we

Walking Through the Gini Flow (Binning)

Page 36: Welcome [tc18.tableau.com] · Operationalizing and Scaling Tableau Prep. American Culture. What is Culture The social behavior and norms found in human societies It tells us how we

The Hyper ViewSELECT COUNT(1) AS Measure,

t0.Dimension AS Dimension

FROM (

SELECT hyper.GEO.id AS GEO.id,

hyper.HD02_VD01 AS HD02_VD01,

hyper.GEO.display-label AS GEO.display-label,

hyper.HD01_VD01 AS HD01_VD01,

hyper.File Paths AS File Paths,

hyper.c0f2a6a2-fc5e-4978-bdaf-87d54d3fba82 AS c0f2a6a2-fc5e-4978-bdaf-87d54d3fba82,

hyper.GEO.id2 AS GEO.id2,

hyper.HD02_VD01 AS Dimension

FROM Extract.tmp-e20YjwL8onYfAWC4NZP4GxsweOTq18Hj4q0mczFO7bI=-Default hyper

LIMIT 1048576

) t0

WHERE ((NOT (t0.c0f2a6a2-fc5e-4978-bdaf-87d54d3fba82 IS NULL))

AND (t0.c0f2a6a2-fc5e-4978-bdaf-87d54d3fba82 > 0)

AND ((t0.c0f2a6a2-fc5e-4978-bdaf-87d54d3fba82 IS NULL)

OR (t0.c0f2a6a2-fc5e-4978-bdaf-87d54d3fba82 <= 8868)))

GROUP BY 2

ORDER BY Dimension ASC NULLS FIRST

Hyper uses PostgreSQL, conventions, this is same as count(*)

TP issues one query per columns, the one specified “as Dimension” changes in each one

This has to do with paging data to the UI

Null is always sorted to the top

Interactive ops will always limit to default 1M rows

Page 37: Welcome [tc18.tableau.com] · Operationalizing and Scaling Tableau Prep. American Culture. What is Culture The social behavior and norms found in human societies It tells us how we

Brushing

Brushing is binning with a condition:The user picks the condition by clicking on a value

Brushing and binning are both performed by “analyzers”. Binners are a special case analyzer.

There are null values for the Gini coefficient values. Where do they come from?

Page 38: Welcome [tc18.tableau.com] · Operationalizing and Scaling Tableau Prep. American Culture. What is Culture The social behavior and norms found in human societies It tells us how we

Walking Through the Gini Flow (Brushing)

Page 39: Welcome [tc18.tableau.com] · Operationalizing and Scaling Tableau Prep. American Culture. What is Culture The social behavior and norms found in human societies It tells us how we

The Hyper View

The query generated when Gini Coefficient null value was selected

SELECT COUNT(1) AS Measure,

t0.Dimension AS Dimension

FROM (

SELECT hyper.GEO.id AS GEO.id,

hyper.HD02_VD01 AS HD02_VD01,

hyper.GEO.display-label AS GEO.display-label,

hyper.HD01_VD01 AS HD01_VD01,

hyper.File Paths AS File Paths,

hyper.c0f2a6a2-fc5e-4978-bdaf-87d54d3fba82 AS c0f2a6a2-fc5e-4978-bdaf-87d54d3fba82,

hyper.GEO.id2 AS GEO.id2,

hyper.HD02_VD01 AS Dimension

FROM Extract.tmp-e20YjwL8onYfAWC4NZP4GxsweOTq18Hj4q0mczFO7bI=-Default hyper

LIMIT 1048576

) t0

WHERE (t0.HD01_VD01 IS NULL)

GROUP BY 2

ORDER BY Dimension ASC NULLS FIRST

It’s the binning query with a condition added

It’s still the old name –the column name is still the same at the db level and TP knows that

Page 40: Welcome [tc18.tableau.com] · Operationalizing and Scaling Tableau Prep. American Culture. What is Culture The social behavior and norms found in human societies It tells us how we

The Hyper View

After the exclusion of Geography is added to the recipe the binning query looks like:

SELECT t0.GEO.id AS GEO.id,

t0.File Paths AS File Paths,

t0.GEO.id2 AS GEO.id2,

t0.Gini Coefficient Error AS Gini Coefficient Error,

t0.Gini Coefficient AS Gini Coefficient,

t0.GEO.display-label AS GEO.display-label,

t0.c0f2a6a2-fc5e-4978-bdaf-87d54d3fba82 AS c0f2a6a2-fc5e-4978-bdaf-87d54d3fba82

FROM (

SELECT hyper.GEO.id AS GEO.id,

hyper.HD02_VD01 AS HD02_VD01,

hyper.GEO.display-label AS GEO.display-label,

hyper.HD01_VD01 AS HD01_VD01,

hyper.File Paths AS File Paths,

hyper.c0f2a6a2-fc5e-4978-bdaf-87d54d3fba82 AS c0f2a6a2-fc5e-4978-bdaf-87d54d3fba82,

hyper.GEO.id2 AS GEO.id2,

hyper.HD02_VD01 AS Gini Coefficient Error,

hyper.HD01_VD01 AS Gini Coefficient

FROM Extract.tmp-e20YjwL8onYfAWC4NZP4GxsweOTq18Hj4q0mczFO7bI=-Default hyper

LIMIT 1048576

) t0

WHERE (NOT ((t0.GEO.display-label = 'Geography') AND (NOT (t0.GEO.display-label IS NULL))))

LIMIT 1000

The query handles the column rename

Conditions from the recipe are included in future binning and brushing queries

Page 41: Welcome [tc18.tableau.com] · Operationalizing and Scaling Tableau Prep. American Culture. What is Culture The social behavior and norms found in human societies It tells us how we

Log File Locations

“My Tableau Prep Repository”“Logs” directory

hyperd.log – the operations (including queries) as seen by Hyper

log.txt – the operations (including queries) that are sent by Tableau Prep

Download Tableau Log Viewer!https://github.com/tableau/tableau-log-viewer

Exercise For the Interested:What query is sent to get “what’s in/what’s out” data in a join node?

Hint: Search for “FULL” in hyperd.log in Tableau Log Viewer or text editor

Page 42: Welcome [tc18.tableau.com] · Operationalizing and Scaling Tableau Prep. American Culture. What is Culture The social behavior and norms found in human societies It tells us how we

Getting Started With the Exercise

Page 43: Welcome [tc18.tableau.com] · Operationalizing and Scaling Tableau Prep. American Culture. What is Culture The social behavior and norms found in human societies It tells us how we

Walking Through the Gini Flow (Join)

Page 44: Welcome [tc18.tableau.com] · Operationalizing and Scaling Tableau Prep. American Culture. What is Culture The social behavior and norms found in human societies It tells us how we

How Do Gini Coefficients Compare?

Page 45: Welcome [tc18.tableau.com] · Operationalizing and Scaling Tableau Prep. American Culture. What is Culture The social behavior and norms found in human societies It tells us how we

Operationalizing and Scaling Tableau Prep

Page 46: Welcome [tc18.tableau.com] · Operationalizing and Scaling Tableau Prep. American Culture. What is Culture The social behavior and norms found in human societies It tells us how we

Tableau Prep Conductor – V1

Add Tableau Prep Capabilities to Tableau Server:Use the same Flow Executor Service used by Tableau Prep DesktopUse the same Versioning Service used by Tableau Prep DesktopAdd:

Flow Orchestrator Service – to set up connections needed by Flow Executor ServiceFlow Publishing Service – API to publish flowsFlow Service – API for UI to retrieve flow inputs/outputs, decrypt credentials and other functions

Extend/Using Existing Tableau Server Mechanism:Job type to schedule flowsBackgrounder support for running flowsSecure credential storageEnforcement of permissionsExtension of content types (e.g. data sources, workbooks, flows)Extension of administrative views

Page 47: Welcome [tc18.tableau.com] · Operationalizing and Scaling Tableau Prep. American Culture. What is Culture The social behavior and norms found in human societies It tells us how we

Tableau Prep Conductor – Post V1

Enable Web Authoring:Port most remaining services

Port existing web UI

Server version of Hyper caching

Improve Scheduling and Resource Management:Part of larger data platform efforts

Trigger flow runs when inputs are updated

Page 48: Welcome [tc18.tableau.com] · Operationalizing and Scaling Tableau Prep. American Culture. What is Culture The social behavior and norms found in human societies It tells us how we

Scaling to Larger Datasets

Output To Database:Tableau Prep currently outputs to local files or data sources (hyper, csv)

For large datasets move computation to data:- Generate a query using existing mechanisms

- Wrap it in an upsert, send to database. Tableau systems never handle data at all in batch runs.

Augmenting Data Warehouse/Lake With Local Data:Don’t pull down the big dataset to federate with the local data

Push the smaller, local data to a temp table to work with larger dataset

Incremental Update and Query:Large Data Warehouse/Lake datasets are built one hourly/daily/weekly/etc. update at a time

Parameterized Data Pulls

Incremental Upserts

Page 49: Welcome [tc18.tableau.com] · Operationalizing and Scaling Tableau Prep. American Culture. What is Culture The social behavior and norms found in human societies It tells us how we

Finishing Up

Page 50: Welcome [tc18.tableau.com] · Operationalizing and Scaling Tableau Prep. American Culture. What is Culture The social behavior and norms found in human societies It tells us how we

What Should I Remember?

Tableau Prep flows are specifications that get turned into queries

Tableau Prep Desktop is actually a client/server system

Tableau Prep is built on top of the Tableau data platform

Tableau Prep is architected to scale…although many of the mechanisms aren’t built out yet

Page 51: Welcome [tc18.tableau.com] · Operationalizing and Scaling Tableau Prep. American Culture. What is Culture The social behavior and norms found in human societies It tells us how we

Tableau Prep | Below Decks

S E S S I O N R E P E AT S

Tue 10/23 | 2:15 – 3:15 | MCCNO – L2 - 297

Wed 10/24 | 12:00 – 1:00 | MCCNO – L2 - 263

Page 52: Welcome [tc18.tableau.com] · Operationalizing and Scaling Tableau Prep. American Culture. What is Culture The social behavior and norms found in human societies It tells us how we

Preparing Your Data the Tableau Prep Way

R E L AT E D S E S S I O N S

Thu 10/25 | 12:30 – 1:30 | MCCNO – L3 - 388

How Aggregate Friends and Influence Pivots

Wed 10/24 | 3:30 – 4:30 | MCCNO – L2 – New Orleans Theater A

Page 53: Welcome [tc18.tableau.com] · Operationalizing and Scaling Tableau Prep. American Culture. What is Culture The social behavior and norms found in human societies It tells us how we

Please complete the

session survey from the

Session Details screen

in your TC18 app

Page 54: Welcome [tc18.tableau.com] · Operationalizing and Scaling Tableau Prep. American Culture. What is Culture The social behavior and norms found in human societies It tells us how we

Thank you!

#TC18

Douglas Thomae

[email protected]

Page 55: Welcome [tc18.tableau.com] · Operationalizing and Scaling Tableau Prep. American Culture. What is Culture The social behavior and norms found in human societies It tells us how we

.tfl/.tflx Files

Both are always in zip format:Some older output files from Tableau Alpha were JSON files

The x on .tflx files is a hint that they contain data files, but has no other significance

You can open them up with a standard zip utility.

They’re not encrypted and will never contain secrets like passwords

The content is segmented by zip stream:maestroMetadata – other stream names, “document versions”

displaySettings – data or config that affects the way things are displayed (e.g. column order)

flow – the flow definition in loom-lang

data files (streams named using a guid to avoid name collision)

Page 56: Welcome [tc18.tableau.com] · Operationalizing and Scaling Tableau Prep. American Culture. What is Culture The social behavior and norms found in human societies It tells us how we