{ "cells": [ { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import os\n", "import pandas as pd\n", "\n", "from plotly.offline import download_plotlyjs, init_notebook_mode, plot, iplot\n", "import plotly.offline as py\n", "import plotly.graph_objs as go\n", "\n", "from pandas_gbq import read_gbq" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/vnd.plotly.v1+html": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# enable ploty jupyter inline\n", "init_notebook_mode(connected=True)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# standard SQL table id syntax\n", "table_id = \"`{}.{}.{}`\".format(\n", " os.environ['BQ_PROJECT_ID'],\n", " os.environ['BQ_DATASET_ID'],\n", " os.environ['BQ_TABLE_ID']\n", ")\n", "\n", "def read_data(query):\n", " df = read_gbq(query,\n", " project_id=os.environ['BQ_PROJECT_ID'],\n", " private_key=os.environ['BQ_PRIVATE_KEY'],\n", " dialect=\"standard\")\n", " return df" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Requesting query... ok.\n", "Job ID: job_a4UyJGwvGPthf7PWJG1Ee_4LA3sM\n", "Query running...\n", "Query done.\n", "Processed: 41.6 KB\n", "Standard price: $0.00 USD\n", "\n", "Retrieving results...\n", "Got 10 rows.\n", "\n", "Total time taken 1.94 s.\n", "Finished at 2017-08-21 11:53:28.\n" ] }, { "data": { "text/html": [ "
\n", " | task_id | \n", "story_id | \n", "story_createdat | \n", "interval_begin | \n", "interval_end | \n", "story_point_begin | \n", "story_point_delta | \n", "comment_count_begin | \n", "comment_count_delta | \n", "story_rank_begin | \n", "story_rank_end | \n", "
---|---|---|---|---|---|---|---|---|---|---|---|
0 | \n", "S1ATRx_d- | \n", "15060237 | \n", "2017-08-20 21:00:53 | \n", "2017-08-21 06:33:42.454 | \n", "2017-08-21 06:33:57.456 | \n", "61 | \n", "0 | \n", "32 | \n", "0 | \n", "23 | \n", "23 | \n", "
1 | \n", "S1ATRx_d- | \n", "15054752 | \n", "2017-08-19 18:13:24 | \n", "2017-08-21 06:33:42.454 | \n", "2017-08-21 06:33:57.456 | \n", "151 | \n", "0 | \n", "40 | \n", "0 | \n", "5 | \n", "5 | \n", "
2 | \n", "S1ATRx_d- | \n", "15058090 | \n", "2017-08-20 12:12:55 | \n", "2017-08-21 06:33:42.454 | \n", "2017-08-21 06:33:57.456 | \n", "76 | \n", "0 | \n", "19 | \n", "0 | \n", "15 | \n", "15 | \n", "
3 | \n", "S1ATRx_d- | \n", "15060488 | \n", "2017-08-20 22:09:40 | \n", "2017-08-21 06:33:42.454 | \n", "2017-08-21 06:33:57.456 | \n", "67 | \n", "0 | \n", "44 | \n", "0 | \n", "26 | \n", "26 | \n", "
4 | \n", "S1ATRx_d- | \n", "15058723 | \n", "2017-08-20 15:16:17 | \n", "2017-08-21 06:33:42.454 | \n", "2017-08-21 06:33:57.456 | \n", "224 | \n", "0 | \n", "24 | \n", "0 | \n", "17 | \n", "17 | \n", "
5 | \n", "rJYnOWuu- | \n", "15060998 | \n", "2017-08-21 00:08:19 | \n", "2017-08-21 07:16:00.662 | \n", "2017-08-21 07:16:15.663 | \n", "31 | \n", "0 | \n", "1 | \n", "0 | \n", "8 | \n", "8 | \n", "
6 | \n", "rJYnOWuu- | \n", "15058351 | \n", "2017-08-20 13:35:09 | \n", "2017-08-21 07:16:00.662 | \n", "2017-08-21 07:16:15.663 | \n", "520 | \n", "0 | \n", "280 | \n", "0 | \n", "15 | \n", "16 | \n", "
7 | \n", "rJYnOWuu- | \n", "15057371 | \n", "2017-08-20 07:33:41 | \n", "2017-08-21 07:16:00.662 | \n", "2017-08-21 07:16:15.663 | \n", "242 | \n", "0 | \n", "123 | \n", "0 | \n", "22 | \n", "22 | \n", "
8 | \n", "rJYnOWuu- | \n", "15054752 | \n", "2017-08-19 18:13:24 | \n", "2017-08-21 07:16:00.662 | \n", "2017-08-21 07:16:15.663 | \n", "152 | \n", "0 | \n", "40 | \n", "0 | \n", "5 | \n", "5 | \n", "
9 | \n", "rJYnOWuu- | \n", "15061356 | \n", "2017-08-21 01:46:20 | \n", "2017-08-21 07:16:00.662 | \n", "2017-08-21 07:16:15.663 | \n", "7 | \n", "1 | \n", "0 | \n", "0 | \n", "16 | \n", "14 | \n", "