Skip to content

BelstrelGit/OtusDataDriven

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OtusBigProject Выпускной проект по курсу Data Engineer

Данное приложение реализует Data-driven подход для аналитики и мониторинга показателей с фондовых рынков. Данные на самом низком уровне будут поступать в Apache Kafka из API( Mock Files) , откуда сырые данные в необработанном виде через Kafka Connenct будут доставляться в уровень хранилища Stage(SQL / NoSQL / S3 / parquet / delta и тд) Опционально можно использовать инструменты для переноса данных(Apache Flume / Sqoop /Cast Tools ) . Также из Kafka данные будут забираться и обогащаться Spark Streaming , записываться в Kafka в другой топик и через Kafka Connect сохраняться в слой хранения данных. Из втрого топика обогащенные данные будут поступать в Эластик и следом в Kibana для визуализации. Из слоя хранения данные в целях построения аналитических отчетов будут периодически забираться(Apache Airflow, cron) батч обработкой Spark Batch. Также в целях обучения ML моделей данные могут бытьь предоставлены из слоя хранения , либо уже подготовленные батч обработкой и сохранённые в специальных файлах/таблицах. После обработки данные будут визуализироваться на Jupyter Notebooks . Данная схема не финальная, дополняется и изменяется в процессе разработки. Визуальная схема находиться в pdf файле.

How-to run

- Run analytics app for write and read data from kafka

 cd   ~/OtusDataDriven
make run-appliance


Запуск докера для ноутбука

 cd   ~/OtusDataDriven/SparkNotebooks
docker-compose up --build


Получение токена для ноутбука откройте новое окно терминала!!

 cd   ~/OtusDataDriven/JupyterNotebooks
$ sudo docker-compose -f docker-compose.yml exec jupyter-local jupyter notebook list

открыть папку work и запустить Spark_Batch_Job.ipynb

You could also access the SparkUI for this Job at http://localhost:4040/jobs


## Known issues

- Sometimes you need to increase docker memory limit for your machine (for Mac it's 2.0GB by default).
- To debug memory usage and status of the containers, please use this command:
```bash
docker stats
  • Sometimes docker couldn't gracefully stop the consuming applications, please use this command in case if container hangs:
docker-compose -f <name of compose file with the job>.yaml down


Оисание дата сета , взато с https://www.kaggle.com/dgawlik/nyse
Context
This dataset is a playground for fundamental and technical analysis. It is said that 30% of traffic on stocks is already generated by machines, can trading be fully automated? If not, there is still a lot to learn from historical data.

Content
Dataset consists of following files:

prices.csv: raw, as-is daily prices. Most of data spans from 2010 to the end 2016, for companies new on stock market date range is shorter. There have been approx. 140 stock splits in that time, this set doesn't account for that.
prices-split-adjusted.csv: same as prices, but there have been added adjustments for splits.
securities.csv: general description of each company with division on sectors
fundamentals.csv: metrics extracted from annual SEC 10K fillings (2012-2016), should be enough to derive most of popular fundamental indicators.
Acknowledgements
Prices were fetched from Yahoo Finance, fundamentals are from Nasdaq Financials, extended by some fields from EDGAR SEC databases.

Inspiration
Here is couple of things one could try out with this data:

One day ahead prediction: Rolling Linear Regression, ARIMA, Neural Networks, LSTM
Momentum/Mean-Reversion Strategies
Security clustering, portfolio construction/hedging
Which company has biggest chance of being bankrupt? Which one is undervalued (how prices behaved afterwards), what is Return on Investment?

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published