{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "### Time Series Changes and Versioning with TimeDB\n", "\n", "This notebook demonstrates how to manually change values, tags, and annotations of a time series and view all versions of the changes.\n", "\n", "#### What you'll learn:\n", "1. **Creating and inserting a time series** - Insert initial time series data\n", "2. **Reading and visualizing time series** - Read and plot the original data\n", "3. **Updating time series** - Manually change values, tags, and annotations\n", "4. **Reading all versions** - Query all versions of the time series using `all_versions` flag\n", "5. **Visualizing changes** - Plot original vs updated versions to see the differences\n", "6. **Batch updates and version history** - Update multiple values and view complete version history with metadata\n", "\n", "**Key Concepts:**\n", "- TimeDB maintains a full version history of all changes\n", "- Each update creates a new version while keeping the old version for audit trail\n", "- The `all_versions=True` flag allows you to see all historical versions with `changed_by` and `change_time` metadata\n", "- The `tags_and_annotations=True` flag includes tags and annotations as DataFrame columns\n", "- When using `all_versions=True` with `return_value_id=True`, the DataFrame uses a MultiIndex `(valid_time, value_id)` to preserve multiple versions\n", "- Updates can modify values, annotations, and tags independently or together\n", "- Using `value_id` from the initial read makes updates simple - no need to query the database again\n" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "✓ Imports successful\n" ] } ], "source": [ "import timedb as td\n", "import pandas as pd\n", "import matplotlib.pyplot as plt\n", "from datetime import datetime, timezone, timedelta\n", "import numpy as np\n", "\n", "# Load environment variables (for database connection)\n", "from dotenv import load_dotenv\n", "load_dotenv()\n", "\n", "print(\"✓ Imports successful\")\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Part 1: Create and Insert a Time Series\n", "\n", "First, let's create the database schema and insert an initial time series.\n" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Creating database schema...\n", "✓ Schema created successfully\n" ] } ], "source": [ "# Delete database schema\n", "td.delete()\n", "\n", "# Create database schema (includes support for updates, tags, and annotations)\n", "td.create()\n" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Data values inserted successfully.\n", "✓ Time series inserted successfully!\n", " Run ID: fe63180a-a3bd-41a7-a84d-4f64462c02a2\n", " Series ID: b3af9adf-db64-4ef6-ade8-54333d06fae5\n", " Time range: 2025-01-01 00:00:00+00:00 to 2025-01-01 23:00:00+00:00\n", " Number of data points: 24\n" ] } ], "source": [ "# Create a time series with hourly data for 24 hours\n", "base_time = datetime(2025, 1, 1, 0, 0, tzinfo=timezone.utc)\n", "times = [base_time + timedelta(hours=i) for i in range(24)]\n", "\n", "# Generate sample data: temperature values with a daily pattern\n", "# Starting at 15°C, rising to 25°C during the day, then cooling down\n", "np.random.seed(42) # For reproducibility\n", "base_temp = 20.0\n", "amplitude = 5.0\n", "temperature_values = [\n", " base_temp + amplitude * np.sin(2 * np.pi * i / 24) + np.random.normal(0, 0.5)\n", " for i in range(24)\n", "]\n", "temperature_values = [round(v, 2) for v in temperature_values]\n", "\n", "# Create DataFrame\n", "df = pd.DataFrame({\n", " 'valid_time': times,\n", " 'temperature': temperature_values\n", "})\n", "\n", "# Insert the time series\n", "result = td.insert_batch(df=df)\n", "\n", "print(f\"✓ Time series inserted successfully!\")\n", "print(f\" Run ID: {result.run_id}\")\n", "print(f\" Series ID: {result.series_ids['temperature']}\")\n", "print(f\" Time range: {times[0]} to {times[-1]}\")\n", "print(f\" Number of data points: {len(df)}\")\n", "\n", "# Store the series_id for later use\n", "series_id = result.series_ids['temperature']\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Part 2: Read and Plot the Original Time Series\n", "\n", "Now let's read back the time series and visualize it." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "✓ Read 24 data points\n", "\n", "DataFrame shape: (24, 2)\n", "\n", "Columns: ['temperature', 'value_id']\n", "\n", "First few rows:\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
series_keytemperaturevalue_id
valid_time
2025-01-01 00:00:00+00:0020.251
2025-01-01 01:00:00+00:0021.222
2025-01-01 02:00:00+00:0022.823
2025-01-01 03:00:00+00:0024.34
2025-01-01 04:00:00+00:0024.215
2025-01-01 05:00:00+00:0024.716
2025-01-01 06:00:00+00:0025.797
2025-01-01 07:00:00+00:0025.218
2025-01-01 08:00:00+00:0024.19
2025-01-01 09:00:00+00:0023.8110
\n", "
" ], "text/plain": [ "series_key temperature value_id\n", "valid_time \n", "2025-01-01 00:00:00+00:00 20.25 1\n", "2025-01-01 01:00:00+00:00 21.22 2\n", "2025-01-01 02:00:00+00:00 22.82 3\n", "2025-01-01 03:00:00+00:00 24.3 4\n", "2025-01-01 04:00:00+00:00 24.21 5\n", "2025-01-01 05:00:00+00:00 24.71 6\n", "2025-01-01 06:00:00+00:00 25.79 7\n", "2025-01-01 07:00:00+00:00 25.21 8\n", "2025-01-01 08:00:00+00:00 24.1 9\n", "2025-01-01 09:00:00+00:00 23.81 10" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Read the time series with return_value_id=True so we can use value_id later for updates\n", "df_read = td.read(return_value_id=True)\n", "\n", "print(f\"✓ Read {len(df_read)} data points\")\n", "print(f\"\\nDataFrame shape: {df_read.shape}\")\n", "print(f\"\\nColumns: {list(df_read.columns)}\")\n", "print(f\"\\nFirst few rows:\")\n", "df_read.head(10)\n" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABKUAAAJOCAYAAABm7rQwAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAsetJREFUeJzs3QWYlGXbxvFz6W4QFJBQURQ7EBHFAOO1G33tBhVURCzEQhTFAMX2s30NVOxCUTERJQ0EFEFKpHvZ7zif29ligYWNqf/vOObYeWZmd+995tmJc677ujOysrKyBAAAAAAAAJSiMqX5ywAAAAAAAAAjlAIAAAAAAECpI5QCAAAAAABAqSOUAgAAAAAAQKkjlAIAAAAAAECpI5QCAAAAAABAqSOUAgAAAAAAQKkjlAIAAAAAAECpI5QCAAAAAABAqSOUAgCkhalTpyojIyP79MknnxT5Z5555pnZP2///fdXvOT+u5588skS+z3eZ7l/l/cp2J8AAACbilAKAJAwfvzxR1188cVq06aNatWqpQoVKmizzTbTAQccoAEDBmjBggXxHmLKhXOFPaWK9957T8ccc4y22GKL6PiqXr26ttxyS7Vr104XXXSRXnzxxXgPMWk5mN3Y46okQ9R0c+ONN2bv12bNmsV7OAAAFEq5wt0MAICSs3r1al1xxRW677771rpu9uzZ0Wn48OHq37+/nn32WXXq1Gmjf0edOnV05513Zm+3bNmyyOM++eSTtcMOO0TnmzRpolTnfZZ7H3qfJpMbbrhBN998c57LVq1apcWLF+uPP/7Ql19+GZ1OOumkUhlPsu9PAACAosrIysrKKvJPAQCgCFyhMmTIkOztzTffXCeeeKLq1aunsWPH6uWXX1ZmZmZ0natbPv74Y+2zzz6F+tkrV66Un+oqVqyYsvdR7kqmJ554IppWuC4LFy7Uww8/nOey7777Lk+F0IUXXrhWaHfllVcqmU2YMCEKEGMve1q1aqWjjjpKtWvX1rx586Iqvc8//1xbb721fvjhhxIdy5IlS1S5cmWVKZNaBes+hqZNm5bnsp49e2af33333dcK/A499FBtv/32pTbGRObHuBUrVqhKlSqbXCnVt2/f6Lyr/0prem1Rxw0ASHMOpQAAiJcvvvjCKUH2adddd81asGBBntt89NFHWWXKlMm+zfbbb5+VmZmZff1+++2Xfd0ZZ5yRNXbs2Kyjjjoqq06dOtFlo0ePzpoyZUqe3zN8+PA8v2Pu3LlZF154YdZmm22WValSpazddtst63//+190u9zf558T498Vu9xjyC339zzxxBNZ77//ftb++++fVbVq1axq1aplHXLIIVnjxo1ba3/ccccd0di33nrrrNq1a2eVK1cuq2bNmll77LFH1i233JK1ePHitb4n/+/aWP6e9e2bmI3ZFz///HPW0UcfnVWjRo3o7zjllFOyZs6cGd32ww8/zGrfvn1W5cqVs+rVq5d19tlnZ82bN6/A3zlixIisk046KatJkyZZFSpUyKpevXpW27ZtswYNGpS1cuXKQv+N9957b/b4fB8UtB+XLl2a9fHHHxf4/T/88EPWWWedldWiRYvo+PDP2HnnnbNuvfXWAn/Wlltumf37+vTpk/XZZ59lHXjggdH+8GX//PPPeven+Rh/6qmnsg4++OCs+vXrZ5UvXz7aX4cddljWW2+9VeA4X3/99azOnTtnNWjQIDp2vL88Zh9Tt912W57/m9KQ++/zMVKQN954I+vII4/MatiwYfQ31qpVK6tjx45ZzzzzTNaaNWvy3Db//7EfG+65556sbbbZJrpf/Njw9NNPR7f1/dKjR4+szTffPKtixYrR/TV06NAN3ldfffVVtM99X/l/tVOnTlnfffddgWP3Md27d++snXbaKbqtf0/Lli2zLr744qzff/99rdvn/z/xbU477bTo/srIyMge32OPPZZ1wgknZG277bZZdevWzb4v/XuuuuqqrDlz5mT/zPzHUUGn2OPC+h6zNub/e13j3pR9AgBIb4RSAIC4yv1mxycHFgVxqJH7dp988kmBodQuu+wSBQa5b7uhUMoBgd/8FfRm7ogjjihyKLXPPvtEb9zy/2y/2Zw9e3ae7/Nl63tz2aZNm6xFixYldCjVvHnzKIjKP/ZWrVpFIUvugDF26tChw1q/75prrlnvvth3330LDIQKctddd2V/n4OPb7/9ttD754EHHohCgXWNo3Xr1ll//fXXOoOOvffeO6ts2bJ5vmdDoZQDsoMOOmi9f//ll1++3vuxoNOyZcuyEiWUckD23//+d73jdTCzevXq7O/J/3/s8Lig7/N9tueee651uf8P8z/G5L6vHJb6+Mj/fQ5QHSzmNnLkyCgkXNfYHSY7VM0t9/+Jg2cHcbm/JxburOvvip222GKLrOnTp8cllFrfuDdlnwAA0hs9pQAAcfXZZ59ln/dUqgMPPLDA23naz/PPP5/n+/bbb7+1bjd69GiVK1dO//3vf6OpWD/99JMqVaq03jFcd9110e1i2rdvr44dO0a/Y9iwYSqqL774Qttuu62OPfbYaGrY22+/HV3+999/67HHHtPVV1+dfdvGjRtHv9vTb7w//L5+ypQp0dQoT/vydMYHHnhAV111lRKVx1u3bt1ojJMnT46mX9rPP/+s008/XQ0bNoymGH777bf66KOPoutGjBihr776Sm3bto22X3jhBd12223ZP7Nz587RlM1Zs2bp//7v/6I+UL5/evTosdZ0xILsuuuuefpI7bHHHmrdurX23HNP7bbbbtGx5Ab7+Y0cOVLdunXTmjVrom2P75BDDtGiRYuiccydOzeaGui/6/333y/wd7tPlac2nXbaaVGDdR+jZcuWXe94/Xd9+OGH2VNW3b/Mx7Pv/5deeik6Lu6+++5o7F26dIlu9+CDD2Z/v/++//znP1G/Nk+p+/rrrzVx4kQlkjvuuENPP/109hTU4447TjvttFN0/Phy30/+W3feeWddc801Bf6MUaNGRfeH/95HH31Uf/31V3S5F0ywI488MpoeeP/990fHjPeb+3it63HGUzi32WYbnXDCCfrzzz+jcfi+X7Zsmc4666zoccL3nafBHn300dH9b/5/9WOUp2X6eB8/fny0MIP/pl9//VU1a9Zc63f5cvPjgv/u33//Pft2DRo00BFHHBFNo3WvMf/O6dOnR48Dftzw+VtuuSV6LIj1JvPx98EHH0Tf78eO3PvM+6e4rGvcxbFPAABpKN6pGAAgvbkCIfYpuqfXrIurnXJ/4u6pIAVVSvn02muvrfX966qUWrVqVTTFJHZ5u3btsiszXMnhaURFrZTy1LOFCxdmX+dqrth1xx577FpjnT9/ftbbb7+dNWTIkKjC584774wqiWLfc8ABByR0pZRPn3/+efZ1nj6V+7pYlZL3Se6qlPvuu6/AfXT66afnGYenVcaucwXT33//Xai/09MJ11dNsuOOO641fe+YY47Jvt7TL3NPf/vmm2/yfP+PP/5YYPWNq6RGjRpV6P3pvyd3Zdbjjz+e5/t87Meu836K8fhjl3/55Zdr/T7//ESZvudx5K6oueGGG9aaxhq7ztWDsXHn/z/2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GjRImjjRbWH83tLvPf1+VWrXrmSOOc8O2nvvvaMqo+effz4KmcaPH6+ePXtGPZi9KFisvU1+K1euVIUKFbLfN8e4Uiq2DwraFw4oirshfO7fl/93Nm3aNFoFLsazoPy3ffjhh9mX1axZM2F7IOXmCrTY+7HCKMrxmP9+3lQFZQjxzBQSKs3wP4sDqaFDh+rjjz+O/gFza9asmTbffHP9/PPPeS7/5ZdftOWWW5byaAEg/vzp3dixXpm0fPSVNnMAAABF50Dqyiul77+XatXye9HwdfTocLmvL6kZQw4c3n//fe23335RgHPooYdGgc306dN17bXX5nl/fPPNN+v000+PZgGdf/75URWSQ48ffvgh+3ZvvPFGVNhRuXJldezYUf/3f/8X3Wb+/PnZC4zV8h/3L7fL8ZS7p59+OvodDohOPvnkPFO8HCK5r7O/z9VbrrRyz+fCKFu2rBo2bJh9qlatWlRNFdv2Ymf33HNPlAd4zDvttJNefvnl7O//5JNPovG7kswzp3ybAw44IOpB/c4770RFK94fXbp00dKlS7O/b//994/yBp/8N7ma7Prrr8/TZ8v9qK+88kptscUWqlq1qvbaa6/o98XE9lVsn7oAxgUy3377rQ4++ODoZ/pn+7773gdPrvvKjjnmmGjsse0zzzxzrcoptzHyWPOP25f753fu3Dm63DPLfGx4/2222Wb673//G1XWJZuECqX8D/jMM8/oueeeU/Xq1TVz5szotGzZsuh633lOiO+7777ooJw0aVJ0EP30008655xz4j18AChVfjF02mnSGWdkqFevGtFXb5fUiyQAAIB04A/5XCE1b5601VZStWoOUsLXli3DVL7Bg4v/w0D3+nHQcvHFF0dBS24Oa7zg14svvpgnRHGVkUOb0aNHR++N85syZYpOOOEEHXnkkVFQ5VY4uYOtdXHA9Nprr0UzmHz69NNPdfvtt2dfv2TJkqhNznfffRe103GljQOX4miY7bY87nM1ZMiQqEqsR48eOu2006Ix5ObwbNCgQRo5cmQ05fHEE0+MwiznCW+99VYU7N1///15vseBnAMw97q69957dffdd+vRRx/Nvt7hz5dffqkXXnhBY8aMifbdIYccol9//TX7Ng66+vfvH32fx+cQzYHdGWecEbUfcjWb+10fdthh2UGeQyt74oknoiqx2HZhedwOK7/4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l1/OGwcAwKbr2FFavVq6776w/fLLIZjq0oW9CgAAkJSNzoGS8Ouv0v/9X862A6natdnXAICiOfhg6aKLcraff1566SX2KgAAQFKGUp6m161bN+200046/vjjNWnSpJIdGVLekiWh70dmZtg+/nhp113jPSoAQKo47DDpvPNytp96KlTnAgAAIMlCqdNPP13jx4/X008/rZo1a6pTp05auXJlyY4OKct9PgYPlmbODNutWoXm5gAAFKcjj5RyLwj82GPSm2+yjwEAAJImlHL49NZbb6lHjx7acccddc0112jq1KkaO3ZsyY8QKemDD6TPPgvnq1YNy3h76W4AAIrbccfl/eDjoYekd99lPwMAACRFKFWhQgU1bNhQ33//fbQ9evRolSlTRptvvnlJjw8p6I8/whuCmEsukRo0iOeIAACp7uSTpRNPzNl+4AHpo4/iOSIAAAAUujblscceU5cuXTRs2DD98ssv6t+/vxo1asQexEbxjM/+/cNXO/RQaZ992IkAgJJ32mnSqlXS0KFhGvm994ZV+Tp0YO8DAAAkdCjlHlK///67fvrpJzVt2lT169cv2ZEhJT3ySKiUsi23lM49N94jAgCki4wM6ayzpNWrpWHDQjB1111h+ni7dvEeHQAAQPrZqC4+VatW1W677VZyo0HKWbNGGj9e+ucfacoU6Z13wpuCChWkXr3CVwAASoufg7winyum3FfKz1NeCbZ3b2mvvbgfAAAAShOtpVFiRo6UBg2SJk6UliyR5syRqlSRmjWTbrxRatKEnQ8AiE8wdfHFoWLqww+lzEzp9tul666T+OwNAAAgwRqd33333fr55583+ocvX748+t4///xzU8aGJA+krrxScm/8mjXDJ9JlykgLFkg+HBxOAQAQz2DKC23sv3/YdkB1663Sjz9ynwAAACRUKNWzZ0+NGjVqo3/4kiVLou91Y3SkD0+FcIXUvHnSVluFqXtLl4aeHXXqSJUqhVWPfDsAAOLFH5Z07y61bx+2/QHKTTdJ48ZxnwAAACTM9L2srCy9+uqrmjRp0kb98KVOIpB23EPKU/Y220yaOjVM24t9Ku2Qyo1lJ0wIt2vTJt6jBQCks7JlpSuuCIHU11+H1WH79pVuvlnadtt4jw4AACC1FbqnlEMpn4ANiVVGeaqee0nFNG3qZvmhd8esWeF2AADEmyt5vfjGbbdJ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/JNTLdWsWbxHBQAA0tkmhVL0kwIAAEjOaqlHHw3bL74o9eoV71EBAIB0tkk9pQAAAJB8Dj1UqlUrnP/iC+mPP+I9IgAAkM42OZTytL0XXnhBF1xwgY455hiNHTs2unzBggV69dVXNWvWrOIcJwAAAIqpWsqysliJDwAAJGEoNX/+fO2zzz7q0qWLnn/+eb3xxhuaM2dOdF21atV06aWX6t577y3usQIAAKAYqqVq1gznP/9cmjaNXQoAAJIolLr66qs1fvx4vffee5o8ebKy/FHbv8qWLavjjz9eb7/9dnGOEwAAAMWgYkWqpQAAQBKHUq+99pouueQSHXzwwQWusrfNNtvQDB0AACAJqqU++0z68894jwgAAKSjTQql3DeqefPm67x+1apVWr16dVHGBQAAgBJSqZJ0zDHhvAvevRIfAABAUoRSLVu21Pfff7/O699//321bt26KOMCAABACTr8cKlGjXD+00+l6dPZ3QAAIAlCqXPPPVePP/64Xnzxxex+Up7Gt2LFCl177bV69913o1X5AAAAkJiolgIAAPFWblO+6bLLLosanZ9yyimqVatWdJlX4vv777+jaXsOpM4555ziHisAAACKuVrq1VelRYukTz6RTjpJ2mILdjEAAEjgUMpVUY888ojOOOMMvfTSS5o0aZLWrFkTTes78cQT1aFDh+IfKQAAAIpV5cqht9RTT4XeUv/7n9SjBzsZAAAkcCgV0759++gEAACA5PSf/0hDh+ZUS518stSoUbxHBQAA0kGRQql58+bpww8/1NSpU6Ntr8h3wAEHqG7dusU1PgAAAJRwtdTRR0tPPy2tWRNW4uvenV0OAAASOJS68cYb1b9//6i5eW4VKlTQVVddpZtuuqk4xgcAAIBSqpZavFgaPjz0lqJaCgAAJOTqezfffHMUOh100EF655139Ntvv0Wnt99+O7rs1ltvjW4DAACAxFelinTUUeG8q6VeeineIwIAAOlgk0KpIUOG6IgjjtCwYcPUuXPnaNqeT4cccojefPNNHXbYYXrwwQeLf7QAAAAoEUccIVWtGs5/9JE0cyY7GgAAJGAotWDBgiiAWheHUovcLRMAAABJwYFU7mopr8QHAACQcKHUPvvso6+//nqd1/s63wYAAADJ48gjc6qlPv5Ymj073iMCAACpbJOn73355Zfq0aOHJk2apDVr1kQnn+/evbu++uqr6DYAAABIHg6kPI3PMjOplgIAAAm4+t6OO+4YhVD33XdfdCpTJmRbvswqVqwY3Sa3jIyMaNofAAAAEpen8L3xhrR0qfThh9KJJ0oNGsR7VAAAIBVtUih13HHHRSETAAAAUku1amEa3wsvhGopr8TXtWu8RwUAAFLRJoVSTz75ZPGPBAAAAAnBodTrr0vLluVUS9WvH+9RAQCAVLNJPaUAAACQuqpXz+kttXq19PLL8R4RAABIRZtUKRUzYsQITZ48Wf/884+ysrLyXOfpfW6EDgAAgORz9NGht9Ty5dL770snnCDVqxfvUQEAAKV7KPXDDz/opJNOilbbyx9GxRBKAQAAJH+1lHtKuVrKXy+6KN6jAgAASvdQ6txzz9Xs2bM1ZMgQ7bXXXqpZs2bxjwwAAABxr5YaNoxqKQAAkECh1Pjx43XTTTfpvPPOK/4RAQAAICHUqCH95z+hp5SrpV55RbrggniPCgAApHWj86233jqangcAAIDUr5aqWDGcf+89ad68eI8IAACkdSh14403avDgwZo+fXrxjwgAAAAJw10aXC1lq1axEh8AAIjz9L1jjz1Wy5cvV6tWrXTggQeqcePGKlu2bJ7buJLq3nvvLa5xAgAAIE6OOUZ6801pxYpQLXX88VKdOtwdAAAgDqHUp59+qosuukhLly7VMHe/LAChFAAAQOpUSx12mDR0qLRypfTqq174Jt6jAgAAaTl975JLLlGNGjX03nvvaf78+VqzZs1ap8zMzOIfLQAAAOLi2GOlChXC+XfeobcUAACIUyg1adIk9ezZUwcffHAUTgEAACC11aoVqqUsVi0FAABQ6qHU9ttvrwULFhTpFwMAACC5q6Xmz4/3iAAAQNqFUgMGDNBDDz2kb775pvhHBAAAgIRUu7Z06KHhPNVSAAAgLo3O77rrLlWvXl177723WrduraZNmxa4+t7rr79e5AECAAAgsaqlXCXlUOqtt6TjjguN0AEAAEollBozZkwUOjmMWrx4sSZMmLDWbXw9AAAAUkudOlLnzpIXYI5VS511VrxHBQAA0iaUmjp1avGPBAAAAEnh+OOld9+VVq0K1VKunqJaCgAAlEpPKQAAAKR3tdQhh4TzK1ZIr70W7xEBAIC0CqUyMzP1wgsv6IILLtAxxxyjsWPHRpd7Vb5XX31Vs2bNKs5xAgAAIIG4l1S5f2vu33xTWrgw3iMCAABpEUrNnz9f++yzj7p06aLnn39eb7zxhubMmRNdV61aNV166aW69957i3usAAAASBB164beUrZ8uTR0aLxHBAAA0iKUuvrqqzV+/Hi99957mjx5srKysrKv8yp8xx9/vN5+++3iHCcAAAASsLdU7mqpRYviPSIAAJDyodRrr72mSy65RAcffHCBq+xts802NEMHAABIcfXqSZ065VRL0VsKAACUeCjlvlHNmzdf5/WrVq3S6tWrN+VHAwAAIEmrpYYNo1oKAACUcCjVsmVLff/99+u8/v3331fr1q035UcDAAAgidSvLx10UDi/bJn0+uvxHhEAAEi5UGrEiBHZzczPPfdcPf7443rxxRez+0l5Gt+KFSt07bXX6t13341W5QMAAEDqO+GEvNVSixfHe0QAACClQqmOHTvqgw8+iM5fdtllOv3003XKKadE/aPMK/FVr15d/fr10/nnn69zzjmn5EYNAACAhNGgQU611NKlVEsBAIDC+fczrQ3LvcKeq6IeeeQRnXHGGXr55Zf166+/as2aNdG0vhNPPFEdOnQo7I8FAABAilRL+fPLzEzpjTeko46SqlWL96gAAEBKhFIFad++fXQCAABAenO11IEHurdoqJZyMNWlS7xHBQAAUqbRuSukAAAAgIKceKJUtmw471BqyRL2EwAAKKZQ6rTTTlPZsmULdSoX63YJAACAtLDZZtIBB4TzDqTc9BwAAGBdNio5Ouigg7IbmwMAAAAFVUt99JG0Zo302mvSEUdIVauynwAAQBFDKTc29yp7AAAAQEEaNvSqzSGYcrXUm29KJ53EvgIAAEWcvgcAAABsiEOoMv++ynS1lBufAwAA5EcoBQAAgGLVqJG0//7h/OLFoVoKAAAgP0IpAAAAlEi1VGzhZldLLVvGTgYAAJsYSq1Zs4Z+UgAAACiUzTfPqZZatIhqKQAAkOCVUiNGjNARRxyhzTffXBkZGXrNH6vlsnjxYnXr1k2NGzdW5cqV1bp1aw0ZMiRu4wUAAEDhqqWGDpWWL2dvAQBSg1eZHTvWOUb46m0keSi1ZMkS7bTTTho8eHCB119++eV699139cwzz2jixInq3r17FFK98cYbpT5WAAAArN8WW0j77RfOUy0FAEgVI0dKp50mnX66dOGF4au3fTmSOJQ69NBDdcstt+iYY44p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aYz3iygp5UrsJyNh/f777/r888+1ZMkS7bjjjmrbtm32k0yZMuSU6WLq1Kl68803tXDhQm2//fY66qij4j0kxMGYMWN0zDHH6Pzzz1ejRo20xRZbcD+k6ePBl19+qfnz52vbbbdVx44do+cDvwD18wPSw7Rp0/TVV19pzpw52nXXXaPXB0hPo0eP1m677aZ3331XnTp1ivdwECc//fSTbrzxxui5oVKlSnrttdd4r5CGfP9XqVJFFSpU4HVBGvvzzz81ceJELVq0SLvvvruaNm1abD+bUCrNjB07Nnqz0bp16+h8kyZNtPXWW+uVV16JnmQIptIniDjkkEO088476+eff1bDhg1VtmxZ/ec//4n30FCKfvvtNx100EE69dRTdfnll6t8+fJ5rufxID34ueDAAw+MAojx48erRo0a0WPC0KFDozchBFPpcxwcfvjh2mqrrfT9999HH1b897//1YUXXhjvoaGU/fjjj9pvv/3Uo0cPAqk05ucDHwdHHnmkmjdvrpdfflmnnXaannnmmeh6nhvSg0OIs846S0cffXT0mFCxYkXu+zR9jdCpUyc1btw4eo3gUKpdu3YaOHBgsfx8ymLSiCujXA1x0kkn6eOPP47CiF69ekUBxV577aXVq1dnB1NIXb/88osOPfRQnX322VGllKvm/AmIy/SRXuXXzz77bPSC008oDiUfeugh3XLLLerfv390PZWTqe/vv/+O3mT48eCNN97QqFGj1L17d7333ntRQDF37lyma6SByZMnR288fSy89dZbmjBhglq2bBkdB0gv48aNU/v27dW1a1fddddd0WtCV035uPDrRaSHxYsX6+KLL44+tHr88cd122236dxzz1WDBg2yb0MVber7448/dPLJJ0cfYvox4MEHH9SKFSui+56pfOljwYIF0esDHwsffPCBpkyZEr1GfP/994ttpg2hVBrxg4iDqcMOO0zlypWLnlhOPPHE6BMP9ww44IADotvFpmwgNY+BBx54QJ07d1afPn2iJxVP2XLFlBPwnj17FlvijcQVeyHpqTrbbLNNdN6fdjikGjZsmAYPHhxVU7pM1wiqU5ePAT/eX3DBBdF2rVq1oueCVq1aRY8JRxxxRHQ5AWVq94t5+umno089e/fuHX0Kvvnmm+u8887T8OHDo6mdSA9+rO/bt2/0WtGvEcwfYvkDTT8WdOnS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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "✓ Original time series plotted successfully!\n" ] } ], "source": [ "# Plot the original time series\n", "plt.figure(figsize=(12, 6))\n", "plt.plot(df_read.index, df_read['temperature'], marker='o', linewidth=2, markersize=6, \n", " label='Original Temperature', color='blue', alpha=0.7)\n", "\n", "plt.xlabel('Time', fontsize=12)\n", "plt.ylabel('Temperature [°C]', fontsize=12)\n", "plt.title('Original Time Series - Temperature', fontsize=14, fontweight='bold')\n", "plt.legend()\n", "plt.grid(True, alpha=0.3)\n", "plt.xticks(rotation=45)\n", "plt.tight_layout()\n", "plt.show()\n", "\n", "print(\"✓ Original time series plotted successfully!\")\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Part 3: Update the Time Series\n", "\n", "Now we'll make an update to change a value, add a tag, and add an annotation. We'll update the value at hour 2 (early in the series) to correct what appears to be an anomalous reading.\n" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Original value at 2025-01-01 02:00:00+00:00: 22.82 dimensionless°C\n", "Value ID for update: 3\n", "\n", "Updating to: 24.5°C\n", "Adding annotation: 'Manual correction: sensor reading was anomalous'\n", "Adding tags: ['reviewed', 'corrected']\n", "\n", "✓ Update completed!\n", " Updated records: 1\n", " Skipped (no-op): 0\n", " New value ID: 25\n" ] } ], "source": [ "# The time point we want to update (hour 2, early in the series for better visibility)\n", "update_time = base_time + timedelta(hours=2)\n", "\n", "# Get the original value for reference\n", "original_value = df_read.loc[update_time, 'temperature']\n", "print(f\"Original value at {update_time}: {original_value}°C\")\n", "\n", "# Get the value_id for the time point we want to update (from the first read)\n", "value_id = df_read.loc[update_time, 'value_id']\n", "print(f\"Value ID for update: {value_id}\")\n", "\n", "# Create an update that:\n", "# 1. Changes the value to a corrected temperature (e.g., 24.5°C instead of the original)\n", "# 2. Adds an annotation explaining the correction\n", "# 3. Adds tags to mark this as reviewed and corrected\n", "corrected_value = 24.5\n", "\n", "print(f\"\\nUpdating to: {corrected_value}°C\")\n", "print(f\"Adding annotation: 'Manual correction: sensor reading was anomalous'\")\n", "print(f\"Adding tags: ['reviewed', 'corrected']\")\n", "\n", "# Create the update record using value_id (simplest approach - no need for run_id, tenant_id, etc.)\n", "record_update = {\n", " \"value_id\": value_id,\n", " \"value\": corrected_value, # New corrected value\n", " \"annotation\": \"Manual correction: sensor reading was anomalous\", # Annotation explaining the change\n", " \"tags\": [\"reviewed\", \"corrected\"], # Tags for quality tracking\n", " \"changed_by\": \"analyst@example.com\", # Who made the change\n", "}\n", "\n", "# Execute the update using the SDK (handles connection internally)\n", "result = td.update_records(updates=[record_update])\n", "\n", "print(f\"\\n✓ Update completed!\")\n", "print(f\" Updated records: {len(result['updated'])}\")\n", "print(f\" Skipped (no-op): {len(result['skipped_no_ops'])}\")\n", "if result['updated']:\n", " print(f\" New value ID: {result['updated'][0]['value_id']}\")\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Part 4: Read All Versions of the Time Series\n", "\n", "Now let's read the time series again, but this time with `all_versions=True` to see both the original version and the updated version.\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "✓ Read 25 data points (including all versions)\n", "\n", "DataFrame shape: (25, 5)\n", "\n", "Columns: ['temperature', 'changed_by', 'change_time', 'tags', 'annotation']\n", "\n", "Index: None\n", "\n", "Note: With all_versions=True, we get both current and historical versions.\n", "\n", "First few rows:\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
series_keytemperaturechanged_bychange_timetagsannotation
valid_timevalue_id
2025-01-01 00:00:00+00:00120.25None2025-12-31 18:02:49.216106+00:00NoneNone
2025-01-01 01:00:00+00:00221.22None2025-12-31 18:02:49.216106+00:00NoneNone
2025-01-01 02:00:00+00:00322.82None2025-12-31 18:02:49.216106+00:00NoneNone
2524.5analyst@example.com2025-12-31 18:02:55.195082+00:00[corrected, reviewed]Manual correction: sensor reading was anomalous
2025-01-01 03:00:00+00:00424.3None2025-12-31 18:02:49.216106+00:00NoneNone
2025-01-01 04:00:00+00:00524.21None2025-12-31 18:02:49.216106+00:00NoneNone
2025-01-01 05:00:00+00:00624.71None2025-12-31 18:02:49.216106+00:00NoneNone
2025-01-01 06:00:00+00:00725.79None2025-12-31 18:02:49.216106+00:00NoneNone
2025-01-01 07:00:00+00:00825.21None2025-12-31 18:02:49.216106+00:00NoneNone
2025-01-01 08:00:00+00:00924.1None2025-12-31 18:02:49.216106+00:00NoneNone
2025-01-01 09:00:00+00:001023.81None2025-12-31 18:02:49.216106+00:00NoneNone
2025-01-01 10:00:00+00:001122.27None2025-12-31 18:02:49.216106+00:00NoneNone
2025-01-01 11:00:00+00:001221.06None2025-12-31 18:02:49.216106+00:00NoneNone
2025-01-01 12:00:00+00:001320.12None2025-12-31 18:02:49.216106+00:00NoneNone
2025-01-01 13:00:00+00:001417.75None2025-12-31 18:02:49.216106+00:00NoneNone
\n", "
" ], "text/plain": [ "series_key temperature changed_by \\\n", "valid_time value_id \n", "2025-01-01 00:00:00+00:00 1 20.25 None \n", "2025-01-01 01:00:00+00:00 2 21.22 None \n", "2025-01-01 02:00:00+00:00 3 22.82 None \n", " 25 24.5 analyst@example.com \n", "2025-01-01 03:00:00+00:00 4 24.3 None \n", "2025-01-01 04:00:00+00:00 5 24.21 None \n", "2025-01-01 05:00:00+00:00 6 24.71 None \n", "2025-01-01 06:00:00+00:00 7 25.79 None \n", "2025-01-01 07:00:00+00:00 8 25.21 None \n", "2025-01-01 08:00:00+00:00 9 24.1 None \n", "2025-01-01 09:00:00+00:00 10 23.81 None \n", "2025-01-01 10:00:00+00:00 11 22.27 None \n", "2025-01-01 11:00:00+00:00 12 21.06 None \n", "2025-01-01 12:00:00+00:00 13 20.12 None \n", "2025-01-01 13:00:00+00:00 14 17.75 None \n", "\n", "series_key change_time \\\n", "valid_time value_id \n", "2025-01-01 00:00:00+00:00 1 2025-12-31 18:02:49.216106+00:00 \n", "2025-01-01 01:00:00+00:00 2 2025-12-31 18:02:49.216106+00:00 \n", "2025-01-01 02:00:00+00:00 3 2025-12-31 18:02:49.216106+00:00 \n", " 25 2025-12-31 18:02:55.195082+00:00 \n", "2025-01-01 03:00:00+00:00 4 2025-12-31 18:02:49.216106+00:00 \n", "2025-01-01 04:00:00+00:00 5 2025-12-31 18:02:49.216106+00:00 \n", "2025-01-01 05:00:00+00:00 6 2025-12-31 18:02:49.216106+00:00 \n", "2025-01-01 06:00:00+00:00 7 2025-12-31 18:02:49.216106+00:00 \n", "2025-01-01 07:00:00+00:00 8 2025-12-31 18:02:49.216106+00:00 \n", "2025-01-01 08:00:00+00:00 9 2025-12-31 18:02:49.216106+00:00 \n", "2025-01-01 09:00:00+00:00 10 2025-12-31 18:02:49.216106+00:00 \n", "2025-01-01 10:00:00+00:00 11 2025-12-31 18:02:49.216106+00:00 \n", "2025-01-01 11:00:00+00:00 12 2025-12-31 18:02:49.216106+00:00 \n", "2025-01-01 12:00:00+00:00 13 2025-12-31 18:02:49.216106+00:00 \n", "2025-01-01 13:00:00+00:00 14 2025-12-31 18:02:49.216106+00:00 \n", "\n", "series_key tags \\\n", "valid_time value_id \n", "2025-01-01 00:00:00+00:00 1 None \n", "2025-01-01 01:00:00+00:00 2 None \n", "2025-01-01 02:00:00+00:00 3 None \n", " 25 [corrected, reviewed] \n", "2025-01-01 03:00:00+00:00 4 None \n", "2025-01-01 04:00:00+00:00 5 None \n", "2025-01-01 05:00:00+00:00 6 None \n", "2025-01-01 06:00:00+00:00 7 None \n", "2025-01-01 07:00:00+00:00 8 None \n", "2025-01-01 08:00:00+00:00 9 None \n", "2025-01-01 09:00:00+00:00 10 None \n", "2025-01-01 10:00:00+00:00 11 None \n", "2025-01-01 11:00:00+00:00 12 None \n", "2025-01-01 12:00:00+00:00 13 None \n", "2025-01-01 13:00:00+00:00 14 None \n", "\n", "series_key annotation \n", "valid_time value_id \n", "2025-01-01 00:00:00+00:00 1 None \n", "2025-01-01 01:00:00+00:00 2 None \n", "2025-01-01 02:00:00+00:00 3 None \n", " 25 Manual correction: sensor reading was anomalous \n", "2025-01-01 03:00:00+00:00 4 None \n", "2025-01-01 04:00:00+00:00 5 None \n", "2025-01-01 05:00:00+00:00 6 None \n", "2025-01-01 06:00:00+00:00 7 None \n", "2025-01-01 07:00:00+00:00 8 None \n", "2025-01-01 08:00:00+00:00 9 None \n", "2025-01-01 09:00:00+00:00 10 None \n", "2025-01-01 10:00:00+00:00 11 None \n", "2025-01-01 11:00:00+00:00 12 None \n", "2025-01-01 12:00:00+00:00 13 None \n", "2025-01-01 13:00:00+00:00 14 None " ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Read with all_versions=True to get all versions (original and updated)\n", "# Also include tags_and_annotations=True to see tags and annotations\n", "df_all_versions = td.read(\n", " series_id=series_id,\n", " start_valid=base_time,\n", " end_valid=base_time + timedelta(hours=24),\n", " all_versions=True,\n", " return_value_id=True,\n", " tags_and_annotations=True\n", ")\n", "\n", "print(f\"✓ Read {len(df_all_versions)} data points (including all versions)\")\n", "print(f\"\\nDataFrame shape: {df_all_versions.shape}\")\n", "print(f\"\\nColumns: {list(df_all_versions.columns)}\")\n", "if isinstance(df_all_versions.index, pd.MultiIndex):\n", " print(f\"\\nIndex: MultiIndex with levels {df_all_versions.index.names}\")\n", "else:\n", " print(f\"\\nIndex: {df_all_versions.index.name}\")\n", "print(f\"\\nNote: With all_versions=True, we get both current and historical versions.\")\n", "print(f\" The DataFrame includes changed_by and change_time columns for audit trail.\")\n", "print(f\"\\nFirst few rows:\")\n", "df_all_versions.head(15)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Part 5: Plot Original vs Updated Time Series\n", "\n", "Now let's plot both the original and updated versions to visualize the change.\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABWwAAAKyCAYAAABBmpf5AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQABAABJREFUeJzs3QWYE1cXBuAvyboL7u5eqNAiBQrUqVIvNeruTpX2rzt16t5SxwvUKFKKFCvutu6W/M93w2Szyy6sJ7v7vc8T4pOZOzcT9sy559pcLpcLIiIiIiIiIiIiIuJzdl+vgIiIiIiIiIiIiIi4KWArIiIiIiIiIiIi4icUsBURERERERERERHxEwrYioiIiIiIiIiIiPgJBWxFRERERERERERE/IQCtiIiIiIiIiIiIiJ+QgFbERERERERERERET+hgK2IiIiIiIiIiIiIn1DAVkRERERERERERMRPKGArIiJ1xqZNm2Cz2TyXOXPmVHqZ48aN8yxv6NCh8BXv7Zo8ebLP1qM24/6z2pD7tbaqqb7A74/3Z/H7JWrP+ty32rRp41nnCRMmoLbiccO7/Wsj/SaKiEhdp4CtiIjUqKVLl+Kaa65Bz549ERMTg6CgIDRu3BjDhg3D008/jZSUFO2ROoDBjEMFZLyDH74Mhtf2YH55TmKU9VJXTJs2DaeddhqaN29ujjWRkZFo3bo1Bg4ciKuvvhqfffaZr1exTlA7+4/aGozdvXs3HnnkEQwZMsT8n4Df1/DwcHTv3h2XXXYZfv75Z7hcLl+vpoiISI0JqLmPEhGR+iw/Px+33norXnzxxQOe27Nnj7n88ssvePLJJ/HRRx9h5MiR5f6MuLg4PPXUU5777du3r/R6n3POOejRo4e53bJly0ovT6S24PfH+/vE71dt8sADD5gAkLe8vDykp6djy5Yt+PPPP81l7NixNbI+tb09a0s7V6d7773Xc1KRQX+pGq+++qr5/0F2dvYB/WjlypXm8s4772Djxo3mRJ+IiEh9oICtiIjUiOuvvx6TJk3y3G/WrBnOPvtsNGjQAMuXL8eXX36JgoIC7Nu3DyeffDJmz56No48+ukzLzs3NNZk3UVFRuO2226p0vUePHm0uIrVR8ZMYtGjRoiKZpVdddVWJJzd4gqKqv081hQGeRx991HO/c+fOOPXUUxEbG4vExEST6f/bb7/VyLpkZGQgNDS0VrdnbWjnmnDFFVf4ehXqnP/973+48847PfcdDgdOPPFEHHbYYSZDeN26dSaDmxm4IiIi9YpLRESkmv3+++8cx+i59OvXz5WSklLkNbNmzXLZ7XbPa7p37+4qKCjwPD9kyBDPcxdffLFr+fLlrlNPPdUVFxdnHluyZIlr48aNRT7nl19+KfIZ+/btc1111VWuxo0bu0JCQlyHHXaY6/PPPzev834fl2PhZ1mPcx28eb/n3XffdU2fPt01dOhQV3h4uCsiIsI1evRo14oVKw5oj//9739m3Tt27OiKjY11BQQEuKKjo10DBgxwPfroo6709PQD3lP8sw7lmGOOKdJexb366que56OiolyZmZnm8U2bNrnGjx/v6tChg2mj4OBgV7NmzVwDBw503Xzzza6VK1e6yuLBBx8stU0trVu3LrVtvZ/jsubPn+867rjjzLqybUeOHOlatGhRiZ/99ddfm7bk+jdq1Mh16aWXunbv3n1AH6roPmH7e29bSRfvvsd+/P7775v1b9iwoSswMNDVoEED1wknnOD68ccfS9yGvLw818SJE81+CAoKcrVr1871yCOPuHJzc8vdF4orvv7FvyeW8nwv1qxZ4xozZozZP2y/c88917Vr1y7z2pkzZ5r+GBoaarab+yMxMbHEz5w3b55r7NixrpYtW5rtjoyMdB155JGul19+2Wx7Wb3wwgue9eP3saTvFPv87NmzS3z/P//847rkkktMu7MfcRl9+vRxPfbYYyUuq3h//fXXX13Dhw837cHHkpKSDtqeFe0n3377rWvUqFGmn7PPsr24zuzLjz/+eJFjaHWoaDsXb4sNGza43nzzTVfv3r3NMYfbf9lll5XaT9inzjjjDFfz5s09/aRv376uBx54wJWQkFDkteyX1udwn1q4rmwzPs7fHu4jC38nrPfwOF7afi5te9avX+965ZVXXD179jzk9mRkZLjuuusu0+f52m7durlee+010yZl+Z5aiv/+lXSx1rn4MYDfrSeffNLVuXNn055s11tvvdWVnZ1d4md99913rlNOOcXVpEkT009jYmJcxx57rOvDDz90OZ1OV1n9+++/LofD4VkP9uO///77gNdx/d544w1zHLcUPw7OnTvXNWzYMPP7UN2/v2X9rSf26x49eph926JFC9Ou/IzS+lJFj0EiIlL3KGArIiLVzju4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pM42H2gljRkzxo5smwxbEzA2k5+ZerkAAABAk2JKfx16qDRliqySEpVNnKTMC09zulUAAABoagFbM1HXhAkTtOOOO2qfffap3b7NNttoyJAhW9QYUxLhfzF1Ix566CH7AQAAADRp55yjilenqKREKrvzGQXPPFG+NL/TrQIAAICDNrsIgwmYXnnllXbtWAB1M3PNTH236jt7CQAAmrFtttEvHQ5QNCqllK/TvLvfdLpFAAAAcJi7rpOOLV68uP5bAzQT93xxj26YdoO9BAAAzVurkf8/2Zj72acUr4452h4AAAA0wYDtbbfdpvHjx+uDDz6o/xYBAAAAzUjbA7or1HNP+3lqaJXm3T/F6SYBAACgqU069uCDDyo3N9ee8Ktz5872I/i7GW1dLpfeeOON+monkFSO7X6sKqOVSvWlOt0UAADQCOSOGKTE2Z/bz60nnlRi2BFye+uUWwEAAIDmGLCdMWOGHZAtKChQPB7X/Pnz/3CM2Q/grwO2AAAAG3Q4ord+7LqLsud/q7SipZo/7gN1u+QQOggAAKAZqlPAlvq1AAAAQP3KumygdPG39vPI+CdkXXiQXB6ybAEAAJobPgECAAAAjUDHE3ZTaUEv+3nG6vla8NRnTjcJAAAATSlga0ohvPjiizr//PN13HHHaebMmfb2kpISTZo0SWvWrKnPdgIAAABJzeV2KTh4YO161YOPS5blaJsAAADQRAK2oVBIe+21l/r3768XXnhBb775ptauXWvvS09P16WXXqr777+/vtsKJI3B/x6s0yadZi8BAAA26HLm3ipr202padJ28VnSV1/ROQAAAM1MnQK2I0eO1KxZs/Tuu+9q4cKFsn5z5d/j8eiEE07Qv//97/psJ5BUyiJlKq0utZcAAAC/zbLtcecAtWwh+X2SHn+czgEAAGhm6hSwnTx5sgYPHqyDDz5YLpfrD/u7devGxGTA32iV1kpt0tvYSwAAgN/yHHyA1LFjzcp330k//EAHAQAANCPeuvyQqVPbuXPnv9wfjUYVi8W2pF1AUrvz4DudbgIAAGis3G5pwADphhvsVevxJ+Qa+4DTrQIAAEBjzrDt0qWLvjNX+//Ce++9p549e25JuwAAAIDm69BDlWjTVuXl0srXPtfKD352ukUAAABozAHbQYMG6YknntBLL71UW7/WlEaorq7WNddco6lTp+r888+v77YCAAAAzYPXq7l7nK2iIikWlQpHP+l0iwAAANCYSyIMGTLEnnTs1FNPVXZ2tr2tf//+KioqskshmGDtwIED67utAAAAQLPRdciRWvjYo0opW6ucHz7Wms8XqPWeXZxuFgAAABpjwNZk0z766KM666yz9Morr2j+/PlKJBJ2qYSTTjpJ++yzT/23FEgiL8x8QRXRCqX50nTqDqc63RwAANAI+dL8ipxyhlIevddeX3nbk2r9zq1ONwsAAACNMWC7wd57720/AGyedxe8q6KqIuUF8wjYAgCAv9RtxHFa8twTClSGlPP1e1r3/flqsVMHegwAACCJbVHAdv369frggw+0ePFie71z58464IADlJeXV1/tAwAAAJqtQHZQ4X6nKfDsQ3JZCS27daJavHad080CAABAYwzY3njjjRo9erQ90dhv+f1+jRgxQjfffHN9tA9IStfuc61iiZi87i26ZgIAAJqBba8+USteeUq+6nJlf/a2imefq5we+U43CwAAAA3EXZcfuuWWW+yA7EEHHaQpU6ZowYIF9uPf//63ve22226zjwHw57rmdlX3Ft3tJQAAwN8JtkxXxVGn1Hx4T8S15Jan6TAAAIAkVqeA7bhx43TUUUfprbfe0qGHHmqXQjCPvn376u2339bhhx+uRx55pP5bCwAAADRDXa87VTFf0H6e+dFklS0ucrpJAAAAaEwB25KSEjs4+1dMwLasrGxL2gUAAADgV2lts1Te9wTJJWUGI/K8+Cx9AwAAkKTqFLDda6+99N///vcv95t95hgAf25xaLEWrF9gLwEAADZFl+tPU9tOfrXIk1LfedVkUdBxAAAASajOJRG++OILXXbZZZo/f74SiYT9MM+HDh2qL7/80j4GwJ+7cdqNGvruUHsJAACwKdI7tZDvhGNrVqqqpBdeoOMAAACSUJ2mqO/du7cdoH3ggQfsh9tdE/c124xAIGAf81sul8supQAAAACgjs48U3rtNSkel156STr9dCk9ne4EAABo7gHb448/3g7AAqibAzsfqPJIudL9fMECAACbIT9fOuIIJd54UxUry7TqtlfUbdQ5dCEAAEBzD9hOnDix/lsCNCNn9DnD6SYAAIAmqvrUs1X4yNtKxBLS888pMvIU+bOCTjcLAAAATtawBQAAAOCMwLYFKtr54JrnlSHNG/06LwUAAEBzz7DdYPr0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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "✓ Comparison plot created successfully!\n", "\n", "Key observation:\n", " - The original time series (blue dashed line) shows the initial values\n", " - The updated time series (red solid line) shows the corrected value at hour 12\n", " - The green dotted line marks the point where the update was made\n" ] } ], "source": [ "# Read current version (default behavior - only is_current=true)\n", "df_current = td.read(\n", " series_id=series_id,\n", " start_valid=base_time,\n", " end_valid=base_time + timedelta(hours=24),\n", " all_versions=False # Only current versions\n", ")\n", "\n", "# Create a DataFrame with original values for comparison (from our initial read)\n", "df_original_plot = df_read.copy()\n", "\n", "# Plot both versions\n", "plt.figure(figsize=(14, 7))\n", "\n", "# Plot original time series\n", "plt.plot(df_original_plot.index, df_original_plot['temperature'], \n", " marker='o', linewidth=2, markersize=6, \n", " label='Original Time Series', color='blue', alpha=0.6, linestyle='--')\n", "\n", "# Plot current (updated) time series\n", "plt.plot(df_current.index, df_current['temperature'], \n", " marker='s', linewidth=2, markersize=6, \n", " label='Updated Time Series (Current)', color='red', alpha=0.8)\n", "\n", "# Highlight the updated point\n", "if update_time in df_current.index:\n", " updated_value = df_current.loc[update_time, 'temperature']\n", " original_value_at_update = df_original_plot.loc[update_time, 'temperature']\n", " \n", " # Draw a vertical line at the update point\n", " plt.axvline(x=update_time, color='green', linestyle=':', linewidth=2, alpha=0.7, label='Update Point')\n", " \n", " # Annotate the change\n", " plt.annotate(\n", " f'Updated: {original_value_at_update:.2f}°C → {updated_value:.2f}°C',\n", " xy=(update_time, updated_value),\n", " xytext=(10, 20),\n", " textcoords='offset points',\n", " bbox=dict(boxstyle='round,pad=0.5', facecolor='yellow', alpha=0.7),\n", " arrowprops=dict(arrowstyle='->', connectionstyle='arc3,rad=0'),\n", " fontsize=10,\n", " fontweight='bold'\n", " )\n", "\n", "plt.xlabel('Time', fontsize=12)\n", "plt.ylabel('Temperature [°C]', fontsize=12)\n", "plt.title('Original vs Updated Time Series - Showing the Change', fontsize=14, fontweight='bold')\n", "plt.legend(loc='best', fontsize=10)\n", "plt.grid(True, alpha=0.3)\n", "plt.xticks(rotation=45)\n", "plt.tight_layout()\n", "plt.show()\n", "\n", "print(\"✓ Comparison plot created successfully!\")\n", "print(f\"\\nKey observation:\")\n", "print(f\" - The original time series (blue dashed line) shows the initial values\")\n", "print(f\" - The updated time series (red solid line) shows the corrected value at hour 2\")\n", "print(f\" - The green dotted line marks the point where the update was made\")\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Let's also create a detailed view showing just the updated time point\n", "# Read with all_versions and return_value_id to see both versions\n", "# Include tags_and_annotations to see tags and annotations\n", "df_update_point = td.read(\n", " series_id=series_id,\n", " start_valid=update_time,\n", " end_valid=update_time + timedelta(hours=1),\n", " all_versions=True,\n", " return_value_id=True,\n", " tags_and_annotations=True\n", ")\n", "\n", "print(\"Detailed view of the updated time point:\")\n", "print(\"=\" * 80)\n", "\n", "# Get current and original values\n", "df_current_at_update = td.read(\n", " series_id=series_id,\n", " start_valid=update_time,\n", " end_valid=update_time + timedelta(hours=1),\n", " all_versions=False,\n", " return_value_id=True\n", ")\n", "\n", "if update_time in df_current_at_update.index:\n", " current_row = df_current_at_update.loc[update_time]\n", " print(f\"\\nCurrent Version:\")\n", " print(f\" Valid Time: {update_time}\")\n", " print(f\" Value: {current_row['temperature']}°C\")\n", " print(f\" Value ID: {current_row['value_id']}\")\n", " \n", " # Get original value from our initial read\n", " if update_time in df_original_plot.index:\n", " original_value_at_update = df_original_plot.loc[update_time, 'temperature']\n", " print(f\"\\nOriginal Version (from initial data):\")\n", " print(f\" Valid Time: {update_time}\")\n", " print(f\" Value: {original_value_at_update}°C\")\n", " print(f\" Note: Original version is marked is_current=false in database\")\n", "\n", "print(\"\\n\" + \"=\" * 80)\n", "print(f\"\\nSummary:\")\n", "print(f\" - TimeDB maintains both versions in the database\")\n", "print(f\" - The original version is marked is_current=false\")\n", "print(f\" - The updated version is marked is_current=true\")\n", "print(f\" - Both versions are preserved for audit trail and historical analysis\")\n", "print(f\" - Using value_id makes updates simple - no need for run_id, tenant_id, etc.\")\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Part 6: Update Multiple Values and View All Versions\n", "\n", "Now let's update multiple values (including the one we already updated) and then display all versions of these values in a pandas DataFrame.\n" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Prepared update for 2025-01-01 02:00:00+00:00: 24.5 dimensionless°C → 26.5°C\n", "Prepared update for 2025-01-01 03:00:00+00:00: 24.3 dimensionless°C → 26.3°C\n", "Prepared update for 2025-01-01 04:00:00+00:00: 24.21 dimensionless°C → 26.21°C\n", "\n", "✓ Batch update completed!\n", " Updated records: 3\n", " Skipped (no-op): 0\n" ] } ], "source": [ "# Read the current time series to get value_ids for multiple updates\n", "df_current = td.read(series_id=series_id, return_value_id=True)\n", "\n", "# Define multiple time points to update (including the one we already updated at hour 2)\n", "update_times = [\n", " base_time + timedelta(hours=2), # Already updated, will update again\n", " base_time + timedelta(hours=3), # New update\n", " base_time + timedelta(hours=4), # New update\n", "]\n", "\n", "# Prepare update records for all time points\n", "updates = []\n", "for update_time in update_times:\n", " if update_time in df_current.index:\n", " value_id = df_current.loc[update_time, 'value_id']\n", " original_value = df_current.loc[update_time, 'temperature']\n", " \n", " # Create a new value (slightly different for each)\n", " new_value = float(original_value) + 2.0 # Add 2°C to each value\n", " \n", " update_record = {\n", " \"value_id\": value_id,\n", " \"value\": new_value,\n", " \"annotation\": f\"Batch correction: adjusted temperature by +2.0°C\",\n", " \"tags\": [\"batch_corrected\", \"reviewed\"],\n", " \"changed_by\": \"batch_processor@example.com\",\n", " }\n", " updates.append(update_record)\n", " print(f\"Prepared update for {update_time}: {original_value}°C → {new_value}°C\")\n", "\n", "# Execute all updates\n", "if updates:\n", " result = td.update_records(updates=updates)\n", " print(f\"\\n✓ Batch update completed!\")\n", " print(f\" Updated records: {len(result['updated'])}\")\n", " print(f\" Skipped (no-op): {len(result['skipped_no_ops'])}\")\n", "else:\n", " print(\"No updates to perform\")\n" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "All versions of the updated time points:\n", "====================================================================================================\n", "\n", "DataFrame shape: (9, 5)\n", "\n", "Columns: ['temperature', 'changed_by', 'change_time', 'tags', 'annotation']\n", "\n", "Index type: \n", "Index levels: ['valid_time', 'value_id']\n", "\n", "====================================================================================================\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
series_keytemperaturechanged_bychange_timetagsannotation
valid_timevalue_id
2025-01-01 01:00:00+00:00221.22None2025-12-31 18:02:49.216106+00:00NoneNone
2025-01-01 02:00:00+00:00322.82None2025-12-31 18:02:49.216106+00:00NoneNone
2524.5analyst@example.com2025-12-31 18:02:55.195082+00:00[corrected, reviewed]Manual correction: sensor reading was anomalous
2626.5batch_processor@example.com2025-12-31 18:05:03.277187+00:00[batch_corrected, reviewed]Batch correction: adjusted temperature by +2.0°C
2025-01-01 03:00:00+00:00424.3None2025-12-31 18:02:49.216106+00:00NoneNone
2726.3batch_processor@example.com2025-12-31 18:05:03.277187+00:00[batch_corrected, reviewed]Batch correction: adjusted temperature by +2.0°C
2025-01-01 04:00:00+00:00524.21None2025-12-31 18:02:49.216106+00:00NoneNone
2826.21batch_processor@example.com2025-12-31 18:05:03.277187+00:00[batch_corrected, reviewed]Batch correction: adjusted temperature by +2.0°C
2025-01-01 05:00:00+00:00624.71None2025-12-31 18:02:49.216106+00:00NoneNone
\n", "
" ], "text/plain": [ "series_key temperature changed_by \\\n", "valid_time value_id \n", "2025-01-01 01:00:00+00:00 2 21.22 None \n", "2025-01-01 02:00:00+00:00 3 22.82 None \n", " 25 24.5 analyst@example.com \n", " 26 26.5 batch_processor@example.com \n", "2025-01-01 03:00:00+00:00 4 24.3 None \n", " 27 26.3 batch_processor@example.com \n", "2025-01-01 04:00:00+00:00 5 24.21 None \n", " 28 26.21 batch_processor@example.com \n", "2025-01-01 05:00:00+00:00 6 24.71 None \n", "\n", "series_key change_time \\\n", "valid_time value_id \n", "2025-01-01 01:00:00+00:00 2 2025-12-31 18:02:49.216106+00:00 \n", "2025-01-01 02:00:00+00:00 3 2025-12-31 18:02:49.216106+00:00 \n", " 25 2025-12-31 18:02:55.195082+00:00 \n", " 26 2025-12-31 18:05:03.277187+00:00 \n", "2025-01-01 03:00:00+00:00 4 2025-12-31 18:02:49.216106+00:00 \n", " 27 2025-12-31 18:05:03.277187+00:00 \n", "2025-01-01 04:00:00+00:00 5 2025-12-31 18:02:49.216106+00:00 \n", " 28 2025-12-31 18:05:03.277187+00:00 \n", "2025-01-01 05:00:00+00:00 6 2025-12-31 18:02:49.216106+00:00 \n", "\n", "series_key tags \\\n", "valid_time value_id \n", "2025-01-01 01:00:00+00:00 2 None \n", "2025-01-01 02:00:00+00:00 3 None \n", " 25 [corrected, reviewed] \n", " 26 [batch_corrected, reviewed] \n", "2025-01-01 03:00:00+00:00 4 None \n", " 27 [batch_corrected, reviewed] \n", "2025-01-01 04:00:00+00:00 5 None \n", " 28 [batch_corrected, reviewed] \n", "2025-01-01 05:00:00+00:00 6 None \n", "\n", "series_key annotation \n", "valid_time value_id \n", "2025-01-01 01:00:00+00:00 2 None \n", "2025-01-01 02:00:00+00:00 3 None \n", " 25 Manual correction: sensor reading was anomalous \n", " 26 Batch correction: adjusted temperature by +2.0°C \n", "2025-01-01 03:00:00+00:00 4 None \n", " 27 Batch correction: adjusted temperature by +2.0°C \n", "2025-01-01 04:00:00+00:00 5 None \n", " 28 Batch correction: adjusted temperature by +2.0°C \n", "2025-01-01 05:00:00+00:00 6 None " ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Read all versions of the updated time points\n", "# Use all_versions=True to see all historical versions, including change_time\n", "df_all_versions = td.read(\n", " series_id=series_id,\n", " start_valid=base_time + timedelta(hours=1), # Start from hour 1\n", " end_valid=base_time + timedelta(hours=6), # End at hour 6 to show the updated values\n", " all_versions=True,\n", " return_value_id=True,\n", " tags_and_annotations=True\n", ")\n", "\n", "print(\"All versions of the updated time points:\")\n", "print(\"=\" * 100)\n", "print(f\"\\nDataFrame shape: {df_all_versions.shape}\")\n", "print(f\"\\nColumns: {list(df_all_versions.columns)}\")\n", "print(f\"\\nIndex type: {type(df_all_versions.index)}\")\n", "if isinstance(df_all_versions.index, pd.MultiIndex):\n", " print(f\"Index levels: {df_all_versions.index.names}\")\n", "print(\"\\n\" + \"=\" * 100)\n", "\n", "# Display the DataFrame\n", "df_all_versions\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Summary\n", "\n", "This notebook demonstrated:\n", "\n", "1. **Creating and inserting a time series**: Using `td.insert_batch()` to create and store initial time series data\n", "\n", "2. **Reading and visualizing time series**: Using `td.read()` with `return_value_id=True` to retrieve data and get value_ids for later updates\n", "\n", "3. **Updating time series**: Using `td.update_records()` with dictionary inputs to manually change:\n", " - **Values**: Correcting erroneous data points\n", " - **Tags**: Adding quality flags (e.g., \"reviewed\", \"corrected\")\n", " - **Annotations**: Adding explanatory notes about the changes\n", "\n", "4. **Reading all versions**: Using `all_versions=True` flag to retrieve both current and historical versions of the data, including:\n", " - `changed_by`: Who made the change\n", " - `change_time`: When the change was made\n", " - `tags` and `annotation`: When `tags_and_annotations=True`\n", "\n", "5. **Visualizing changes**: Plotting original vs updated versions to see the differences\n", "\n", "6. **Batch updates and version history**: Updating multiple values and viewing complete version history with all metadata columns\n", "\n", "**Key Takeaways:**\n", "- TimeDB maintains a complete version history of all changes\n", "- Each update creates a new version while preserving the old version\n", "- The `all_versions=True` flag allows you to access the full audit trail with `changed_by` and `change_time` columns\n", "- The `tags_and_annotations=True` flag includes tags and annotations as DataFrame columns\n", "- When `all_versions=True` and `return_value_id=True`, the DataFrame uses a MultiIndex `(valid_time, value_id)` to preserve multiple versions\n", "- Updates can modify values, annotations, and tags independently or together\n", "- The `is_current` flag indicates which version is the active one\n", "- All versions are preserved for compliance, auditing, and historical analysis\n", "- Using `value_id` makes updates simple - no need for run_id, tenant_id, etc.\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [] } ], "metadata": { "kernelspec": { "display_name": ".venv", "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.14.2" } }, "nbformat": 4, "nbformat_minor": 2 }