Elastic CSV Loader
This command line utility loads csv file into an elasticsearch index, using a provided yaml config file.
load-csv considerations:
- CSV files MUST include a header with field names
- Header field names will be used as elastic index fields
- A
@timestampanddatefields will be added to all indexed docs- A
datelogic date could be forced through command parameter.
- A
- Depending on
elastic_index.data_format.parent_data_objectvalue, all original csv header fields will be arranged under adataparent object.
Indexed data will use the same field names that
download-index considerations:
- If csv file is an existing file the download process will append data including headers
- You have to rename or delete previous csv file if you want to start fresh.
Install
Dependencies
Python3.9 or higherpippackage manager
pip install --upgrade elasticcsv
Run
Elastic Connection Config
Connection configuration is based in a YAML text file (connection.yaml) that must be present in
command directory.
Sample connection.yaml
elastic_connection:
proxies:
http: "http://user:pass@proxy.url:8080"
https: "http://user:pass@proxy.url:8080"
user: myuser
password: mypassword
apikey_id: myapikey # apikeys auth takes precedence over user/password
apikey_secret: myapikeysecret
node: my.elastic.node
schema: https
port: 443
elastic_index:
data_format:
parent_data_object: true
Run command
❯ csv2es load-csv --help
Usage: csv2es load-csv [OPTIONS]
Loads csv to elastic index
Options:
--csv PATH CSV File [required]
--csv_offset INT CSV File offset
--sep TEXT CSV field sepator [required]
--index TEXT Elastic Index [required]
--csv-date-format TEXT date format for *_date columns as for ex:
'%Y-%m-%d'
--logic_date [%Y-%m-%d] Date reference for interfaces
-d, --delete-if-exists Flag for deleting index before running load
--help Show this message and exit.
Python date formats references: String Format Time
❯ csv2es download-index --help
Usage: csv2es download-index [OPTIONS]
Download index to csv file
Options:
--csv PATH CSV File [required]
--sep TEXT CSV field sepator [required]
--index TEXT Elastic Index [required]
-d, --delete-if-exists Flag for deleting csv file before download
--help Show this message and exit.
Example:
csv2es load-csv --csv ./pathtomyfile/file.csv --index myindex --sep ";"
csv2es download-index --csv ./pathtomyfile/file.csv --index myindex --sep ";" -d
Metadata
Release files for elasticcsv 0.4.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| elasticcsv-0.4.1-py3-none-any.whl | Python 3 | none | any | Details |
Release files / elasticcsv-0.4.1-py3-none-any.whl
| Download URL | elasticcsv-0.4.1-py3-none-any.whl |
|---|---|
| Size | 12.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
dfc4be269acea15ed951c640f79d0a8a053216db43e37ebe16e6c13010505202
|
|
BLAKE2b-256 checksum How to use checksums |
ce1c49ce442d843de57799ea18ab4fe70e5bdffa51d5260b04e3c0ec2bb7ac56
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.6.4
|