Differences Between Spectre Flow and Visual Integrator
Spectre Flow features a user interface similar to Visual Integrator, as well as the ability to set output types other than cBase. This topic is a digest of differences between Visual Integrator objects and similar Spectre Flow nodes.
-
Integrator has a file_type option, which is equivalent to the Text Input Node in Spectre Flow. Use the no-headers attribute to read files without headers. Spectre cannot read "DBase-2 DBF" files.
-
The filename, filenames, and starname options are all combined as the file tag in Spectre Flow, which can handle multiple files and wildcards.
-
The union option is not present. When multiple files are read in a Text Input Node, the union of the columns is always produced (as when union is true).
-
The newline and require_crlf options are not present . Spectre only supports CR and CRLF line endings, and both are always accepted. Use quotes if you want to have newline characters inside a value.
-
The strict_quotes option is not present. Spectre allows "other delimiter" characters to be present in quoted values (as when string_quotes is true).
-
The rename_duplicates option is not present. Spectre will fail with an error message if two columns have the same name.
-
Spectre cannot read "fixed-format" files.
-
The cplan option is not present. Similar functionality can be achieved with a cPlan Input Node.
-
The dive option is not present. Similar functionality can be achieved with a Dive Input Node.
-
The dimensions, and other_columns options are not present. Similar functionality can be achieved with the Squash Process Node.
-
The filter_input and filter_columns options are not present. Similar functionality can be achieved with the Join Process Node with join_type of inner.
-
The metadata option is not present. Use the Metadata Process Node instead.
When compared with cBase Input objects with a cplan attribute in Integrator:
-
The filter_input and filter_columns options are not present. Similar functionality can be achieved with the Join Process Node with join_type of inner.
-
The metadata option is not present. Use the Metadata Process Node instead.
When compared with cBase Input objects with a dive attribute in Integrator:
-
The filter_input and filter_columns options are not present. Similar functionality can be achieved with the Join Process Node with join_type of inner.
-
The metadata option is not present. Use the Metadata Process Node instead.
Integrator cannot directly read from a tunnel script. The Tunnel Input Node can.
When compared to the SQL object in Integrator:
-
The sql_type and sql_library options are not present. Spectre does not support OS/400.
-
The sql_owner, sql_qualifier, and sql_table options are not present. To read a particular table, use a SQL query such as SELECT \* FROM... (however it is DI best practice to select particular columns and filter out unneeded records).
-
The skip_read option is not present. To avoid reading any rows, use a filter such as LIMIT 0 in the SQL query.
-
The where_clauses option is not present. There is no direct equivalent in flow.
-
The cleanup option is not present. Strings read from the ODBC driver are preserved.
-
The rename_duplicates option is not present. Spectre will fail with an error message if two columns have the same name.
The column_values option is not present here. There is no direct equivalent in flow.
-
The encoding option is not present in flow.
-
Multiple directories are able to be specified in flow.
-
Columns are generated independently in flow. This means that each column can have its own seed. As such, if a seed is provided for one column, then adding a new column (or removing a column, or reordering columns) does not effect the data generated in other columns.
-
There is no equivalent to the Integrator zip or month generators.
-
There is no equivalent to the Integrator distribution setting.
-
The word generator does not support a capitalize setting.
The rename_duplicates option is not present. Spectre will fail with an error message if two columns have the same name.
-
The calc_list_input option is not present. There is no direct equivalent in flow.
-
The persistent and initial_value options are not present. A similar effect can be achieved with the Spectre function on_previous_row().
The case_sensitive option is not present. A similar effect can be achieved with Spectre functions lower() and upper().
-
The sort_size and temp_directory options are not present. Spectre always loads all data into memory and cannot do an external sort.
-
The numeric_columns option is not present. Spectre uses typed values and so there is no need to identify value types during a sort.
-
The locale option is not present. String columns are sorted using the locale of the source, or by the column's alternate sort if any.
-
The case_sensitive option is not present. Spectre uses case sensitive sorts. To do a case-insensitive sort, make a copy of the column with the Spectre function lower() and sort the result of that expression.
The columns_list_input option is not present. There is no direct equivalent in flow.
When duplicate values are found for horiz_column in Integrator, it outputs multiple rows. Flow scripts squash the values into a single row using the default summary type for the value columns.
No major differences.
-
The summary, count_column, average_columns, max_columns, min_columns, and std_dev_columns are not present. Spectre uses the default summary type for the column, and supports arbitrary custom expressions.
-
Spectre squash supports custom expressions for dimensions.
-
The remove_other_columns option is not present. There is no direct equivalent in flow.
-
The adjacent and autosort options are not present. Spectre always performs a squash in memory (as when adjacent is false). There is no need to sort.
-
The warn_limit option is not present. There is no direct equivalent in flow.
When compared to the Squash object in Integrator:
-
The type option is not present here. Spectre columns are always typed and so there is no need to specify a type here.
-
The Expand Process Node supports string column expansion using the column's string table.
The Meta data Node is process node as opposed to in Integrator, where it is an option in input objects.
No major differences.
-
The autosort option is not present. Spectre joins do not require the data to be sorted.
-
The numeric_columns option is not present. Spectre uses typed values and so there is no need to identify value types during a join.
-
The locale option is not present. String columns will be joined using the locale of the sources, or by the column's alternate sort if any.
-
The case_sensitive option is not present. Spectre always uses case sensitive joins. To do a case-insensitive join, make copies of the join columns with the Spectre function lower() and join on the result of that expression.
-
The join_type option is not present. Spectre lookups always work like inner lookups in Integrator.
-
The update_null_value option is not present. Flow lookups always look for null values, you cannot choose an alternative to act as null. Note that for string columns, the empty string is null.
-
The range_type option is not present. Spectre uses typed values and so there is no need to identify value types during a join.
-
The case_sensitive option is not present. Spectre uses case sensitive lookups. To do a case-insensitive lookup, make copies of the key columns with the Spectre function lower() and lookup with the result of that expression.
-
The default delimiter is comma.
-
In Integrator you can specify multiple delimiter characters. Currently a flow script Chop Process Node only supports a single delimiter character.
-
Trim and quotes are not supported in Integrator.
-
The safe_write option is not present. Spectre always uses safe writes.
-
The append option is not present. There is no direct equivalent in flow, though you can read the output file as an input and use a Concat Process Node to append the new data before writing the combined data flow to a file.
-
The columns and remove_columns options are not present. To choose which columns to output, use an alias node before the output node.
-
The file_type option is not present. Use no-headers to control headers. Spectre does not support writing XML or Excel files.
-
The dictfile1, dictfile2, and dicttypes1 options are not present. Spectre does not support writing to a dictionary file.
-
The create_directory option is not present here. Spectre does not create parent directories for output files.
-
The columns and remove_columns options are not present. To choose which columns to output, use an Alias Process Node before the output node.
-
The dimensions, summary, and info options are not present. The equivalent in flow is to use the suggested-dimension and required-dimension tags when defining the columns.
-
The sort option is not present.
-
The types, string, and dates options are not present. Spectre columns are always typed so there is no need to specify types here.
-
The formats and calendars options are not present . The equivalent in flow is to use the format and calendar tags when defining the columns.