{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"# import arctic library\n",
"from arctic import Arctic\n",
"# import pandas\n",
"import pandas as pd\n",
"# import quandl library\n",
"import quandl\n",
"# import plots\n",
"import matplotlib as plt\n",
"\n",
"# Start mongod on localhost\n",
"#!mongod --dbpath /home/user/mongo_data"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"# Pull some data from qandl\n",
"aapl = quandl.get(\"WIKI/AAPL\", authtoken=\"rkeazqH5yf2RspNwACei\")"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Open | \n",
" High | \n",
" Low | \n",
" Close | \n",
" Volume | \n",
" Ex-Dividend | \n",
" Split Ratio | \n",
" Adj. Open | \n",
" Adj. High | \n",
" Adj. Low | \n",
" Adj. Close | \n",
" Adj. Volume | \n",
"
\n",
" \n",
" Date | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" 1980-12-12 | \n",
" 28.75 | \n",
" 28.87 | \n",
" 28.75 | \n",
" 28.75 | \n",
" 2093900.0 | \n",
" 0.0 | \n",
" 1.0 | \n",
" 0.422706 | \n",
" 0.424470 | \n",
" 0.422706 | \n",
" 0.422706 | \n",
" 117258400.0 | \n",
"
\n",
" \n",
" 1980-12-15 | \n",
" 27.38 | \n",
" 27.38 | \n",
" 27.25 | \n",
" 27.25 | \n",
" 785200.0 | \n",
" 0.0 | \n",
" 1.0 | \n",
" 0.402563 | \n",
" 0.402563 | \n",
" 0.400652 | \n",
" 0.400652 | \n",
" 43971200.0 | \n",
"
\n",
" \n",
" 1980-12-16 | \n",
" 25.37 | \n",
" 25.37 | \n",
" 25.25 | \n",
" 25.25 | \n",
" 472000.0 | \n",
" 0.0 | \n",
" 1.0 | \n",
" 0.373010 | \n",
" 0.373010 | \n",
" 0.371246 | \n",
" 0.371246 | \n",
" 26432000.0 | \n",
"
\n",
" \n",
" 1980-12-17 | \n",
" 25.87 | \n",
" 26.00 | \n",
" 25.87 | \n",
" 25.87 | \n",
" 385900.0 | \n",
" 0.0 | \n",
" 1.0 | \n",
" 0.380362 | \n",
" 0.382273 | \n",
" 0.380362 | \n",
" 0.380362 | \n",
" 21610400.0 | \n",
"
\n",
" \n",
" 1980-12-18 | \n",
" 26.63 | \n",
" 26.75 | \n",
" 26.63 | \n",
" 26.63 | \n",
" 327900.0 | \n",
" 0.0 | \n",
" 1.0 | \n",
" 0.391536 | \n",
" 0.393300 | \n",
" 0.391536 | \n",
" 0.391536 | \n",
" 18362400.0 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Open High Low Close Volume Ex-Dividend Split Ratio \\\n",
"Date \n",
"1980-12-12 28.75 28.87 28.75 28.75 2093900.0 0.0 1.0 \n",
"1980-12-15 27.38 27.38 27.25 27.25 785200.0 0.0 1.0 \n",
"1980-12-16 25.37 25.37 25.25 25.25 472000.0 0.0 1.0 \n",
"1980-12-17 25.87 26.00 25.87 25.87 385900.0 0.0 1.0 \n",
"1980-12-18 26.63 26.75 26.63 26.63 327900.0 0.0 1.0 \n",
"\n",
" Adj. Open Adj. High Adj. Low Adj. Close Adj. Volume \n",
"Date \n",
"1980-12-12 0.422706 0.424470 0.422706 0.422706 117258400.0 \n",
"1980-12-15 0.402563 0.402563 0.400652 0.400652 43971200.0 \n",
"1980-12-16 0.373010 0.373010 0.371246 0.371246 26432000.0 \n",
"1980-12-17 0.380362 0.382273 0.380362 0.380362 21610400.0 \n",
"1980-12-18 0.391536 0.393300 0.391536 0.391536 18362400.0 "
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# have a look at it\n",
"aapl.head()"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"ename": "ServerSelectionTimeoutError",
"evalue": "localhost:27017: [Errno 111] Connection refused",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mServerSelectionTimeoutError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0;31m# Create the library - defaults to VersionStore\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 5\u001b[0;31m \u001b[0mstore\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0minitialize_library\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'NASDAQ'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 6\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 7\u001b[0m \u001b[0;31m# Access the library\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/usr/local/lib/python3.6/dist-packages/arctic/decorators.py\u001b[0m in \u001b[0;36mf_retry\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 48\u001b[0m \u001b[0;32mwhile\u001b[0m \u001b[0;32mTrue\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 49\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 50\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mf\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 51\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mDuplicateKeyError\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mServerSelectionTimeoutError\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0me\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 52\u001b[0m \u001b[0;31m# Re-raise errors that won't go away.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/usr/local/lib/python3.6/dist-packages/arctic/arctic.py\u001b[0m in \u001b[0;36minitialize_library\u001b[0;34m(self, library, lib_type, **kwargs)\u001b[0m\n\u001b[1;32m 209\u001b[0m \u001b[0mArguments\u001b[0m \u001b[0mpassed\u001b[0m \u001b[0mto\u001b[0m \u001b[0mthe\u001b[0m \u001b[0mLibrary\u001b[0m \u001b[0mtype\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0minitialization\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 210\u001b[0m \"\"\"\n\u001b[0;32m--> 211\u001b[0;31m \u001b[0ml\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mArcticLibraryBinding\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlibrary\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 212\u001b[0m \u001b[0;31m# check that we don't create too many namespaces\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 213\u001b[0m \u001b[0;31m# can be disabled check_library_count=False\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/usr/local/lib/python3.6/dist-packages/arctic/arctic.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, arctic, library)\u001b[0m\n\u001b[1;32m 410\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m__init__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0marctic\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlibrary\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 411\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0marctic\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0marctic\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 412\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_curr_conn\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0marctic\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_conn\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 413\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_lock\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mthreading\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mRLock\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 414\u001b[0m \u001b[0mdatabase_name\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlibrary\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_parse_db_lib\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlibrary\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/usr/local/lib/python3.6/dist-packages/arctic/decorators.py\u001b[0m in \u001b[0;36mf_retry\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 48\u001b[0m \u001b[0;32mwhile\u001b[0m \u001b[0;32mTrue\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 49\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 50\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mf\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 51\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mDuplicateKeyError\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mServerSelectionTimeoutError\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0me\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 52\u001b[0m \u001b[0;31m# Re-raise errors that won't go away.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/usr/local/lib/python3.6/dist-packages/arctic/arctic.py\u001b[0m in \u001b[0;36m_conn\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 140\u001b[0m \u001b[0;31m# Accessing _conn is synchronous. The new PyMongo driver may be lazier than the previous.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 141\u001b[0m \u001b[0;31m# Force a connection.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 142\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__conn\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mserver_info\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 143\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 144\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__conn\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/usr/local/lib/python3.6/dist-packages/pymongo/mongo_client.py\u001b[0m in \u001b[0;36mserver_info\u001b[0;34m(self, session)\u001b[0m\n\u001b[1;32m 1452\u001b[0m return self.admin.command(\"buildinfo\",\n\u001b[1;32m 1453\u001b[0m \u001b[0mread_preference\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mReadPreference\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mPRIMARY\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1454\u001b[0;31m session=session)\n\u001b[0m\u001b[1;32m 1455\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1456\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mlist_databases\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msession\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/usr/local/lib/python3.6/dist-packages/pymongo/database.py\u001b[0m in \u001b[0;36mcommand\u001b[0;34m(self, command, value, check, allowable_errors, read_preference, codec_options, session, **kwargs)\u001b[0m\n\u001b[1;32m 527\u001b[0m \"\"\"\n\u001b[1;32m 528\u001b[0m \u001b[0mclient\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__client\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 529\u001b[0;31m \u001b[0;32mwith\u001b[0m \u001b[0mclient\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_socket_for_reads\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mread_preference\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0msock_info\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mslave_ok\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 530\u001b[0m return self._command(sock_info, command, slave_ok, value,\n\u001b[1;32m 531\u001b[0m \u001b[0mcheck\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mallowable_errors\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mread_preference\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/usr/lib/python3.6/contextlib.py\u001b[0m in \u001b[0;36m__enter__\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 79\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m__enter__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 80\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 81\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mnext\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mgen\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 82\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mStopIteration\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 83\u001b[0m \u001b[0;32mraise\u001b[0m \u001b[0mRuntimeError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"generator didn't yield\"\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/usr/local/lib/python3.6/dist-packages/pymongo/mongo_client.py\u001b[0m in \u001b[0;36m_socket_for_reads\u001b[0;34m(self, read_preference)\u001b[0m\n\u001b[1;32m 980\u001b[0m \u001b[0mtopology\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_get_topology\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 981\u001b[0m \u001b[0msingle\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtopology\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdescription\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtopology_type\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0mTOPOLOGY_TYPE\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mSingle\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 982\u001b[0;31m \u001b[0mserver\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtopology\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mselect_server\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mread_preference\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 983\u001b[0m \u001b[0;32mwith\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_get_socket\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mserver\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0msock_info\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 984\u001b[0m slave_ok = (single and not sock_info.is_mongos) or (\n",
"\u001b[0;32m/usr/local/lib/python3.6/dist-packages/pymongo/topology.py\u001b[0m in \u001b[0;36mselect_server\u001b[0;34m(self, selector, server_selection_timeout, address)\u001b[0m\n\u001b[1;32m 222\u001b[0m return random.choice(self.select_servers(selector,\n\u001b[1;32m 223\u001b[0m \u001b[0mserver_selection_timeout\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 224\u001b[0;31m address))\n\u001b[0m\u001b[1;32m 225\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 226\u001b[0m def select_server_by_address(self, address,\n",
"\u001b[0;32m/usr/local/lib/python3.6/dist-packages/pymongo/topology.py\u001b[0m in \u001b[0;36mselect_servers\u001b[0;34m(self, selector, server_selection_timeout, address)\u001b[0m\n\u001b[1;32m 181\u001b[0m \u001b[0;32mwith\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_lock\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 182\u001b[0m server_descriptions = self._select_servers_loop(\n\u001b[0;32m--> 183\u001b[0;31m selector, server_timeout, address)\n\u001b[0m\u001b[1;32m 184\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 185\u001b[0m return [self.get_server_by_address(sd.address)\n",
"\u001b[0;32m/usr/local/lib/python3.6/dist-packages/pymongo/topology.py\u001b[0m in \u001b[0;36m_select_servers_loop\u001b[0;34m(self, selector, timeout, address)\u001b[0m\n\u001b[1;32m 197\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mtimeout\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;36m0\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0mnow\u001b[0m \u001b[0;34m>\u001b[0m \u001b[0mend_time\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 198\u001b[0m raise ServerSelectionTimeoutError(\n\u001b[0;32m--> 199\u001b[0;31m self._error_message(selector))\n\u001b[0m\u001b[1;32m 200\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 201\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_ensure_opened\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;31mServerSelectionTimeoutError\u001b[0m: localhost:27017: [Errno 111] Connection refused"
]
}
],
"source": [
"# Connect to Local MONGODB\n",
"store = Arctic('localhost')\n",
"\n",
"# Create the library - defaults to VersionStore\n",
"store.initialize_library('NASDAQ')\n",
"\n",
"# Access the library\n",
"library = store['NASDAQ']\n",
"\n",
"# Store the data in the library\n",
"library.write('AAPL', aapl, metadata={'source': 'Quandl'})\n",
"\n",
"# Reading the data\n",
"item = library.read('AAPL')\n",
"aapl_out = item.data\n",
"metadata = item.metadata"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"WARNING: Some output was deleted.\n"
]
}
],
"source": [
"# Look at data just pulled from mongo!\n",
"aapl_out\n"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "80c4ce7328994d85e17fcbdecc737eaf4519e0d6"
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"aapl_out['Close'].plot()"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" a | \n",
" b | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 1 | \n",
" a | \n",
"
\n",
" \n",
" 1 | \n",
" 2 | \n",
" a | \n",
"
\n",
" \n",
" 2 | \n",
" 3 | \n",
" b | \n",
"
\n",
" \n",
" 3 | \n",
" 4 | \n",
" a | \n",
"
\n",
" \n",
" 4 | \n",
" 5 | \n",
" c | \n",
"
\n",
" \n",
"
\n",
"
"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Make some new data\n",
"testdata = pd.DataFrame({\n",
" 'a': [1,2,3,4,5],\n",
" 'b': ['a', 'a', 'b', 'a', 'c']\n",
" })\n",
"testdata"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"Library created, but couldn't enable sharding: no such command: 'enablesharding', bad cmd: '{ enablesharding: \"arctic\", lsid: { id: UUID(\"a5f15b0f-a9e6-4f4f-86b0-e28568cff758\") }, $readPreference: { mode: \"secondaryPreferred\" }, $db: \"admin\" }'. This is OK if you're not 'admin'\n"
]
}
],
"source": [
"\n",
"# Make a new library\n",
"store.initialize_library('test')\n",
"\n",
"# Access the library\n",
"testlib = store['test']\n",
"\n",
"# Store the data in the library\n",
"library.write('TESTDATA', testdata, metadata={'source': 'made it up'})\n",
"\n",
"# Reading the data\n",
"item = testlib.read('TESTDATA')\n",
"testdata_out = item.data\n",
"metadata = item.metadata\n"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" a | \n",
" b | \n",
"
\n",
" \n",
" index | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 1 | \n",
" a | \n",
"
\n",
" \n",
" 1 | \n",
" 2 | \n",
" a | \n",
"
\n",
" \n",
" 2 | \n",
" 3 | \n",
" b | \n",
"
\n",
" \n",
" 3 | \n",
" 4 | \n",
" a | \n",
"
\n",
" \n",
" 4 | \n",
" 5 | \n",
" c | \n",
"
\n",
" \n",
"
\n",
"
"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Data back in a dataframe\n",
"testdata_out"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"WARNING: Some output was deleted.\n"
]
}
],
"source": [
"# Import some data from csv\n",
"futData = pd.read_csv('/home/user/data.csv')\n",
"futData\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"Library created, but couldn't enable sharding: no such command: 'enablesharding', bad cmd: '{ enablesharding: \"arctic\", lsid: { id: UUID(\"a5f15b0f-a9e6-4f4f-86b0-e28568cff758\") }, $readPreference: { mode: \"secondaryPreferred\" }, $db: \"admin\" }'. This is OK if you're not 'admin'\n"
]
}
],
"source": [
"# Store the data in existing library \n",
"library = store['NASDAQ']\n",
"library.write('futData', futData, metadata={'source': 'NYMEX'})\n",
"\n",
"# Reading the data\n",
"item = library.read('futData')\n",
"testdata_out = item.data\n",
"metadata = item.metadata"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"['AAPL', 'TESTDATA', 'futData']"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# List symbols in library\n",
"library.list_symbols()"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"WARNING: Some output was deleted.\n"
]
}
],
"source": [
"item = library.read('futData')\n",
"item.data"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (Ubuntu Linux)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.7"
}
},
"nbformat": 4,
"nbformat_minor": 2
}