Skip to main content
Version: 2.7

Write-Components

12 Write Components

Beside the generic ‘Write’ component, which behaves according to file(s) suffixes, there are also components which produce particular file format or connect to database and write a table.

There are two groups of write components:

Writing various file formats

Writing tables and streams


12.1 Write

(since EVL 1.0)

Write <f_in> into <target> which is a file or table specified in general by

[scheme:][//[user@@]host[:port]]/path/basename[.format][.compression] [scheme:][//[user@@]host[:port]/]database?(table=[schema.]<table>|query=<query>)

Besides below mentioned options, which changes file suffix behaviour, one can use generic ‘--cmd=<cmd>’ option, which calls something like ‘| <cmd> > <path>’ at the end. <cmd> can be also a pipeline. See examples below for inspiration.

Write
is to be used in EVS job structure definition file. <f_out> is either output file or flow name.

evl write
is intended for standalone usage, i.e. to be invoked from command line and and write to standard output.

EVD is EVL data definition file, for details see evl-evd(5).

URI Scheme:

Based on the URI Scheme ‘scheme:’, component calls appropriate utilities to write the file to the destination.

no scheme, ‘``file:``’,
suppose local filesystem

‘``gdrive:``’
calls ‘gdrive’ utility

‘``gs:``’
calls ‘gsutil’ utility

‘``hdfs:``’
calls ‘hadoop fs’ utility

‘``s3:``’
calls ‘aws s3’ utility

‘``sftp:``’
calls ‘ssh’ utility

‘``smb:``’
calls ‘smbclient’ utility

Based on the URI Scheme ‘scheme:’, component switch to appropriate EVL component.

‘``mysql:``’
calls Writemysql component to write to MySQL/MariaDB table

‘``mssql:``’
calls Writemssql component to write to MySQL/MariaDB table

‘``oracle:``’
calls Writeora component to write to Oracle table

‘``postgres:``’
calls Writepg component to write to PostgreSQL table

‘``sqlite:``’
calls Writesqlite component to write to SQLite table

‘``teradata:``’
calls Writetd component to write to Teradata table

Compression:

Compression file suffix behaviour (applied by following the order):

‘``*.bz2``’, ‘``*.BZ2``’
calls ‘bzip2 -c

‘``*.gz``’, ‘``*.GZ``’
calls ‘gzip -c

‘``*.zip``’, ‘``*.ZIP``’
calls ‘zip

File Type:

Write component behaves according to the <file> suffix.

Specific file formats suffix behaviour:

‘``*.avro``’, ‘``*.AVRO``’
calls ‘evl writeavro

‘``*.csv``’, ‘``*.CSV``’, ‘``*.txt``’, ‘``*.TXT``’
write file with ‘--text-output’ option, other than standard Unix end-of-line character (‘\n’) can be specified by option ‘--dos-eol’ or ‘--mac-eol

‘``*.json``’, ‘``*.JSON``’
calls ‘evl writejson

‘``*.parquet``’, ‘``*.parq``’, ‘``*.PARQUET``’, ‘``*.PARQ``’
calls ‘evl writeparquet

‘``*.qvd``’, ‘``*.QVD``’
calls ‘evl writeqvd

‘``*.qvx``’, ‘``*.QVX``’
calls ‘evl writeqvx

‘``*.xlsx``’, ‘``*.XLSX``’
calls ‘evl writexlsx

‘``*.xml``’, ‘``*.XML``’
calls ‘evl writexml

Synopsis

Write
<f_in> <target> (<evd>|-d <inline_evd>)
[-a|--append]
[--footer-file=<f_in>] [--header-file=<f_in> | -h|--header]
[ --avro |
--json [--omit-null-fields] [--array-output] |
--parquet |
--qvd | --qvx
--xlsx
--xml [--document-tag=<tag>] [--record-tag=<tag>]
[--vector-element-tag=<tag>] |
-y|--text-output [--dos-eol] [--mac-eol]
]
[--gz] [--cmd=<cmd>] [--ignore-suffix]
[-x|--text-input] [--validate]

evl write
<target> (<evd>|-d <inline_evd>)
[-a|--append]
[--footer-file=<file>] [--header-file=<file> | -h|--header]
[ --avro |
--json [--omit-null-fields] [--array-output] |
--parquet |
--qvd | --qvx
--xlsx
--xml [--document-tag=<tag>] [--record-tag=<tag>]
[--vector-element-tag=<tag>] |
-y|--text-output [--dos-eol] [--mac-eol]
]
[--gz] [--cmd=<cmd>] [--ignore-suffix]
[-x|--text-input] [--validate]
[-v|--verbose]

evl write
( --help | --usage | --version )

Options

Common options:

-a, --append
do not overwrite the target file or table, but only append. When used with file formats Avro, Parquet, QVD, QVX or XLSX, warning is displayed and target file is overwritten. For these formats append doesn’t make sense or is not possible. So better use this option with care. Rather concatenate the increment with previous version of the file/table and then move over.

-d, --data-definition=<inline_evd>
either this option or the file <evd> must be presented

--footer-file=<file>
add <file> after last written record When used with file formats Parquet, QVD, QVX or XLSX, warning is displayed and no <file> is appended. (It doesn’t make sense for these formats as they are binary.)

-h, --header
add header line with field names. Applicable only for text files (e.g. CSV) and XLSX file. When used with file formats Avro, JSON, Parquet, QVD, QVX or XML, warning is displayed and no header is written. It doesn’t make sense for these formats.

--header-file=<file>
add <file> before the first record When used with file formats Parquet, QVD, QVX or XLSX, warning is displayed and no <file> is prepended. (It doesn’t make sense for these formats as they are binary.)

--validate
without this option, no fields are checked against data types. With this option, all output fields are checked

-x, --text-input
suppose the input as text, not binary

--dos-eol
suppose the output is text with CRLF as end of line

--mac-eol
suppose the output is text with CR as end of line

-y, --text-output
write the output as text, not binary

Standard options:

--help
print this help and exit

--usage
print short usage information and exit

-v, --verbose
print to stderr info/debug messages of the component

--version
print version and exit

Options changing file suffix behaviour:

--avro
whatever file’s suffix, write the file in Avro file format

--cmd=<cmd>
bash command <cmd> is used to write into <file>. In such case recognizing file’s suffix is switched off. See examples below for inspiration.

--csv
whatever file’s suffix, write the file in as CSV using delimiters based on EVD (same as –text-output option)

--gz
whatever file’s suffix, use ‘gzip’ to compress the file

--ignore-suffix
ignore file’s suffix, act only based on options

--json
whatever file’s suffix, write the file as JSON

--parquet
whatever file’s suffix, write the file in Parquet columnar file format

--qvd
whatever file’s suffix, write the file as Qlik’s QVD file

--qvx
whatever file’s suffix, write the file as Qlik’s QVX file

--xml
whatever file’s suffix, write the file as XML

--xlsx
whatever file’s suffix, write the file as MS Excel sheet

XML specific options:

--document-tag=<tag>
for other than XML file is this option ignored. Check ‘man evl writexml’ for details.

--record-tag=<tag>
for other than XML file is this option ignored. Check ‘man evl writexml’ for details.

--vector-element-tag=<tag>
for other than XML file is this option ignored. Check ‘man evl writexml’ for details.

JSON specific options:

--array-output
using this flag the json output would be an array or records, i.e. ‘[{...},{...},...,{...}]

--omit-null-fields
for other than JSON file is this option ignored. Check ‘man evl writejson’ for details.

Examples

When password is needed in following examples, they are taken from $HOME/.evlpass file.

  1. Write local CSV file in EVL graph (an EVS file):

    TARGET_FILE="/home/myself/file.csv"
    ...
    Map FLOW1 FLOW2 evd/f1.evd evd/f2.evd evm/f.evm
    Write FLOW2 $TARGET_FILE evd/f2.evd
  2. Write JSON file to AWS S3 bucket:

    TARGET_FILE="s3://mybucket/file.json"
    ...
    Map FLOW1 FLOW2 evd/f1.evd evd/f2.evd evm/f.evm
    Write FLOW2 $TARGET_FILE evd/f2.evd
  3. Write Parquet file to Hadoop file system:

    TARGET_FILE="hdfs:///some/path/file.parquet"
    ...
    Map FLOW1 FLOW2 evd/f1.evd evd/f2.evd evm/f.evm
    Write FLOW2 $TARGET_FILE evd/f2.evd
  4. Load gzipped CSV file to Google Storage:

    TARGET_FILE="gs://some_bucket/some/path/file.csv.gz"
    ...
    Map FLOW1 FLOW2 evd/f1.evd evd/f2.evd evm/f.evm
    Write FLOW2 $TARGET_FILE evd/f2.evd
  5. Load data to Postgres table:

    TARGET_FILE="postgres://tech_user@10.11.12.13:5432/my_database/my_table"
    ...
    Map FLOW1 FLOW2 evd/f1.evd evd/f2.evd evm/f.evm
    Write FLOW2 $TARGET_FILE evd/f2.evd
  6. Example of standalone usage: Write gzipped CSV file with header and validated data types over SFTP to some server:

    evl write -d 'id int sep=";", value string sep="\n"' --header -xy --validate \
    sftp://my_user@10.11.12.13:22/some/path/example.csv.gz < example.csv

12.2 Writeevd

(since EVL 2.5)

Read EVD from stdin using this evd structure:

parents vector null=""
string
name string
data_type string
format string null=""
comment string null=""
null vector null=""
string
separator string null=""
quote struct null=""
char string(1)
optional uchar
options vector
struct
tag string
value string null=""
decimal struct null=""
precision uchar
scale uchar
decimal_separator string(1) null=""
thousands_separator string null=""
string struct null=""
length ulong null=""
locale string null=""
encoding string null=""
max_bytes ulong null=""
max_chars ulong null=""
ustring struct null=""
length ulong null=""
locale string null=""
encoding string null=""
max_bytes ulong null=""
max_chars ulong null=

Writeevd
is to be used in EVS job structure definition file. <f_out> is either output file or flow name.

evl writeevd
is intended for standalone usage, i.e. to be invoked from command line and and write to standard output.

EVD and EVS are EVL definition files, for details see evl-evd(5) and evl-evs(5).

Synopsis

Writeevd
<f_in> <f_out> [-x|--text-input]

evl writeevd
[-x|--text-input]
[-v|--verbose]

evl writeevd
( --help | --usage | --version )

Options

-x, --text-input
suppose the input as text, not binary

Standard options:

--help
print this help and exit

--usage
print short usage information and exit

-v, --verbose
print to stderr info/debug messages of the component

--version
print version and exit


12.3 Writejson

(since EVL 1.2)

Write to stdout or <f_out> JSON formatted text where all fields exist (unless ‘-n’ option) and are in order as defined in <evd>.

Writejson
is to be used in EVS job structure definition file. <f_out> is either output file or flow name.

evl writejson
is intended for standalone usage, i.e. to be invoked from command line and and write to standard output.

EVD and EVS are EVL definition files, for details see evl-evd(5) and evl-evs(5).

Synopsis

Writejson
<f_in> <f_out> (<evd>|-d <inline_evd>)
[-a|--array-output]
[-n|--omit-null-fields] [-x|--text-input]

evl writejson
(<evd>|-d <inline_evd>)
[-a|--array-output]
[-n|--omit-null-fields] [-x|--text-input]
[-v|--verbose]

evl writejson
( --help | --usage | --version )

Options

-a, --array-output
using this flag the json output would be an array or records, i.e. ‘[{...},{...},...,{...}]

-d, --data-definition=<inline_evd>
either this option or the file <evd> must be presented. Example: -d ’user_sum long’

-n, --omit-null-fields
by this option, null fields are not presented in the output

-x, --text-input
suppose the input as text, not binary

Standard options:

--help
print this help and exit

--usage
print short usage information and exit

-v, --verbose
print to stderr info/debug messages of the component

--version
print version and exit


12.4 Writekafka

(since EVL 1.1)

Component calls kafka producer command, specified by ‘EVL_KAFKA_PRODUCER_COMMAND’, which is by default ‘kafka-console-producer.sh’. and run it with options:

--bootstrap-server "<server:port>,<server2:port2>,..." \
--topic "<topic>" ``<kafka_producer_opts>``

and send there <f_in>.

Writekafka
is to be used in EVS job structure definition file. <f_in> is either output file or flow name.

evl writekafka
is intended for standalone usage, i.e. to be invoked from command line and and write to standard output.

EVS is EVL job structure definition files, for details see evl-evd(5) and evl-evs(5).

Synopsis

Writekafka
<f_in> <topic>
-s|--bootstrap-server <server:port>[,<server2:port2>...]
[<kafka_producer_opts>]

evl writekafka
<topic>
-s|--bootstrap-server <server:port>[,<server2:port2>...]
[<kafka_producer_opts>]
[-v|--verbose]

evl writekafka
( --help | --usage | --version )

Options

Standard options:

--help
print this help and exit

--usage
print short usage information and exit

-v, --verbose
print to stderr info/debug messages of the component

--version
print version and exit


12.5 Writemysql

(since EVL 2.4)

Write stdin or <f_in> into <table> of MariaDB/MySQL. If the table is not empty, it is truncated unless "–append" option is used.

Password is taken from file ‘$EVL_PASSFILE’, which is by default ‘$HOME/.evlpass’. When such file has not permissions 600 (or 400), it is ignored! For details see ‘evl-password’.

Writemysql
is to be used in EVS job structure definition file. <f_in> is either input file or flow name.

evl writemysql
is intended for standalone usage, i.e. to be invoked from command line and reading records from standard input.

EVD and EVS are EVL definition files, for details see evl-evd(5) and evl-evs(5).

Synopsis

Writemysql
<f_in> [<schema>.]<table> (<evd>|-d <inline_evd>)
[-a|--append]
[-b|--dbname=<database>] [-h|--host=<hostname>] [-p|--port=<port>]
[-u|--username=<mysqluser>] [--mysql=<mysql-options>] [-x|--text-input]

evl writemysql
[<schema>.]<table> (<evd>|-d <inline_evd>)
[-a|--append]
[-b|--dbname=<database>] [-h|--host=<hostname>] [-p|--port=<port>]
[-u|--username=<mysqluser>] [--mysql=<mysql-options>] [-x|--text-input]
[-v|--verbose]

evl writemysql
( --help | --usage | --version )

Options

-d, --data-definition=<inline_evd>
either this option or the file <evd> must be presented. Example: -d ’id int, name string, started timestamp’

-a, --append
target table is appended, not truncated

-x, --text-input
suppose the input as text, not binary

Standard options:

--help
print this help and exit

--usage
print short usage information and exit

-v, --verbose
print to stderr info/debug messages of the component

--version
print version and exit

’mysql’ options:

-b, --dbname=<database>
this option is provided to ‘mysql’ command as ‘--database=<database>

-h, --host=<hostname>
this option is provided to ‘mysql’ command

-p, --port=<port>
using other than standard port 3306. This option is provided to ‘mysql’ command.

-u, --username=<mysqluser>
if not mentioned, then current system username is used as mysql user. This option is provided to ‘mysql’ command as ‘--user=<mysqluser>’.

--mysql=<mysql-options>
other mysql options can be specified here


12.6 Writeora

(since EVL 2.2)

Write stdin or <f_in> into <table> in Oracle database. If the table is not empty, it is truncated unless ‘--append’ option is used. When delete statement need to be used instead of truncate, use option ‘--delete’.

When <schema> is not present, environment variable ‘ORADATABASE’ is used.

Password is taken from file ‘$EVL_PASSFILE’, which is by default ‘$HOME/.evlpass’. When such file has not permissions 600 (or 400), it is ignored! For details see ‘evl-password’.

Writeora
is to be used in EVS job structure definition file. <f_in> is either input file or flow name.

evl writeora
is intended for standalone usage, i.e. to be invoked from command line and reading records from standard input.

EVD and EVS are EVL definition files, for details see evl-evd(5) and evl-evs(5).

SQL*Loader Field Separator:
Writing the table by SQL*Loader uses as field seprator the value of ‘$EVL_ORACLE_FIELD_SEPARATOR’, which is by default set to ‘\x1f’ (i.e. an Unit Separator), and last field in each record is separated by ‘\n’.

SQL*Loader script options
Custom options might be added to SQL*Loader script by environment variable ‘$EVL_ORACLE_SQLLDR_OPTIONS’, which can contain comma or newline separated list of options like:

BINDSIZE = n
COLUMNARRAYROWS = n
DATE_CACHE = n
DEGREE_OF_PARALLELISM = {degree-num|DEFAULT|AUTO|NONE}
DIRECT = {TRUE | FALSE}
EMPTY_LOBS_ARE_NULL = {TRUE | FALSE}
ERRORS = n
EXTERNAL_TABLE = {NOT_USED | GENERATE_ONLY | EXECUTE}
FILE = tablespace file
LOAD = n
MULTITHREADING = {TRUE | FALSE}
PARALLEL = {TRUE | FALSE}
READSIZE = n
ROWS = n
SDF_PREFIX = string
SILENT = {HEADER | FEEDBACK | ERRORS | DISCARDS | PARTITIONS | ALL}
SKIP = n
SKIP_INDEX_MAINTENANCE = {TRUE | FALSE}
SKIP_UNUSABLE_INDEXES = {TRUE | FALSE}
STREAMSIZE = n
TRIM = {LRTRIM|NOTRIM|LTRIM|RTRIM|LDRTRIM}

and by default the variable is defined as:

export EVL_ORACLE_SQLLDR_OPTIONS="DIRECT = TRUE"

Synopsis

Writeora
<f_in> [<schema>.]<table> <evd> [-x|--text-input]
[-a|--append | --delete] [-u|--username=<oracle_user>]
[ --connect=<connect_identifier> | -b|--dbname=<database> -h|--host=<hostname> [-p|--port=<port>] ]
[--reject=<f_out>] [--control=<ctl_file>]

evl writeora
[<schema>.]<table> <evd> [-x|--text-input]
[-a|--append | --delete] [-u|--username=<oracle_user>]
[ --connect=<connect_identifier> | -b|--dbname=<database> -h|--host=<hostname> [-p|--port=<port>] ]
[--reject=<f_out>] [--control=<ctl_file>]
[-v|--verbose]

evl writeora
( --help | --usage | --version )

Options

-a, --append
with this option data will be added to the table, otherwise overwrite it

--control=<ctl_file>
to use other than generated control file for SQL*Loader

--delete
with this option data will be deleted, not truncated

--reject=<f_out>
to catch the ‘BADFILE’ file from SQL*Loader

-x, --text-input
suppose the input as text, not binary

Standard options:

--help
print this help and exit

--usage
print short usage information and exit

-v, --verbose
print to stderr info/debug messages of the component

--version
print version and exit

’sqlldr’ options:

--connect=<connect_identifier>
sqlldr will be called in the form:

<username>/<password>@<connect_identifier>

where <connect_identifier> can be in the form:

[<net_service_name> | [//]Host[:Port]/<service_name>]

without this option environment variable ‘ORACONN’ (if defined) is used as connection identifier for sqlldr

-b, --dbname=<database>
either this or environment variable ‘ORADATABASE’ should be provided, If also ‘ORADATABASE’ environment variable is set, this option has preference.

-h, --host=<hostname>
either this or environment variable ‘ORAHOST’ should be provided when connecting to other host than localhost. If also ‘ORAHOST’ variable is set, this option has preference.

-p, --port=<port>
either this or environment variable ‘ORAPORT’ should be provided when using other than standard port ‘1521’.

-u, --username=<oracle_user>
without this option environment variable ‘ORAUSER’ is used as user for sqlldr


12.7 Writeparquet

(since EVL 2.0)

Write stdin or <f_in> into <parquet> directory as files of the size approximately of the size <file_size> MB. Compression can be turned on by –compression option.

Writeparquet
is to be used in EVS job structure definition file. <f_in> is either input file or flow name.

evl writeparquet
is intended for standalone usage, i.e. to be invoked from command line and reading records from standard input.

EVD and EVS are EVL definition files, for details see evl-evd(5) and evl-evs(5).

Synopsis

Writeparquet
<f_in> <parquet> (<evd>|-d <inline_evd>) [-x|--text-input]
[--compression=(gzip|snappy|lz4|brotli|zstd)]
[--size=<file_size>] [--impala]

evl writeparquet
<parquet> (<evd>|-d <inline_evd>) [-x|--text-input]
[--compression=(gzip|snappy|lz4|brotli|zstd)]
[--size=<file_size>] [--impala]
[-v|--verbose]

evl writeparquet
( --help | --usage | --version )

Options

-d, --data-definition=<inline_evd>
either this option or the file <evd> must be presented. Example: -d ’id int, name string, started timestamp’

--compression=<compression>
compression to be used, possible values are gzip, snappy, lz4, brotli, zstd, none. By default ’none’ is used, so no compression is applied

--size=<file_size>
specify the number of MB, this size will be used for resulting files, default is 256 MB

--impala
produce a parquet file(s) to be used then by Apache Impala, i.e. store TIMESTAMP as INT96

-x, --text-input
suppose the input as text, not binary

Standard options:

--help
print this help and exit

--usage
print short usage information and exit

-v, --verbose
print to stderr info/debug messages of the component

--version
print version and exit


12.8 Writepg

(since EVL 1.3)

Write stdin or <f_in> into <table> of PostgreSQL. If the table is not empty, it is truncated unless "–append" option is used.

Password is taken:

  1. from file ‘$EVL_PASSFILE’, which is by default ‘$HOME/.evlpass’,
  2. from file ‘$PGPASSFILE’, which is by default ‘$HOME/.pgpass’.

When such file has not permissions 600, it is ignored! For details see ‘evl-password’.

Writepg
is to be used in EVS job structure definition file. <f_in> is either input file or flow name.

evl writepg
is intended for standalone usage, i.e. to be invoked from command line and reading records from standard input.

EVD and EVS are EVL definition files, for details see evl-evd(5) and evl-evs(5).

Synopsis

Writepg
<f_in> [<schema>.]<table> (<evd>|-d <inline_evd>)
[-a|--append]
[-b|--dbname=<database>] [-h|--host=<hostname>] [-p|--port=<port>]
[-u|--username=<pguser>] [--psql=<psql_options>] [-x|--text-input]

evl writepg
[<schema>.]<table> (<evd>|-d <inline_evd>)
[-a|--append]
[-b|--dbname=<database>] [-h|--host=<hostname>] [-p|--port=<port>]
[-u|--username=<pguser>] [--psql=<psql_options>] [-x|--text-input]
[-v|--verbose]

evl writepg
( --help | --usage | --version )

Options

-d, --data-definition=<inline_evd>
either this option or the file <evd> must be presented. Example: ‘-d 'id int, name string, started timestamp'

-a, --append
target table is appended, not truncated

-x, --text-input
suppose the input as text, not binary

Standard options:

--help
print this help and exit

--usage
print short usage information and exit

-v, --verbose
print to stderr info/debug messages of the component

--version
print version and exit

’psql’ options:

-b, --dbname=<database>
either this or environment variable ‘PGDATABASE’ should be provided, if not, then current system username is used as psql database. If also ‘PGDATABASE’ environment variable is set, this option has preference. (This option is provided to ‘psql’ command.)

-h, --host=<hostname>
either this or environment variable ‘PGHOST’ should be provided when connecting to other host than localhost. If also ‘PGHOST’ variable is set, this option has preference. (This option is provided to ‘psql’ command.)

-p, --port=<port>
either this or environment variable ‘PGPORT’ should be provided when using other than standard port ‘5432’. (This option is provided to ‘psql’ command.)

--psql=<psql_options>
all other options to be provides to psql command. See ‘man psql’ for details.

-u, --username=<user>
either this or environment variable ‘PGUSER’ should be provided, if not, then current system username is used as psql user. If variable ‘PGUSER’ is set, this option has preference. (This option is provided to ‘psql’ command.)


12.9 Writeqvd

(since EVL 2.2)

Write standard input or <f_in> into <file.qvd>.

Writeqvd
is to be used in EVS job structure definition file. <f_in> is either input file or flow name.

evl writeqvd
is intended for standalone usage, i.e. to be invoked from command line and reading records from standard input.

EVD and EVS are EVL definition files, for details see evl-evd(5) and evl-evs(5).

Synopsis

Writeqvd
<f_in> <file.qvd> (<evd>|-d <inline_evd>)
[-x|--text-input | -a|--text-input-dos-eol | -b|--text-input-mac-eol]
[-s|--skip-bom] [-n|--null-as-string[=<string>]]

evl writeqvd
<file.qvd> (<evd>|-d <inline_evd>)
[-x|--text-input | -a|--text-input-dos-eol | -b|--text-input-mac-eol]
[-s|--skip-bom] [-n|--null-as-string[=<string>]]
[-v|--verbose]

evl writeqvd
( --help | --usage | --version )

Options

-d, --data-definition=<inline_evd>
either this option or the file <evd> must be presented. Example: ‘-d 'id int, name string, started timestamp'

-n, --null-as-string[=<string>]
write <string> instead of NULL value, without <string> specified it writes an empty string instead of NULL

--skip-bom
skip utf-8 BOM (Byte order mark) from the beginning of input, i.e. EF BB BF. Windows usually add it to files in UTF8 encoding

-x, --text-input
suppose the input as text, not binary

--text-input-dos-eol
suppose the input as text with CRLF as end of line

--text-input-mac-eol
suppose the input as text with CR as end of line

Standard options:

--help
print this help and exit

--usage
print short usage information and exit

-v, --verbose
print to stderr info/debug messages of the component

--version
print version and exit


12.10 Writeqvx

(since EVL 2.2)

Write standard input or <f_in> into <file>.

Writeqvx
is to be used in EVS job structure definition file. <f_in> is either input file or flow name.

evl writeqvx
is intended for standalone usage, i.e. to be invoked from command line and reading records from standard input.

EVD and EVS are EVL definition files, for details see evl-evd(5) and evl-evs(5).

Synopsis

Writeqvx
<f_in> <file> (<evd>|-d <inline_evd>) [-x|--text-input]

evl writeqvx
<file> (<evd>|-d <inline_evd>) [-x|--text-input]
[-v|--verbose]

evl writeqvx
( --help | --usage | --version )

Options

-d, --data-definition=<inline_evd>
either this option or the file <evd> must be presented. Example: ‘-d 'id int, name string, started timestamp'

-x, --text-input
suppose the input as text, not binary

Standard options:

--help
print this help and exit

--usage
print short usage information and exit

-v, --verbose
print to stderr info/debug messages of the component

--version
print version and exit


12.11 Writesqlite

(since EVL 2.7)

Write stdin or <f_in> into SQLite <table>. If the table is not empty, it is truncated unless ‘--append’ option is used.

Path to the database file is taken from environment variable ‘$EVL_SQLITE_DATABASE’, unless <db_file> is specified.

Writesqlite
is to be used in EVS job structure definition file. <f_in> is either input file or flow name.

evl writesqlite
is intended for standalone usage, i.e. to be invoked from command line and reading records from standard input.

EVD and EVS are EVL definition files, for details see evl-evd(5) and evl-evs(5).

Synopsis

Writesqlite
<f_in> [<database>.]<table> (<evd>|-d <inline_evd>)
[-x|--text-input] [-a|--append]
[--dbname=<db_file>]

evl writesqlite
[<database>.]<table> (<evd>|-d <inline_evd>)
[-x|--text-input] [-a|--append]
[--dbname=<db_file>]
[-v|--verbose]

evl writesqlite
( --help | --usage | --version )

Options

-a, --append
target table is appended, not truncated

-d, --data-definition=<inline_evd>
either this option or the file <evd> must be presented. Example: -d ’id int, name string, started timestamp’

--dbname=<db_file>
path to the SQLite database file; if this option is not used, database file is taken from environment variable ‘$EVL_SQLITE_DATABASE’.

-x, --text-input
suppose the input as text, not binary

Standard options:

--help
print this help and exit

--usage
print short usage information and exit

-v, --verbose
print to stderr info/debug messages of the component

--version
print version and exit


12.12 Writetd

(since EVL 1.1)

Write stdin or <f_in> into <table> of Teradata.

WriteTD
is to be used in EVS job structure definition file. <f_in> is either input file or flow name.

evl writetd
is intended for standalone usage, i.e. to be invoked from command line and reading records from standard input.

EVD and EVS are EVL definition files, for details see evl-evd(5) and evl-evs(5).

Synopsis

WriteTD
<f_in> <database>.<table> (<evd>|-d <inline_evd>)
[-a|--append] [-x|--text-input]

evl writetd
<database>.<table> (<evd>|-d <inline_evd>)
[-a|--append] [-x|--text-input]
[-v|--verbose]

evl writetd
( --help | --usage | --version )

Options

-a, --append
target table is appended, not truncated

-d, --data-definition=<inline_evd>
either this option or the file <evd> must be presented. Example: -d ’id int, name string, started timestamp’

-x, --text-input
suppose the input as text, not binary

Standard options:

--help
print this help and exit

--usage
print short usage information and exit

-v, --verbose
print to stderr info/debug messages of the component

--version
print version and exit


12.13 Writexlsx

(since EVL 2.1)

Write stdin or <f_in> into <file>.

Writexlsx
is to be used in EVS job structure definition file. <f_in> is either input file or flow name.

evl writexlsx
is intended for standalone usage, i.e. to be invoked from command line and reading records from standard input.

EVD and EVS are EVL definition files, for details see evl-evd(5) and evl-evs(5).

All possible (self-explained) formats:

font:bold
font:italic
underline:single
underline:double
align:left
align:center
align:right
color:black
color:blue
color:brown
color:cyan
color:gray
color:green
color:lime
color:magenta
color:navy
color:orange
color:pink
color:purple
color:red
color:silver
color:white
color:yellow
bg-color:black
bg-color:blue
bg-color:brown
bg-color:cyan
bg-color:gray
bg-color:green
bg-color:lime
bg-color:magenta
bg-color:navy
bg-color:orange
bg-color:pink
bg-color:purple
bg-color:red
bg-color:silver
bg-color:white
bg-color:yellow

Synopsis

Writexlsx
<f_in> <file> (<evd>|-d <inline_evd>)
[-h|--header [<header_fields>] [--header-format]]
[-f|--footer <footer_fields> [--footer-format]]
[-x|--text-input]

evl writexlsx
<file> (<evd>|-d <inline_evd>)
[-h|--header [<header_fields>] [--header-format]]
[-f|--footer <footer_fields> [--footer-format]]
[-x|--text-input]
[-v|--verbose]

evl writexlsx
( --help | --usage | --version )

Options

-d, --data-definition=<inline_evd>
either this option or the file <evd> must be presented. Example: -d ’id int, name string, started timestamp’

-f, --footer=<footer_fields>
semicolon separated list of footer cells, it can be a string or if it begins with ‘=’ sign it is a formula. Variable ‘$COLUMN_RANGE’ can be used in such formulas which will be replaced by range of given column. Example: –footer ’Results:;=SUM($COLUMN_RANGE);AVERAGE($COLUMN_RANGE)’

--footer-format=<footer_format>
semicolon separated format of the footer. Example: –footer-format "font:bold;bg-color:green;color:white"

-h, --header=<header_fields>
semicolon separated list of header captions, empty <header_fields> means to use field names from EVD. Example: –header ’ID;timestamp;price’

--header-format=<header_format>
semicolon separated format of the header. Example: –header-format "font:bold;color:red"

-x, --text-input
suppose the input as text, not binary

Standard options:

--help
print this help and exit

--usage
print short usage information and exit

-v, --verbose
print to stderr info/debug messages of the component

--version
print version and exit


12.14 Writexml

(since EVL 1.3)

Write to stdout or <f_out> XML formatted text where all fields exist and are in order as defined in <evd>.

Writexml
is to be used in EVS job structure definition file. <f_out> is either output file or flow name.

evl writexml
is intended for standalone usage, i.e. to be invoked from command line and and write to standard output.

EVD and EVS are EVL definition files, for details see evl-evd(5) and evl-evs(5).

Synopsis

Writexml
<f_in> <f_out> (<evd>|-d <inline_evd>) [-x|--text-input]
[--document-tag=<tag>] [--record-tag=<tag>] [--vector-element-tag=<tag>]

evl writexml
(<evd>|-d <inline_evd>) [-x|--text-input]
[--document-tag=<tag>] [--record-tag=<tag>] [--vector-element-tag=<tag>]
[-v|--verbose]

evl writexml
( --help | --usage | --version )

Options

-d, --data-definition=<inline_evd>
either this option or the file <evd> must be presented. Example: -d ’user_sum long’

--document-tag=<tag>
for other than XML file is this option ignored. Check ‘man evl writexml’ for details.

--record-tag=<tag>
for other than XML file is this option ignored. Check ‘man evl writexml’ for details.

--vector-element-tag=<tag>
for other than XML file is this option ignored. Check ‘man evl writexml’ for details.

-x, --text-input
suppose the input as text, not binary

Standard options:

--help
print this help and exit

--usage
print short usage information and exit

-v, --verbose
print to stderr info/debug messages of the component

--version
print version and exit