New to Kestra?
Use blueprints to kickstart your first workflows.
Schedule a daily Vertica rollup with Kestra, assert non-empty results, convert to CSV, and upload to Amazon S3 with retries and Slack alerts.
Run a production-grade daily rollup from Vertica to Amazon S3 with Kestra. This blueprint aggregates the previous day's sales in Vertica, guards against empty result sets, converts the stored ION dataset to CSV, and uploads the report to a date-partitioned S3 key. Retries, timeouts, and a Slack failure alert make it safe to leave unattended, and an empty-day assertion stops silent shipping of header-only files when an upstream load is late or missing.
io.kestra.plugin.core.trigger.Schedule trigger fires daily at 30 6 * * * in Etc/UTC, so the run time does not drift with the worker zone or DST.daily_rollup (io.kestra.plugin.jdbc.vertica.Query) aggregates the report day's sales by product, binding the date via the parameters map as :report_date (prepared statement) and storing the result set as ION with fetchType: STORE.assert_not_empty (io.kestra.plugin.core.execution.Fail) checks outputs.daily_rollup.size and fails loudly when there are zero rows for the report day.to_csv (io.kestra.plugin.serdes.csv.IonToCsv) converts the stored ION dataset into CSV with a header row.upload_to_s3 (io.kestra.plugin.aws.s3.Upload) writes the CSV to your bucket under {{ inputs.s3_prefix }}/sales_rollup_<date>.csv.errors block posts a Slack alert via io.kestra.plugin.slack.notifications.SlackIncomingWebhook on any failure, including the report date and execution id.pluginDefaults keyed by plugin group, not repeated on every task.outputs.daily_rollup.uri, outputs.to_csv.uri, outputs.upload_to_s3) are first-class and queryable, unlike a shell script.vertica_url variable.s3:PutObject on that bucket. Enable bucket versioning if you need immutable history (a re-run overwrites the same key).VERTICA_USERNAME: Vertica database user for the JDBC connection.VERTICA_PASSWORD: password for that Vertica user.AWS_S3_BUCKET: destination S3 bucket name for the daily report.AWS_DEFAULT_REGION: AWS region of the bucket, for example us-east-1.AWS_ACCESS_KEY_ID: AWS access key ID with write access to the bucket.AWS_SECRET_ACCESS_KEY: AWS secret access key paired with the access key ID.SLACK_WEBHOOK: Slack incoming webhook URL used for failure alerts.vertica_url variable to your JDBC URL and adjust the source_table and s3_prefix inputs.daily_rollup to match your schema, keeping the :report_date bind variable.io.kestra.plugin.notifications.slack.SlackIncomingWebhook success notification with a link to the S3 object.ForEach task and parameterized SQL.io.kestra.plugin.serdes.parquet.IonToParquet for cheaper downstream querying.