All Projects → evdubs → iex-stocks

evdubs / iex-stocks

Licence: MPL-2.0 license
ETL for the IEX Stocks API

Programming Languages

racket
414 projects
shell
77523 projects

Projects that are alternatives of or similar to iex-stocks

thain
Thain is a distributed flow schedule platform.
Stars: ✭ 81 (+326.32%)
Mutual labels:  etl
DIRECT
DIRECT, the Data Integration Run-time Execution Control Tool, is a data logistics framework that can be used to monitor, log, audit and control data integration / ETL processes.
Stars: ✭ 20 (+5.26%)
Mutual labels:  etl
wikirepo
Python based Wikidata framework for easy dataframe extraction
Stars: ✭ 33 (+73.68%)
Mutual labels:  etl
id3c
Data logistics system enabling real-time pathogen surveillance. Built for the Seattle Flu Study.
Stars: ✭ 21 (+10.53%)
Mutual labels:  etl
hive-metastore-client
A client for connecting and running DDLs on hive metastore.
Stars: ✭ 37 (+94.74%)
Mutual labels:  etl
pentaho-gis-plugins
🗺 GIS plugins for Pentaho Data Integration
Stars: ✭ 42 (+121.05%)
Mutual labels:  etl
Aws Etl Orchestrator
A serverless architecture for orchestrating ETL jobs in arbitrarily-complex workflows using AWS Step Functions and AWS Lambda.
Stars: ✭ 245 (+1189.47%)
Mutual labels:  etl
neo4j-jdbc
JDBC driver for Neo4j
Stars: ✭ 110 (+478.95%)
Mutual labels:  etl
krawler
A minimalist (geospatial) ETL
Stars: ✭ 51 (+168.42%)
Mutual labels:  etl
etl
[READ-ONLY] PHP - ETL (Extract Transform Load) data processing library
Stars: ✭ 279 (+1368.42%)
Mutual labels:  etl
openmrs-fhir-analytics
A collection of tools for extracting FHIR resources and analytics services on top of that data.
Stars: ✭ 55 (+189.47%)
Mutual labels:  etl
NBi
NBi is a testing framework (add-on to NUnit) for Business Intelligence and Data Access. The main goal of this framework is to let users create tests with a declarative approach based on an Xml syntax. By the means of NBi, you don't need to develop C# or Java code to specify your tests! Either, you don't need Visual Studio or Eclipse to compile y…
Stars: ✭ 102 (+436.84%)
Mutual labels:  etl
chronicle-etl
📜 A CLI toolkit for extracting and working with your digital history
Stars: ✭ 78 (+310.53%)
Mutual labels:  etl
vixtract
www.vixtract.ru
Stars: ✭ 40 (+110.53%)
Mutual labels:  etl
dtd2mysql
MySQL / MariaDB import for DTD feeds (fares, timetable and routeing)
Stars: ✭ 25 (+31.58%)
Mutual labels:  etl
Data Making Guidelines
📘 Making Data, the DataMade Way
Stars: ✭ 248 (+1205.26%)
Mutual labels:  etl
dbt-databricks
A dbt adapter for Databricks.
Stars: ✭ 115 (+505.26%)
Mutual labels:  etl
awesome-integration
A curated list of awesome system integration software and resources.
Stars: ✭ 117 (+515.79%)
Mutual labels:  etl
link-move
A model-driven dynamically-configurable framework to acquire data from external sources and save it to your database.
Stars: ✭ 32 (+68.42%)
Mutual labels:  etl
DataX-src
DataX 是异构数据广泛使用的离线数据同步工具/平台,实现包括 MySQL、Oracle、SqlServer、Postgre、HDFS、Hive、ADS、HBase、OTS、ODPS 等各种异构数据源之间高效的数据同步功能。
Stars: ✭ 21 (+10.53%)
Mutual labels:  etl

iex-stocks

These Racket programs will download data from the IEX Stocks API and insert this data into a PostgreSQL database. The intended usage is :

$ racket chart-extract.rkt
$ racket chart-transform-load.rkt
$ racket splits-extract.rkt
$ racket splits-transform-load.rkt
$ racket dividends-extract.rkt
$ racket dividends-transform-load.rkt
$ racket company-extract.rkt
$ racket company-transform-load.rkt

Many of the above programs require a database password. The available parameters are:

