TABLEAU: Create global filter from a secondary data source to multiple data sources on dashboard - filter

I have a Tableau dashboard with various visualizations created from 3 data sources (i.e. A,B, C).
Each data source has a relationship (join) with the same secondary data source (i.e. D), and the secondary data sources provides information to create a filter for each data source. In other words, there is the following relationship for my data sources:
A - D
B - D
C - D
I would like to create a global filter on a dashboard I have created. I would like one filter card from "D" to show up and be applied to "A," "B," and "C" at once rather than having a separate filter card show up for each data source.
I tried to create a global filter via a parameter and calculated field, but the parameter requires layers of connections because data sources "A,B, and C" only have "D" in common.
Thoughts?

Its not completely clear from your question, but it sounds like you are using Tableau data blending on your worksheets to include data from multiple data sources, rather than a join to create a data source based on multiple tables. If all your tables are on the same database server or spreadsheet, then traditional joins are usually more efficient than data blending.
The following approach often works well.
Instead of using Tableau's quick filter feature, create a worksheet based solely on D that shows the values you wish to use for filtering. It can be a simple list of names, or a bubble chart or anything you like. Use that worksheet as your filter by creating actions where it is the source and all the other worksheets on your dashboard are the target. Typically, you would want to specify the field names explicitly.
Data blending is useful but can be complex. Depending on details, you may need to make D the primary data source on your other worksheets. Experiment.
The parameter and calculated field you mentioned can be even simpler and faster than using actions, but users are restricted to selecting a single value for a parameter unlike the filter action approach. (Of course, one parameter value can represent multiple values in your target data source field depending entirely on how your calculated field interprets the parameter).
I can't tell why that didn't work for you or what you mean by "layers of connections". You might consider clarifying that part of your question.

Related

Best Practice for Middle tier Data structure that combines multiple data sources

I have 4 queries from different sources that load all the needed KPIs that will be displayed on the UI. My format is essentially a simple table:
KPI
Client 1
Client 2
Client 3
kpi1
val1,1
val2,1
val3,1
kpi2
val1,2
val2,2
val3,2
kpi3
val1,3
val2,3
val3,3
But, the tricky part is that we have 20 or so separate tables/sections like this and the kpis are mixed up. i.e. kpi1 comes from data source 1, but kpi is from data source 2, then back to data source 1 for kpi3, etc. I want to just pull down the data once, and then populate all the various sections based on the definition of what the source is.
So, basically I need a layer of code that maps specific "rows" or "collections" to their source. What is the best practice for this "transformation layer"
I want to make sure it's easy to update kpi definitions, add new ones, etc. Also, a plus would be the ability to easily have a display attribute, so for instance kpi1 would be displayed as "Most Important KPI" and kpi2 could be displayed as "Interesting KPI".
I'm open to creating a Model object where each kpis is an attribute - it's just the mapping back to the source that's throwing me off a bit.
Thanks!

Cognos: filter alternative?

I've defined a report in Cognos Report Studio.
I've also exposed this report in IBM BAM Business Spaces. I've used Report Viewer widget for that.
This widget allows end users to remove filters defined for the report. The data security is preserved (FGS applied), but they can access irrelevant data for specific report.
I would like to disable this (removing filters). Unfortunately this build-in widget is not allowing that.
As workaround I'm trying to use some other technique than filters to limit the data. I was trying to apply the filtering within the slicer.
My data is quite flat, and the data item I want to filter is not defined as dimension. That's probably the reason why it's not working for me.
I have a table with multiple columns.
My slicer definition:
filter([A_Events Query Subject].[ATracking_Events].[Status Code],
[A_Events Query Subject].[A_Events].[Status Code] = 'Q')
Anyway, all data (not filtered) are shown as a result.
Any idea how this can be solved?

Is it possible to combine external and internal filtering in ui-grid?

I am using 'useExternalFiltering' in angular ui-grid.
Is it possible to set 1 column to still filter internally (sort out based on the table data)?
Yes, it is possible. You can set useExternalFiltering: true on the columns that need it and use the normal filtering on the other. (In fact, on the column I use external filtering with in my grids, it also works as a normal filter once the data have been retrieved, but I imagine this could be disabled.)

Global filters for different data sources (with common tables)

I am currently working on Tableau using 2 data sources using each a join of 2 tables (named A, B, C):
Data source 1: A-B
Data source 2: A-C
Basically, A contains the major information that I need and then I join data from B and C to get the extra information I need for each report I am doing.
I then do a dashboard that contains reports using the data source 1 and 2.
My problem now is that I am filtering this dashboard using a dimension in A and I would like it to apply to all worksheets (e.g. for those using data sources 1 and those using data source 2).
I thought that because A is the common table in all data sources, that using a dimension in A would be ok to filter everything but it seems that it is not the case.
Is there a way to fix this?
I read some forums about creating a parameter. However, the filtering I am doing is basically as follows: I want my users to choose 1 shop name. They can find it either by:
Typing the name in the 'Shop name' quick filter,
Using a combination of the quick filters 'Region' and 'country' to then get a drop down of 'Shop Name' that has a reduced amounts of shop names (easier when the user knows where the shop is but does not remember its exact name).
Using a parameter would not allow me to do this anymore since all of this is based on 'filtering the relevant values'.
Does anyone have any recommendations?

Get data's source in kettle

When I use kettle , I was wandering how to get a table column's source column. Just for an example , after I have merged two tables into one table based on primary key already , Given any column in output table , I could judge whether table it belongs to and get the original column name in original table. Thank you for helping and sorry for my poor English...
http://i.stack.imgur.com/xoR0s.png
When I was given any field in table3 (suppose a field named A in table3) , I could know where it comes from without the graphical view (from java code or other ways) , like the original table name (here are input1 or input2) and the original column name(maybe B in input1 , but represents A in table3). Besides I use mysql.
There are a couple of ways to do this:
1) Manually. If you right-click on the output step and choose Show Output fields (or whatever it's called), you will see the "origin step" for each of the outgoing fields. You can do the same for input fields. Then you can trace them back to those origin steps, and repeat the process of viewing the input fields at those steps, and seeing those fields' origins, and so on. This is probably not what you're looking for.
2) With code. Prior to 6.0, you'd need to programmatically perform the same operations as are listed in option 1 above. In 6.0 there is the Data Lineage capability, which offers the LineageClient API that can find the origin fields for the specified output fields. For more information see my blog post describing the Data Lineage capability. Also I put a Gremlin Console in the PDI Marketplace, to make the use of LineageClient easier (and you can visually see the lineage graph too).

Resources