QueriesQueries
QueriesCertified

Run multiple SQLite queries.

Run multiple SQLite queries.

Executes multiple SQL statements sequentially against a SQLite database, optionally within a single transaction.

The database can be:

  • reused from a previous task via sqliteFile,
  • referenced directly through the JDBC URL,
  • or created and persisted when outputDbFile is enabled.

When outputDbFile is set to true, the database used during execution is uploaded to Kestra internal storage and exposed as outputs.<taskId>.databaseUri, enabling database reuse across tasks.

yaml
type: "io.kestra.plugin.jdbc.sqlite.Queries"

Execute multiple queries, using existing SQLite file, and pass the results to another task.

yaml
id: sqlite_query_using_file
namespace: company.team

tasks:
  - id: init_db
    type: io.kestra.plugin.jdbc.sqlite.Queries
    url: jdbc:sqlite:myfile.db
    outputDbFile: true
    sql: |
      CREATE TABLE IF NOT EXISTS pgsql_types (
        play_time TEXT,
        concert_id INTEGER,
        timestamp_type TEXT
      );
      INSERT INTO pgsql_types (play_time, concert_id, timestamp_type) VALUES ('2024-01', 1, '2024-01-01T12:00:00');

  - id: select
    type: io.kestra.plugin.jdbc.sqlite.Queries
    url: jdbc:sqlite:myfile.db
    sqliteFile: "{{ outputs.init_db.databaseUri }}"
    outputDbFile: true
    sql: select * from pgsql_types
    fetchType: FETCH

  - id: use_fetched_data
    type: io.kestra.plugin.jdbc.sqlite.Queries
    url: jdbc:sqlite:myfile.db
    sqliteFile: "{{ outputs.select.databaseUri }}"
    sql: |
        CREATE TABLE IF NOT EXISTS pl_store_distribute (
          year_month TEXT,
          store_code INTEGER,
          update_date TEXT
        );
        {% for row in outputs.select.outputs[0].rows %}
            INSERT INTO pl_store_distribute (year_month, store_code, update_date)
            VALUES ('{{row.play_time}}', {{row.concert_id}}, '{{row.timestamp_type}}');
        {% endfor %}
Properties

SQL statement(s) to execute.

Runs one or more SQL statements depending on the task type. Query tasks support a single SQL statement, while Queries tasks can run multiple statements separated by semicolons.

SQL to execute atomically after trigger query.

Optional SQL executed in the same transaction as the main trigger query. Typically updates processing flags to prevent duplicate processing. Both sql and afterSQL queries commit together, ensuring consistency.

Default10000

Number of rows that should be fetched.

Gives the JDBC driver a hint as to the number of rows that should be fetched from the database when more rows are needed for this ResultSet object. If the fetch size specified is zero, the JDBC driver ignores the value and is free to make its own best guess as to what the fetch size should be. Ignored if autoCommit is false.

DefaultNONE
Possible Values
STOREFETCHFETCH_ONENONE

The way you want to store data.

FETCH_ONE - output the first row. FETCH - output all rows as output variable. STORE - store all rows to a file. NONE - do nothing.

Defaultfalse

Output the SQLite database file

When set to true, the SQLite database file used during execution is uploaded to Kestra internal storage and exposed as outputs.<taskId>.databaseUri.

Parameters

A map of parameters to bind to the SQL queries. The keys should match the parameter placeholders in the SQL string, e.g., : parameterName.

The database user's password.

SQLite database file (optional)

Optional URI to an existing SQLite database file stored in Kestra internal storage.

When provided, the file is downloaded into the task working directory and used as the SQLite database for the query execution.

The time zone id to use for date/time manipulation. Default value is the worker's default time zone id.

Defaulttrue

Transaction

If one query failed, rollback transactions.

Defaultjdbc:sqlite:

The JDBC URL to connect to the database.

Example: jdbc: sqlite: mydb.sqlite

The database user.

Definitions
rowobject

Map containing the first row of fetched data.

Only populated if fetchOne parameter is set to true.

rowsarray
SubTypeobject

List of map containing rows of fetched data.

Only populated if fetch parameter is set to true.

sizeinteger

The number of rows fetched.

Only populated if store or fetch parameter is set to true.

uristring
Formaturi

The URI of the result file on Kestra's internal storage (.ion file / Amazon Ion formatted text file).

Only populated if store is set to true.

Unitrows

The number of fetched rows.