$ racket chart-extract.rkt -h
racket chart-extract.rkt [ <option> ... ]
 where <option> is one of
  -d <date>, --date <date> : Exact date to query. Enabled only when querying for --history-range date
  -f <first>, --first-symbol <first> : First symbol to query. Defaults to nothing
  -l <last>, --last-symbol <last> : Last symbol to query. Defaults to nothing
  -n <name>, --db-name <name> : Database name. Defaults to 'local'
  -p <password>, --db-pass <password> : Database password
  -t <token>, --api-token <token> : IEX Cloud API Token
  -u <user>, --db-user <user> : Database user name. Defaults to 'user'
  -r <r>, --history-range <r> : Amount of history to request. Defaults to date, with date paired with a specified date using --date (-d)
  --help, -h : Show this help
  -- : Do not treat any remaining argument as a switch (at this level)
 Multiple single-letter switches can be combined after one `-`. For
  example: `-h-` is the same as `-h --`

$ racket chart-transform-load.rkt -h
racket chart-transform-load.rkt [ <option> ... ]
 where <option> is one of
  -b <folder>, --base-folder <folder> : IEX Stocks Chart base folder. Defaults to /var/tmp/iex/chart
  -d <date>, --folder-date <date> : IEX Stocks Chart folder date. Defaults to today
  -n <name>, --db-name <name> : Database name. Defaults to 'local'
  -p <password>, --db-pass <password> : Database password
  -u <user>, --db-user <user> : Database user name. Defaults to 'user'
  --help, -h : Show this help
  -- : Do not treat any remaining argument as a switch (at this level)
 Multiple single-letter switches can be combined after one `-`. For
  example: `-h-` is the same as `-h --`

$ racket splits-extract.rkt -h
racket splits-extract.rkt [ <option> ... ]
 where <option> is one of
  -n <name>, --db-name <name> : Database name. Defaults to 'local'
  -p <password>, --db-pass <password> : Database password
  -t <token>, --api-token <token> : IEX Cloud API Token
  -u <user>, --db-user <user> : Database user name. Defaults to 'user'
  -r <r>, --history-range <r> : Amount of history to request. Defaults to 1m (one month)
  --help, -h : Show this help
  -- : Do not treat any remaining argument as a switch (at this level)
 Multiple single-letter switches can be combined after one `-`. For
  example: `-h-` is the same as `-h --`

$ racket splits-transform-load.rkt -h
racket splits-transform-load.rkt [ <option> ... ]
 where <option> is one of
  -b <folder>, --base-folder <folder> : IEX Stocks splits base folder. Defaults to /var/tmp/iex/splits
  -d <date>, --folder-date <date> : IEX Stocks splits folder date. Defaults to today
  -n <name>, --db-name <name> : Database name. Defaults to 'local'
  -p <password>, --db-pass <password> : Database password
  -u <user>, --db-user <user> : Database user name. Defaults to 'user'
  --help, -h : Show this help
  -- : Do not treat any remaining argument as a switch (at this level)
 Multiple single-letter switches can be combined after one `-`. For
  example: `-h-` is the same as `-h --`

$ racket company-extract.rkt -h
racket company-extract.rkt [ <option> ... ]
 where <option> is one of
  -t <token>, --api-token <token> : IEX Cloud API Token
  --help, -h : Show this help
  -- : Do not treat any remaining argument as a switch (at this level)
 Multiple single-letter switches can be combined after one `-`. For
  example: `-h-` is the same as `-h --`

$ racket company-transform-load.rkt -h
racket company-transform-load.rkt [ <option> ... ]
 where <option> is one of
  -b <folder>, --base-folder <folder> : IEX Stocks company base folder. Defaults to /var/tmp/iex/company
  -d <date>, --folder-date <date> : IEX Stocks company folder date. Defaults to today
  -n <name>, --db-name <name> : Database name. Defaults to 'local'
  -p <password>, --db-pass <password> : Database password
  -u <user>, --db-user <user> : Database user name. Defaults to 'user'
  --help, -h : Show this help
  -- : Do not treat any remaining argument as a switch (at this level)
 Multiple single-letter switches can be combined after one `-`. For
  example: `-h-` is the same as `-h --`

The provided schema.sql file shows the expected schema within the target PostgreSQL instance. This process assumes that you can write to a /var/tmp/iex folder. This process also assumes that you have loaded your database with NASDAQ symbol file information. This data is provided by the nasdaq-symbols project.

Unfortunately, around June 2019, the ohlc and volume endpoints have been made unavailable to users of the free tier and, for NASDAQ data, a special NASDAQ permission must be received after July 2019. Data similar to those endpoints is now accessed through chart-extract and chart-transform-load. Data is only available for the previous day and prior.

Dependencies

It is recommended that you start with the standard Racket distribution. With that, you will need to install the following packages:

$ raco pkg install --skip-installed gregor http-easy tasks threading
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].