ssube/prometheus-sql-adapter

View on GitHub
jupyter/schema_stats.ipynb

Summary

Maintainability
Test Coverage
{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 81,
   "metadata": {},
   "outputs": [],
   "source": [
    "import matplotlib.pyplot as plot\n",
    "import numpy as np\n",
    "import os\n",
    "import pandas as pd\n",
    "import pandas.io.json as pj\n",
    "import psycopg2\n",
    "from statsmodels.tsa.api import ExponentialSmoothing"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 82,
   "metadata": {},
   "outputs": [],
   "source": [
    "def load_query(query):\n",
    "    conn = psycopg2.connect(os.environ.get('PROMSQL_CONNSTR'))\n",
    "    samples = pd.read_sql_query(query, conn)\n",
    "    conn.close()\n",
    "    return samples"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Y-axis format function from https://stackoverflow.com/a/40573071"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 89,
   "metadata": {},
   "outputs": [],
   "source": [
    "from matplotlib.ticker import FuncFormatter\n",
    "\n",
    "def format_bytes(y, pos):\n",
    "    decades = [1e12, 1e9, 1e6, 1e3, 1e0]\n",
    "    suffix  = [\"TB\", \"GB\", \"MB\", \"kB\", \"B\"]\n",
    "    if y == 0:\n",
    "        return str(0)\n",
    "    for i, d in enumerate(decades):\n",
    "        if np.abs(y) >=d:\n",
    "            val = y/float(d)\n",
    "            signf = len(str(val).split(\".\")[1])\n",
    "            if signf == 0:\n",
    "                return '{val:d} {suffix}'.format(val=int(val), suffix=suffix[i])\n",
    "            else:\n",
    "                if signf == 1:\n",
    "                    if str(val).split(\".\")[1] == \"0\":\n",
    "                       return '{val:d} {suffix}'.format(val=int(round(val)), suffix=suffix[i]) \n",
    "                tx = \"{\"+\"val:.{signf}f\".format(signf = signf) +\"} {suffix}\"\n",
    "                return tx.format(val=val, suffix=suffix[i])\n",
    "    return y\n",
    "\n",
    "def format_exp(y, pos):\n",
    "    decades = [1e12, 1e9, 1e6, 1e3, 1e0]\n",
    "    suffix  = [\"T\", \"B\", \"M\", \"K\", \"\"]\n",
    "    if y == 0:\n",
    "        return str(0)\n",
    "    for i, d in enumerate(decades):\n",
    "        if np.abs(y) >=d:\n",
    "            val = y/float(d)\n",
    "            signf = len(str(val).split(\".\")[1])\n",
    "            if signf == 0:\n",
    "                return '{val:d} {suffix}'.format(val=int(val), suffix=suffix[i])\n",
    "            else:\n",
    "                if signf == 1:\n",
    "                    if str(val).split(\".\")[1] == \"0\":\n",
    "                       return '{val:d} {suffix}'.format(val=int(round(val)), suffix=suffix[i]) \n",
    "                tx = \"{\"+\"val:.{signf}f\".format(signf = signf) +\"} {suffix}\"\n",
    "                return tx.format(val=val, suffix=suffix[i])\n",
    "    return y"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 90,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "   value                      time\n",
      "0    0.0 2019-12-10 12:00:00+00:00\n",
      "1    0.0 2019-12-10 13:00:00+00:00\n",
      "2    0.0 2019-12-10 14:00:00+00:00\n",
      "3    0.0 2019-12-10 15:00:00+00:00\n",
      "4    0.0 2019-12-10 16:00:00+00:00\n"
     ]
    }
   ],
   "source": [
    "chunk_rows_raw = load_query(\"\"\"\n",
    "SELECT\n",
    "  SUM(n_live_tup) AS value,\n",
    "  to_timestamp(lower(ranges[1])/10^6) AS time\n",
    "FROM chunk_relation_size('metric_samples') AS m\n",
    "JOIN pg_stat_user_tables AS t\n",
    "  ON CONCAT(t.schemaname, '.', t.relname) = m.chunk_table\n",
    "GROUP BY time\n",
    "ORDER BY time;\n",
    "\"\"\")\n",
    "print(chunk_rows_raw.head(5))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 91,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "                           value\n",
      "time                            \n",
      "2019-12-10 12:00:00+00:00    0.0\n",
      "2019-12-10 13:00:00+00:00    0.0\n"
     ]
    }
   ],
   "source": [
    "chunk_rows = chunk_rows_raw.set_index('time').resample('1h').max()\n",
    "print(chunk_rows.head(2))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 101,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "            table                      time      sum\n",
      "0  metric_samples 2019-12-10 12:00:00+00:00  32768.0\n",
      "1  metric_samples 2019-12-10 13:00:00+00:00  32768.0\n",
      "2  metric_samples 2019-12-10 14:00:00+00:00  32768.0\n",
      "3  metric_samples 2019-12-10 15:00:00+00:00  32768.0\n",
      "4  metric_samples 2019-12-10 16:00:00+00:00  32768.0\n"
     ]
    }
   ],
   "source": [
    "chunk_size_raw = load_query(\"\"\"\n",
    "SELECT\n",
    "    MAX(table_name) AS table,\n",
    "    to_timestamp(lower(ranges[1])/10^6) AS time,\n",
    "    SUM(total_bytes)\n",
    "FROM _timescaledb_catalog.hypertable, chunk_relation_size(table_name::text)\n",
    "WHERE hypertable.table_name LIKE 'metric%' \n",
    "GROUP BY time\n",
    "ORDER BY 1, 2;\n",
    "\"\"\")\n",
    "print(chunk_size_raw.head(5))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 154,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "table                      metric_samples\n",
      "time                                     \n",
      "2019-12-10 12:00:00+00:00         32768.0\n",
      "2019-12-10 13:00:00+00:00         32768.0\n"
     ]
    }
   ],
   "source": [
    "chunk_size = pd.pivot(chunk_size_raw, index='time', columns='table', values='sum').resample('1h').max()\n",
    "print(chunk_size.head(2))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 103,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1152x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "%matplotlib inline\n",
    "palette_key = '#AD1457'\n",
    "\n",
    "fig, ax = plot.subplots(nrows=2, figsize=(16, 4))\n",
    "\n",
    "ax[0].plot(chunk_size, color=palette_key)\n",
    "ax[0].yaxis.set_major_formatter(FuncFormatter(format_bytes))\n",
    "ax[0].yaxis.set_label_text('size')\n",
    "\n",
    "ax[1].plot(chunk_rows, color=palette_key)\n",
    "ax[1].yaxis.set_major_formatter(FuncFormatter(format_exp))\n",
    "ax[1].yaxis.set_label_text('rows')\n",
    "\n",
    "fig.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "This graph shows chunk size in rows and bytes for live (recent and still-uncompressed) chunks."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 120,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "  hypertable_name                                chunk_name  \\\n",
      "0  metric_samples  _timescaledb_internal._hyper_1_687_chunk   \n",
      "1  metric_samples  _timescaledb_internal._hyper_1_690_chunk   \n",
      "2  metric_samples  _timescaledb_internal._hyper_1_692_chunk   \n",
      "3  metric_samples  _timescaledb_internal._hyper_1_694_chunk   \n",
      "4  metric_samples  _timescaledb_internal._hyper_1_696_chunk   \n",
      "\n",
      "   compressed_hypertable_id  compressed_chunk_id  uncompressed_data_size  \\\n",
      "0                         6                  703               322166784   \n",
      "1                         6                  705               322256896   \n",
      "2                         6                  711               323665920   \n",
      "3                         6                  745               322461696   \n",
      "4                         6                  748               322461696   \n",
      "\n",
      "   uncompressed_index_size  compressed_data_size  compressed_index_size  \n",
      "0                622002176              14991360                1064960  \n",
      "1                622485504              15048704                1064960  \n",
      "2                625516544              15482880                1130496  \n",
      "3                620290048              15007744                1064960  \n",
      "4                621641728              15007744                1081344  \n"
     ]
    }
   ],
   "source": [
    "chunk_compressed_raw = load_query(\"\"\"\n",
    "SELECT\n",
    "  cc.hypertable_name,\n",
    "  cc.chunk_name,\n",
    "  h.compressed_hypertable_id,\n",
    "  c.compressed_chunk_id,\n",
    "  cs.uncompressed_heap_size + cs.uncompressed_toast_size AS uncompressed_data_size,\n",
    "  cs.uncompressed_index_size,\n",
    "  cs.compressed_heap_size + cs.compressed_toast_size AS compressed_data_size,\n",
    "  cs.compressed_index_size\n",
    "FROM timescaledb_information.compressed_chunk_stats AS cc\n",
    "JOIN _timescaledb_catalog.hypertable AS h\n",
    "ON cc.hypertable_name::text = h.table_name::text\n",
    "JOIN _timescaledb_catalog.chunk AS c\n",
    "ON cc.chunk_name::text = CONCAT(c.schema_name, '.', c.table_name)\n",
    "JOIN _timescaledb_catalog.compression_chunk_size AS cs\n",
    "ON cs.compressed_chunk_id = c.compressed_chunk_id\n",
    "WHERE cc.compression_status = 'Compressed';\n",
    "\"\"\")\n",
    "print(chunk_compressed_raw.head(5))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 155,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>uncompressed_data_size</th>\n",
       "      <th>uncompressed_index_size</th>\n",
       "      <th>compressed_data_size</th>\n",
       "      <th>compressed_index_size</th>\n",
       "      <th>data_ratio</th>\n",
       "      <th>index_ratio</th>\n",
       "      <th>total_ratio</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>322166784</td>\n",
       "      <td>622002176</td>\n",
       "      <td>14991360</td>\n",
       "      <td>1064960</td>\n",
       "      <td>0.953467</td>\n",
       "      <td>0.998288</td>\n",
       "      <td>0.982994</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>322256896</td>\n",
       "      <td>622485504</td>\n",
       "      <td>15048704</td>\n",
       "      <td>1064960</td>\n",
       "      <td>0.953302</td>\n",
       "      <td>0.998289</td>\n",
       "      <td>0.982944</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>323665920</td>\n",
       "      <td>625516544</td>\n",
       "      <td>15482880</td>\n",
       "      <td>1130496</td>\n",
       "      <td>0.952164</td>\n",
       "      <td>0.998193</td>\n",
       "      <td>0.982497</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>322461696</td>\n",
       "      <td>620290048</td>\n",
       "      <td>15007744</td>\n",
       "      <td>1064960</td>\n",
       "      <td>0.953459</td>\n",
       "      <td>0.998283</td>\n",
       "      <td>0.982951</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>322461696</td>\n",
       "      <td>621641728</td>\n",
       "      <td>15007744</td>\n",
       "      <td>1081344</td>\n",
       "      <td>0.953459</td>\n",
       "      <td>0.998261</td>\n",
       "      <td>0.982958</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   uncompressed_data_size  uncompressed_index_size  compressed_data_size  \\\n",
       "0               322166784                622002176              14991360   \n",
       "1               322256896                622485504              15048704   \n",
       "2               323665920                625516544              15482880   \n",
       "3               322461696                620290048              15007744   \n",
       "4               322461696                621641728              15007744   \n",
       "\n",
       "   compressed_index_size  data_ratio  index_ratio  total_ratio  \n",
       "0                1064960    0.953467     0.998288     0.982994  \n",
       "1                1064960    0.953302     0.998289     0.982944  \n",
       "2                1130496    0.952164     0.998193     0.982497  \n",
       "3                1064960    0.953459     0.998283     0.982951  \n",
       "4                1081344    0.953459     0.998261     0.982958  "
      ]
     },
     "execution_count": 155,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "def data_ratio(row):\n",
    "    return row['compressed_data_size'] / float(row['uncompressed_data_size'])\n",
    "\n",
    "def index_ratio(row):\n",
    "    return row['compressed_index_size'] / float(row['uncompressed_index_size'])\n",
    "\n",
    "def total_ratio(row):\n",
    "    return (row['compressed_data_size'] + row['compressed_index_size']) / float(row['uncompressed_data_size'] + row['uncompressed_index_size'])\n",
    "\n",
    "chunk_compressed_table = chunk_compressed_raw.drop(columns=[\n",
    "    'hypertable_name', 'chunk_name', 'compressed_hypertable_id', 'compressed_chunk_id'\n",
    "])\n",
    "chunk_compressed_table['data_ratio'] = chunk_compressed_table.apply(lambda row: 1 - data_ratio(row), axis=1)\n",
    "chunk_compressed_table['index_ratio'] = chunk_compressed_table.apply(lambda row: 1 - index_ratio(row), axis=1)\n",
    "chunk_compressed_table['total_ratio'] = chunk_compressed_table.apply(lambda row: 1 - total_ratio(row), axis=1)\n",
    "chunk_compressed_table.head(5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 156,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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5EQREVFv27lzZ1LXv337dh07dqxWV1erquqJEydUVfXqq6/Whx9+WFVVH3zwQV2yZImqqt544426bNkyDQaD+swzz2hBQYFu27ZNA4GATp8+Xd9//31VVQWgv//971VV9Z577tHVq1erquq8efP05ptvbl//9ddfrxs3blRV1YMHD+q4cePa179p0yZVVa2rq9O2tjZds2aN/uhHP1JVVb/fr7W1tVpdXa2XXXaZ1tfXq6rqvffeq/fcc482NTVpaWmp7tmzR4PBoC5dulQXL1582va//vrr7ePvuusunTVrljY3N2t1dbUWFRVpa2urVlRU6KRJk7ShoUE/++wzHT16tN53332qqnr55Zfrnj17VFX173//uy5YsEBVVT/99FMdPXq0vvnmmzpmzJj2/Xq2ouUXABUaIx7kKXciIkptTutw0B/WYszHNRERpbUXbwE+3RLfZQ4pA666P+bk1157DV/+8pcxaNAgAEBRUREAYPPmze2trCtWrMD3v//99u988YtfhIhg8uTJKCkpweTJkwEAEydOxIEDB1BWVgaPx4Nly5YBAG644QZcd9117d93xgPAK6+8gp07d7Z/rq2tRV1dHWbPno1bb70VX/3qV3HdddehtLQUM2fOxKpVq9DW1oZrrrkGZWVl2LBhA3bu3InZs2cDAFpbWzFr1izs3r0bo0aNwpgxY9rTsHbt2i531+LFi5GdnY3s7GwMHjwYR48excaNG3HttdciN9eecvNP//RPAID6+nq89dZbWLp0afv3W1paAAAlJSX44Q9/iAULFuDpp59u36+9jYExERGltqiBMf++iIiod6kqRKTL+cLnyc7OBgB4PJ72985nv99/2ncjv5+Xl9f+PhgMYvPmzfD5fB3mv/3227F48WK88MILuPTSS/HKK69g7ty5ePPNN/H8889jxYoVuO2221BYWIgrrrgCTzzxRIfvb9mypVvbFSl8e7xeb/v2RFtWMBjEgAEDsGVL9JMZH3zwAQYOHIgjR470OB3xwpoFERGlNgbGREQUqZOW3URZuHAhrr32Wnz3u9/FwIEDUVNTg6KiInzuc5/DunXrsGLFCjz22GOYM2dOj5YbDAbxhz/8AcuXL8fjjz8e8/tXXnklfvnLX+K2224DYAFtWVkZ9u3bh8mTJ2Py5MnYvHkzdu/eDZ/Ph2HDhuGb3/wmGhoa8N577+HOO+/E6tWrsXfvXlx44YVobGxEZWUlxo0bh/3792Pfvn0YPXr0aYFzT8ydOxcrV67E7bffDr/fjz/96U/41re+hX79+mHUqFH4r//6LyxduhSqim3btmHq1Kl4++238Ze//AXvv/8+5s2bhyuvvBKjRo064zScKd58i4iIUluHwLit4zgiIqJeMnHiRNx5552YN28epk6diltvvRUA8MADD+Chhx7ClClT8J//+Z/4+c9/3qPl5uXlYceOHZgxYwZee+01/Nu//VvU+R544AFUVFRgypQpmDBhAn7zm98AAO6//35MmjQJU6dOhc/nw6JFi/DGG2+034zrj3/8I77zne+guLgYDz/8MK6//npMmTIFl156KXbv3o2cnBysXbsWixcvxpw5czBixIgz3kfTp0/HsmXLUFZWhi996Uu47LLL2qc99thjePDBBzF16lRMnDgRzz77LFpaWvDNb34Tv/vd73Deeefhpz/9KVatWgW7HLh3STJWmorKy8u1oqIi2ckgIqJIx3YAO/8LmLkaaGsAtjwMTL0RKOz9s8lERJQ8u3btwvjx45OdjLjLz89vvzs0xU+0/CIi76pq1GdOscWYiIhSG7tSExERUYIxMCYiotQWLTD28q7URETUN7C1ODUwMCYiotTGFmMiIiJKMAbGRESU2toD4zYGxkREaY73R6LuOJN8wsCYiIhSG1uMiYgIQE5ODk6cOMHgmDqlqjhx4gRycnJ69D3WLIiIKLWFB8YBPq6JiChdlZaWorKyEtXV1clOCqW4nJwclJaW9ug7rFkQEVFqY4sxEREByMzMxKhRfFQfJQa7UhMRUWo7LTAWQLxJTRIRERH1LQkPjEXEKyLvi8ifw8YVicjLIvJR6LUwbNoPRGSviHwoIl+Iscw3ROSQiEjYuGdEpD70fqSINInIFhHZKiJvichFidxOIiJKkMjA2JMBuMU/ERER0VnrjRbj7wDYFTHudgCvquoYAK+GPkNEJgBYDmAigKsA/EokZrPAKQCzQ98bAGBoxPR9qlqmqlMBPALgjjhsCxER9bZogTERERFRHCU0MBaRUgCLAfxHxKQlsGAVoddrwsavU9UWVd0PYC+Ai2Msfh0siAaA6wA81UlS+gE42bPUExFRShAPAGFgTERERAmT6Bbj+wF8H0AwYnyJqlYBQOh1cGj8MACfhM1XGRoXzasA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onNCTg5vvEVERESJwcCYiIjOCT4fA2MiIiJKjIxkJ4CIiKg7Fi0CsrOTnQoiIiLqixgYExHROWHUqGSngIiIiPoqdqUmIiIiIiKitMbAmIiIiIiIiNIaA2MiIiIiIiJKawyMiYiIiIiIKK0xMCYiIiIiIqK0xsCYiIiIiIiI0hoDYyIiIiIiIkprDIyJiIiIiIgorSU0MBaR34nIMRHZHjG+SEReFpGPQq+FYdN+ICJ7ReRDEflCjOW+ISKHRETCxj0jIvWh9yNFpElEtojIVhF5S0QuStR2EhERERER0bkr0S3GDwO4Ksr42wG8qqpjALwa+gwRmQBgOYCJoe/9SkS8MZZ9CsDs0PcGABgaMX2fqpap6lQAjwC44+w2hYiIiIiIiPqihAbGqvomgJook5bAglWEXq8JG79OVVtUdT+AvQAujrH4dbAgGgCuA/BUJ0npB+BkD5JOREREREREaSJZ1xiXqGoVAIReB4fGDwPwSdh8laFx0bwKYG6oRXk5gCcjpo8OdaXeB+BWAD+LXICI3CQiFSJSUV1dfeZbQ0REREREROesVLv5lkQZpzHmDQDYBGAZAJ+qHoiY7nSlHg3gFgBrT1uw6lpVLVfV8uLi4rNINhEREREREZ2rkhUYHxWRoQAQej0WGl8JYHjYfKUAjnSynHUAfgFgfRfrew7A3DNLKhEREREREfVlyQqMnwNwY+j9jQCeDRu/XESyRWQUgDEA3u5kORsB/ATAE12sbw6AfWeeXCIiIiIiIuqrMhK5cBF5AsB8AINEpBLAXar6IIB7AawXkW8AOARgKQCo6g4RWQ9gJwA/gNWqGoi1fFVVAGtiTB4tIltg3bNbAfxzfLaKiIiIiIiI+hKx2JLKy8u1oqIi2ckgIiIiIiKiBBCRd1W1PNq0VLv5FhEREREREVGvYmBMREREREREaY2BMREREREREaU1BsZERERERESU1hgYExERERERUVpjYExERERERERpjYExERERERERpTUGxkRERERERJTWGBgTERERERFRWmNgTERERERERGmNgTERERERERGlNQbGRERERERElNYYGBMREREREVFaY2BMREREREREaY2BMREREREREaU1BsZERERERESU1hgYExHROUsVaGtLdiqIiIjoXJeR7ARQ96i6QzB4+vtYr14v4PPZ+zffBF54ATh4ECgvBy6+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\n",
      "text/plain": [
       "<Figure size 1152x576 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, ax = plot.subplots(nrows=2, figsize=(16, 8))\n",
    "\n",
    "def format_pct(y, pos):\n",
    "    return f'{round(y * 100)}%'\n",
    "\n",
    "ax[0].plot(chunk_compressed_table['data_ratio'], label='data', color='blue')\n",
    "ax[0].plot(chunk_compressed_table['index_ratio'], label='index', color='orange')\n",
    "ax[0].plot(chunk_compressed_table['total_ratio'], label='total', color='red')\n",
    "ax[0].legend(loc='upper right')\n",
    "ax[0].yaxis.set_major_formatter(FuncFormatter(format_pct))\n",
    "ax[0].yaxis.set_label_text('ratio')\n",
    "\n",
    "ax[1].plot(chunk_compressed_table['uncompressed_data_size'], label='uncompressed data', color=(0, 0, 1.0, 0.5))\n",
    "ax[1].plot(chunk_compressed_table['uncompressed_index_size'], label='uncompressed index', color=(1.0, 0.5, 0, 0.5))\n",
    "ax[1].plot(chunk_compressed_table['compressed_data_size'], label='compressed data', color=(0, 0, 1.0, 1.0))\n",
    "ax[1].plot(chunk_compressed_table['compressed_index_size'], label='compressed index', color=(1.0, 0.5, 0, 1.0))\n",
    "ax[1].legend(loc='upper right')\n",
    "ax[1].yaxis.set_major_formatter(FuncFormatter(format_bytes))\n",
    "ax[1].yaxis.set_label_text('size')\n",
    "\n",
    "fig.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "This graph shows chunk size in bytes for historical (compressed) chunks."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "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.7.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}