elasticsearch csv upload download utility
Project description
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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file elasticcsv-0.4.1-py3-none-any.whl.
File metadata
- Download URL: elasticcsv-0.4.1-py3-none-any.whl
- Upload date:
- Size: 12.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.6.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dfc4be269acea15ed951c640f79d0a8a053216db43e37ebe16e6c13010505202
|
|
| MD5 |
ebf456f7327dd38d3c3e39dc496ec550
|
|
| BLAKE2b-256 |
ce1c49ce442d843de57799ea18ab4fe70e5bdffa51d5260b04e3c0ec2bb7ac56
|