InlineQuerier

Creates SQLite database tables from incoming features, executes SQL queries against them, and outputs the results as features.

Jump to Configuration

Typical Uses

  • Performing SQL queries on any features, whether or not they originate from a SQL supporting format.
  • Executing complex queries and joins without multiple transformers

How does it work?

The InlineQuerier creates a temporary SQLite database, and creates a table for each input object that is connected to it. In the parameters dialog, you may create any number of SQL queries that use these tables. Each query defined has an output port paired with it, and the query results are output as features.

Input table definitions can be easily created by connecting to theConnect Inputport. They can also be defined by importing the schema of any feature type in the workspace, whether connected or not (though the table will not be populated unless the feature type is connected). Any number of tables may be created.

SQL queries can involve any and all tables and columns defined in the input. In particular, multi-way joins can be executed, advanced SQL operations involving nested Select statements and advanced predicates can be used, and the input tables can be used by multiple queries.

SeeSQLite documentationfor a detailed reference on the SQL Select statement syntax that is supported.

Usage Notes

  • Consider using the InlineQuerier to replace multipleFeatureMergers. The InlineQuerier allows its input data to be reused multiple times in a single transformer, whereas if multiple joins are to be done with a FeatureMerger, multiple FeatureMergers must be employed and copies of the features sent to each. On the other hand, there is some overhead for the InlineQuerier to load the underlying SQLite database. Using a single InlineQuerier instead of several FeatureMergers also simplifies the workspace.
    Unless only a single FeatureMerger is needed in a workflow, the InlineQuerier may be a better choice. Older workspaces with multiple cascading FeatureMergers may experience a performance improvement by replacing the FeatureMergers with a single properly configured InlineQuerier.
  • If all the data to be queried already resides in a SQL-capable data source, consider using theSQLExecutororSQLCreatorinstead, as queries will be more efficient when performed by the source database.
  • If the query is a simple join between features and a database source, and the key(s) are indexed in the database, consider using aDatabaseJoinerfor more efficient processing.

Choosing a Feature Joining Method

Many transformers can perform data joining based on matching attributes, expressions and/or geometry. When choosing one for a specific joining task, considerations include the complexity of the join, data format, indexing, conflict handling, and desired results. Some transformers use SQL syntax, and some access external databases directly. They may or may not supportlist attributereading and creation.

Generally, choosing the one that is most specific to the task you need to accomplish will provide the optimal performance results. If there is more than one way to do it (which is frequently the case), time spent on performance testing alternate methods may be worthwhile. Performance may vary greatly depending on the existence of key indexes when reading external tables (as opposed to features already in the workspace).

配置

Input Ports

Output Ports

Parameters

Editing Transformer Parameters

Using a set of menu options, transformer parameters can be assigned by referencing other elements in the workspace. More advanced functions, such as an advanced editor and an arithmetic editor, are also available in some transformers. To access a menu of these options, clickbeside the applicable parameter. For more information, seeTransformer Parameter Menu Options.

Defining Values

有几种方法来定义一个值供我使用n a Transformer. The simplest is to simply type in a value or string, which can include functions of various types such as attribute references, math and string functions, and workspace parameters. There are a number of tools and shortcuts that can assist in constructing values, generally available from the drop-down context menu adjacent to the value field.

Reference

Processing Behavior

Not Applicable

Feature Holding

Not Applicable

Dependencies None
FME Licensing Level FME Professional Edition and above
Aliases
History
Categories

Workflows

FME Community

The FME Community is the place for demos, how-tos, articles, FAQs, and more. Get answers to your questions, learn from other users, and suggest, vote, and comment on new features.

Search forall results about the InlineQuerieron the FME Community.

Examples may contain information licensed under the Open Government Licence – Vancouver