In Spotfire, is it possible or is there an R script I can use that will make the data table in one visualization automatically change based upon the marker layer's data table in a map visualization?
Related
I am trying to read data from csv to azure sql db using copy activity. I have selected auto create option for destination table in sink dataset properties.
copy activity is working fine but all columns are getting created with nvarchar(max) or length -1. I dont want -1 length as default length for my auto created sink table columns.
Does any one know how to change column length or create fixed length columns while auto table creation in azure data factory?
As you have clearly detailed, the auto create table option in the copy data activity is going to create a table with generic column definitions. You can run the copy activity initially in this way and then return to the target table and run T-SQL statements to further define the desired column definitions. There is no option to define table schema with the auto create table option.
ALTER TABLE table_name ALTER COLUMN column_name new_data_type(size);
Clearly, the new column definition(s) must match the data that has been initially copied via the first copy activity but this is how you would combine the auto create table option and resulting in clearly defined column definitions.
It would be useful if you created a Azure Data Factory UserVoice entry to request that the auto create table functionality include creation of column definitions as a means of saving the time needed to go back an manually alter the columns to meet specific requirements, etc.
I have Table A prompted on Year/Month and Table B. Table B also has a Year/Month column. Table A is the default data table (gets pulled in first). I have set up a relationship between Table A and B on the common Year/Month column.
The goal is to get Table B to only pull through data where the Year/Month matches the Year/Month on Table A (what the user entered). The purpose is to keep the user from entering the Year/Month multiple times.
The issue is Table B contains almost 35 million records. What I do not want to do is have Spotfire pull across all 35 Million records. What is currently happening is Spotfire is pulling all those records, then by setting filtering to include Filtered Rows Only on Table B, I am limiting what is seen in the visualization to under 200,000 rows. I would much rather just pull across 200,000 rows to start with.
The question: Is there a way to force Spotfire to filter the data table (Table B) by another data table (Table A) as it pulls the data table (Table B) across, thus only pulling a small number of records into memory?
I'm writing this off the basis that most people utilize information links to get data into Spotfire, especially large data sets where the data is not embedded in the analysis. With that being said, I prefer to handle as much if not all of the joining / filtering / massaging at the data source versus the Spotfire application. Here are my views on the best practices and why.
Tables / Views vs Procedures as Information Links
Most people are familiar with the Table / View structure and get data into Spotfire in one of 2 ways
Create all joins / links in information designer based off data relations defined by the author by selecting individual tables from the data sources avaliable
Create a view (or similar object) at the data source where all joining / data relations are done, thus giving Spotfire a single flat file of data
Personally, option 2 is much easier IF you have access to the data source since the data source is designed to handle this type of work. Spotfire just makes it available but with limited functionality (i.e. complex queries, Intellisense, etc aren't available. No native IDE). What's even better is Stored Procedures IMHO and here is why.
In options 1 and 2 above, if you want to add a column you have to change the view / source code at the data source, or individually add a column in the information designer. This creates dwarfed objects and clutters up your library. For example, when you create an information link there is a folder with all the elements associated with it. If you want to add columns later, you'll have another folder for any columns added, and this gets confusing and hard to manage. If you create a procedure at the data source to return the data you need, and later want to add some columns, you only have to change this at the data source. i.e. change the procedure. Everything else will be inherited by Spotfire... all you have to do is click the "reload data" button in Spotfire. You don't have to change anything in the information designer. Additionally, you can easily add new parameters, set default parameter properties or prompt the user, making this a very efficient method of data retrieval. This is perfect when the data source is an OLTP and not a data-mart/data-warehouse (i.e. the data isn't already aggregated / cleansed) but can also be powerful in data warehouse environments as well.
Ditch the GUI, Edit the SQL
I find managing conditions, parameters, join paths, etc a bit annoying--but that's me. Instead, when possible, I prefer to click "Edit SQL" next to all the elements in my Information Link and alter the SQL there. This will allow database guys to work in an environment which is more familiar.
I have data that has different groupings.
The amount of rows could change from data pull to data pull.
I need to create graphs by these groupings that can change dynamically each time I run the data.
Is their a way to do this without having the change the data for each grouping each time?
Make the Data into a table in excel, then use the table reference for the graph, preferable a pivot chart. Data can be added at the bottom of a set of data set up as a table and the additional rows will be added to the table.
Here are some links about setting up tables and pivot tables/charts up.
http://www.wikihow.com/Create-Pivot-Tables-in-Excel
https://www.youtube.com/watch?v=IaOtCWxx3xU
https://support.office.com/en-us/article/Create-or-delete-a-PivotTable-or-PivotChart-report-d09e4d07-8cd6-4b60-afad-8fb67418800f
I am using spotfire client.
I have identified some records within a data table that I would like to send to a new data table. Is there some way to create a new table with marked or isolated data or using a data limiting expression on the source table? I have had to export my filtered data out and then import it back in but I am hoping there is a more direct way.
Thanks!
If you know the restrictions you need to set on your data to identify the records, you can create a second table based on the source data.
Go to the properties of the table / visualization, then go to the Data tab. You have to scroll all the way to the bottom. There you can edit the "Limit data using expression".
You could also create a detailed visualization if you want, but that is only useful if you can quickly identify the records.
Or insert a calculated column (e.g. case statement) and use this column to filter your data.
I'm synchronizing data with an external database and the result is delivered to me on a sheet called All Items. Setting up a pivot table is easy. However, on the horizontal axis I need to display a custom value, computed from one of the columns in the externally linked data set.
When I go to Analyze -> Change Data Source, I can see that the currently regarded data area is called 'All Items'!Query. I'd like to extend it by a column or two, so that my pivot table can display these values as well.
So, instead of 'All Items'!Query as the data source I'd like to have 'All Items'!Query and the next two columns too. I have no idea how to approach it nor what to try. Suggestions would be warmly appreciated.
I tried to define my own area called 'All Items'!Query_and_stuff but the number of records retrieved during synchronization varies, so my extension needs to take that into the account. No idea how.
Define
'All Items'!Query_and_stuff = offset('All Items'!Query, 0,0 ROWS('All Items'!Query),COLUMNS('All Items'!Query)+2)