FME Transformers: 2025.2 BETA

Categories
Database
Workflows
Related Transformers
DatabaseDeleter
DatabaseJoiner
DatabaseUpdater
FeatureJoiner
FeatureMerger
InlineQuerier
ListBasedFeatureMerger
Matcher
SchemaScanner
SQLCreator
SQLExecutor

DatabaseQuerier

Executes queries against a database, producing query results and/or schema.

Jump to Configuration

Typical Uses

  • Extract database records as FME features according to a SQL or Cypher statement
  • Execute a database join
  • Perform database table operations (create, drop, modify, truncate)
  • Create or drop indexes or constraints before or after data loading

How does it work?

The DatabaseQuerier connects to a database and runs queries against it.

Query statements are constructed within the transformer, using the appropriate syntax for the database in use. Spatial queries are supported if the database supports spatial predicates.

Output results can be data and/or schema (where supported).

Optional Input Port and Initiators

This transformer has two modes, depending on whether a connector is attached to the Initiator input port or not:

  • Input-driven: When input features are connected, the transformer runs once for each input feature it receives in the Initiator port.
  • Run Once: When no input features are connected, the transformer runs one time.

When the Initiator input port is in use, the Initiator output port is also enabled.

Examples

Usage Notes

  • If the database supports spatial predicates, spatial queries may be used.
  • The SchemaScanner may also be useful as an alternative for producing schemas.
  • For simple joins of one database table to features, the DatabaseJoiner may be more efficient (if the key field(s) are indexed). The DatabaseJoiner does not require knowledge of SQL.
  • If all the data to be queried already exists in a SQL-capable or Cypher-capable data source, it is generally most efficient to use the DatabaseQuerier, SQLCreator or SQLExecutor, as the queries and filtering of the data is executed directly by the database before it enters the FME environment.
  • Features that enter this transformer are not output until the query completes. This behavior ensures that additional DatabaseQuerier transformers, if present, do not execute their queries until the previous query completes.

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 support list attribute reading 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).

Configuration

Input Ports

Output Ports

Parameters

Editing Transformer Parameters

Transformer parameters can be set by directly entering values, using expressions, or referencing other elements in the workspace such as attribute values or user parameters. Various editors and context menus are available to assist. To see what is available, click beside the applicable parameter.

For more information, see Transformer Parameter Menu Options.

Reference

Processing Behavior

Not applicable

Feature Holding

Not applicable

Dependencies Format-dependent - may require third-party drivers for some formats
Aliases  
History  

FME Community

The FME Community has a wealth of FME knowledge with over 20,000 active members worldwide. Get help with FME, share knowledge, and connect with users globally.

Search for all results about the DatabaseQuerier on the FME Community.

 

Examples may contain information licensed under the Open Government Licence – Vancouver, Open Government Licence - British Columbia, and/or Open Government Licence – Canada.