diff --git a/arbeit/Thesis.pdf b/arbeit/Thesis.pdf index d19f668..c26f9fb 100644 Binary files a/arbeit/Thesis.pdf and b/arbeit/Thesis.pdf differ diff --git a/arbeit/chapter/Anhang.tex b/arbeit/chapter/Anhang.tex index 064007b..5100710 100644 --- a/arbeit/chapter/Anhang.tex +++ b/arbeit/chapter/Anhang.tex @@ -5,14 +5,76 @@ \anhangsverzeichnis -\anhang{Gesprächsnotizen} +%\anhang{Gesprächsnotizen} -\subanhang{Gespräch mit Werner Müller} +%\subanhang{Gespräch mit Werner Müller} -Gespräch mit Werner Müller am 01.01.2013 zum Thema XXX: -\begin{compactitem} - \item Über das gute Wetter gesprochen - \item Die Regenwahrscheinlichkeit liegt immer bei ca. 3\% - \item Das Unternehmen ist total super - \item Hier könnte eine wichtige Gesprächsnotiz stehen -\end{compactitem} +%Gespräch mit Werner Müller am 01.01.2013 zum Thema XXX: +%\begin{compactitem} +% \item Über das gute Wetter gesprochen +% \item Die Regenwahrscheinlichkeit liegt immer bei ca. 3\% +% \item Das Unternehmen ist total super +% \item Hier könnte eine wichtige Gesprächsnotiz stehen +%\end{compactitem} + +\anhang{InfluxDB Webinterface Screenshot} + +\begin{figure}[hbt] +\centering +\begin{minipage}[t]{0.9\textwidth} % Breite, z.B. 1\textwidth +\caption{InfluxDB Dashboard} % Überschrift +\includegraphics[width=1\textwidth]{img/InfluxDB-Dashboard}% Pfad +\source{Eigner Screenshot InfluxDB Webinterface} % Quelle\label{fig:dashboard} +\label{fig:dashboard} +\end{minipage} +\end{figure} + +\begin{figure}[hbt] +\centering +\begin{minipage}[t]{0.9\textwidth} % Breite, z.B. 1\textwidth +\caption{InfluxDB Load Data Source} % Überschrift +\includegraphics[width=1\textwidth]{img/InfluxD-LoadData-Sources.PNG} % Pfad +\source{Eigner Screenshot InfluxDB Webinterface} % Quelle +\label{fig:load-data-source} +\end{minipage} +\end{figure} + +\begin{figure}[hbt] +\centering +\begin{minipage}[t]{0.9\textwidth} % Breite, z.B. 1\textwidth +\caption{InfluxDB Load Data Bucket} % Überschrift +\includegraphics[width=1\textwidth]{img/InfluxD-LoadData-Bucket.PNG} % Pfad +\source{Eigner Screenshot InfluxDB Webinterface} % Quelle +\label{fig:load-data-bucket} +\end{minipage} +\end{figure} + +\begin{figure}[hbt] +\centering +\begin{minipage}[t]{0.9\textwidth} % Breite, z.B. 1\textwidth +\caption{InfluxDB Load Data Bucket hinzufügen} % Überschrift +\includegraphics[width=1\textwidth]{img/InfluxD-LoadData-AddBucket.PNG} % Pfad +\source{Eigner Screenshot InfluxDB Webinterface} % Quelle +\label{fig:load-data-add-bucket} +\end{minipage} +\end{figure} + +\begin{figure}[hbt] +\centering +\begin{minipage}[t]{0.9\textwidth} % Breite, z.B. 1\textwidth +\caption{InfluxDB Load Data API Tokens} % Überschrift +\includegraphics[width=1\textwidth]{img/InfluxD-LoadData-API-Key.PNG} % Pfad +\source{Eigner Screenshot InfluxDB Webinterface} % Quelle +\label{fig:load-data-api-token} +\end{minipage} +\end{figure} + +\begin{figure}[hbt] +\centering +\begin{minipage}[t]{0.9\textwidth} % Breite, z.B. 1\textwidth +\caption{InfluxDB Load Data API Token hinzufügen} % Überschrift +\includegraphics[width=1\textwidth]{img/InfluxD-LoadData-API-Key-anlegen.PNG} % Pfad +\source{Eigner Screenshot InfluxDB Webinterface} % Quelle +\label{fig:load-data-add-token} +\end{minipage} +\end{figure} \ No newline at end of file diff --git a/arbeit/chapter/Einleitung.tex b/arbeit/chapter/Einleitung.tex index d2a68dc..e1b4c0d 100644 --- a/arbeit/chapter/Einleitung.tex +++ b/arbeit/chapter/Einleitung.tex @@ -12,7 +12,6 @@ Dazu werden die Wetterdaten vom \gls{DWD} Importiert und ausgewertet. \subsection{Aufbau und Vorgehensweise} Im ersten Teil dieser Arbeit werden die Grundlagen von \gls{TSDB} erklärt und besonderheiten beschreiben. -Im darauf Folgenden Kapitel wird dann exemplarisch an InfluxDB gezeigt wie mit einer \gls{TSDB} gearbeitet wird. - -Im letzen Kapitel werden die Inhalte dieser Arbeit zusammengefasst. +Im darauf Folgenden Kapitel wird dann exemplarisch an InfluxDB gezeigt wie mit einer \gls{TSDB} gearbeitet wird. Im +letzen Kapitel werden die Inhalte dieser Arbeit zusammengefasst. diff --git a/arbeit/chapter/Grundlagen.tex b/arbeit/chapter/Grundlagen.tex index a8fa8f0..73ef633 100644 --- a/arbeit/chapter/Grundlagen.tex +++ b/arbeit/chapter/Grundlagen.tex @@ -61,7 +61,7 @@ auf Platz 29.\footnote{\cite[vgl.][]{dbranking}} \centering \begin{minipage}[t]{0.9\textwidth} % Breite, z.B. 1\textwidth \caption{DB-Engines Ranking} % Überschrift -\includegraphics[width=1\textwidth]{img/DB-Engines-Ranking}\\ % Pfad +\includegraphics[width=1\textwidth]{img/DB-Engines-Ranking} % Pfad \source{https://db-engines.com/de/ranking?msclkid=4f2a29e5d08811ec95ccd74f8f5146ab} % Quelle \label{fig:db-ranking} \end{minipage} diff --git a/arbeit/chapter/InfluxDB.tex b/arbeit/chapter/InfluxDB.tex index 9dfe57e..4f6ab7f 100644 --- a/arbeit/chapter/InfluxDB.tex +++ b/arbeit/chapter/InfluxDB.tex @@ -16,23 +16,22 @@ ein \gls{HTTP} \gls{API} zur verfügung für die es in vielen Programmiersprache In InfluxDB werden Daten immer in Buckets gespeichert. Um Daten hochzuladen muss zunächst erst einmal ein Bucket angelegt werden. Dazu gibt es zwei Möglichkeiten. Die einfachste ist es über das Web \gls{UI} von InfluxDB einen neuen Bucket anzulegen. Dazu muss nach dem Login der Navigationspunkt Data und der Reiter Buckets ausgewählt werden. Hier kann dann mit dem Button Create Bucket ein neuer Bucket angelegt werden. Bein anlegen kann noch eine -Lebensdauer für die Daten ausgewählt werden nach welcher die jeweiligen Datenpunkte gelöscht werden. -%Quelle selbst im Webinterface ausprobiert. +Lebensdauer für die Daten ausgewählt werden nach welcher die jeweiligen Datenpunkte gelöscht werden.\footnote{vgl. \cref{fig:dashboard}, \cref{fig:load-data-source}, \cref{fig:load-data-bucket}, \cref{fig:load-data-add-bucket}} Daten werden immer nach dem InfluxDB Line Protokoll formatiert an die Datenbank gesendet. Das Protokoll ist wie in Listing~\ref{list:lineproto} dargestellt aufgebaut. Im ersten Teil des Line Protokolls wird der Name der Messreihe angegeben. Das kann zum Beispiel der Name des Sensors sein oder der Ort an dem der Messwert genommen wurde. Wichtig ist, dass groß und Kleinschreibung beachtete werden muss und Unterstriche nicht -genutzt werden dürfen. Sonderzeichen müssen mit einem \textbackslash maskiert werden. Nach dem Namen kommen getrennt durch ein Komma die Tags der Messung. +genutzt werden dürfen. Sonderzeichen müssen mit einem %\textbackslash +maskiert werden. Nach dem Namen kommen getrennt durch ein Komma die Tags der Messung. Tags werden indexiert und dazu genutzt um Messwerte zu durchsuchen. Tags werden als Key Value Paar angegeben. Hier sollen Metadaten wie zum Beispiel der Standort des Sensors oder der Name des Servers einzutragen werden zu dem die Datenpunkt/e gehören. Die eigentlichen Werte sind mit einem Leerzeichen von den Tags abgegrenzt und bestehen aus durch Kommas getrennte Key Value Feldern. Der letzte Wert einer Zeile ist der Unix Timestamp in Millisekunden. -In einer Datei oder anfrage kann es mehrere Zeilen mit Daten geben. +In einer Datei oder anfrage kann es mehrere Zeilen mit Daten geben.\footnote{\cite[vgl.][]{InfluxDBLineProtolkoll}} %Quelle https://docs.influxdata.com/influxdb/v2.2/reference/syntax/line-protocol/ -%https://docs.influxdata.com/influxdb/v2.2/reference/syntax/line-protocol/#naming-restrictions - +%Quelle https://docs.influxdata.com/influxdb/v2.2/reference/syntax/line-protocol/#naming-restrictions \begin{figure}[bht] -\begin{lstlisting}[caption=InfluxDB Line Protokoll, label=list:lineproto] +\begin{lstlisting}[caption=InfluxDB Line Protokoll {Quelle: \cite[][]{InfluxDBLineProtolkoll}}, label=list:lineproto] measurementName,tagKey=tagValue fieldKey="fieldValue" 1465839830100400200 --------------- --------------- --------------------- ------------------- | | | | @@ -40,8 +39,22 @@ measurementName,tagKey=tagValue fieldKey="fieldValue" 1465839830100400200 \end{lstlisting} \end{figure} %Quelle https://docs.influxdata.com/influxdb/v2.2/reference/syntax/line-protocol/ -%https://docs.influxdata.com/influxdb/v2.2/reference/syntax/line-protocol/#naming-restrictions +%Quelle https://docs.influxdata.com/influxdb/v2.2/reference/syntax/line-protocol/#naming-restrictions +Die im Line Protokoll formatierten Daten können jetzt entweder mithilfe eines Rest Requests oder des InfluxDB \gls{CLI} in die Datenbank übertragen werden. +Um diese Anfragen zu Autorisieren muss ein \gls{API} Token mitgesendet werden.\footnote{\cite[vgl.][]{InfluxDBWriteAPI}} +Um einen Token zu bekommen kann dieser entweder über das Webinterface, die \gls{CLI} oder über die \gls{API} angelget werden. Der einfachste Weg ist es +den Token über das Webinterface anzulegen. Dazu wird wie beim anlegen eines Buckets zunächst der Menüpunkt Data ausgewählt und anschließend der Reiter API +Tokens. Mit einem Klick auf Generate API Token kann dann ein API Token erstellt werden.\footnote{vgl. \cref{fig:dashboard}, \cref{fig:load-data-source}, \cref{fig:load-data-api-token}, \cref{fig:load-data-add-token}} +Dabei kann zwischen einem All-Access token und einem Read/Write token ausgewählt werden. Mit dem All Access Token kann auf alles zugegriffen werden. +Mit einem Read/Write Token kann wie in \cref{fig:load-data-add-token} zu sehen ausgewählt werden auf welchen Bucket geschrieben oder gelesen werden kann. +\footnote{\cite[vgl.][]{InfluxDBToken}} + + + + + +%https://docs.influxdata.com/influxdb/cloud/security/tokens/#all-access-token \subsection{{Daten abrufen}} @@ -103,6 +116,7 @@ STATIONS_ID;MESS_DATUM; QN;PP_10;TT_10;TM5_10;RF_10;TD_10;eor ... \end{lstlisting} \end{figure} +%Eventuell kürzen wenn zu viele Seiten In der CSV Datei gibt es 9 Felder. @@ -126,23 +140,15 @@ TM5\_10 & Lufttemperatur auf 5cm höhe \\ \hline TD\_10 & relative Luftfeuchtigkeit auf 2m höhe \\ \hline eor & END OF RECORD kann ignriert werden. - \end{tabular} - - In dieser CSV Datei sind die Daten mit einem Semikoln voneinander getrennt. Der erste Wert in der CSV Datei ist die STATIONS\_ID auf die später noch weiter eingegangen wird. Danach folgt das Feld Mess\_Datum Formatiert nach dem - - - \subsubsection{{Wetterdaten abrufen}} Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, -sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. - -\subsubsection{{Wetterdaten verarbeiten}} \ No newline at end of file +sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. \ No newline at end of file diff --git a/arbeit/img/InfluxD-LoadData-API-Key-anlegen.PNG b/arbeit/img/InfluxD-LoadData-API-Key-anlegen.PNG new file mode 100644 index 0000000..b4d7c6a Binary files /dev/null and b/arbeit/img/InfluxD-LoadData-API-Key-anlegen.PNG differ diff --git a/arbeit/img/InfluxD-LoadData-API-Key.PNG b/arbeit/img/InfluxD-LoadData-API-Key.PNG new file mode 100644 index 0000000..7faf7c9 Binary files /dev/null and b/arbeit/img/InfluxD-LoadData-API-Key.PNG differ diff --git a/arbeit/img/InfluxD-LoadData-AddBucket.PNG b/arbeit/img/InfluxD-LoadData-AddBucket.PNG new file mode 100644 index 0000000..c2667e9 Binary files /dev/null and b/arbeit/img/InfluxD-LoadData-AddBucket.PNG differ diff --git a/arbeit/img/InfluxD-LoadData-Bucket.PNG b/arbeit/img/InfluxD-LoadData-Bucket.PNG new file mode 100644 index 0000000..6bd41c8 Binary files /dev/null and b/arbeit/img/InfluxD-LoadData-Bucket.PNG differ diff --git a/arbeit/img/InfluxD-LoadData-Sources.PNG b/arbeit/img/InfluxD-LoadData-Sources.PNG new file mode 100644 index 0000000..a0138b2 Binary files /dev/null and b/arbeit/img/InfluxD-LoadData-Sources.PNG differ diff --git a/arbeit/img/InfluxDB-Dashboard.PNG b/arbeit/img/InfluxDB-Dashboard.PNG new file mode 100644 index 0000000..a157e67 Binary files /dev/null and b/arbeit/img/InfluxDB-Dashboard.PNG differ diff --git a/arbeit/library/library.bib b/arbeit/library/library.bib index e0795aa..cb61db1 100644 --- a/arbeit/library/library.bib +++ b/arbeit/library/library.bib @@ -49,6 +49,33 @@ year = {2022}, keywords = {web} } +@misc{InfluxDBToken, +author = {Influxdata}, +title = {{Manage API tokens}}, +url = {https://docs.influxdata.com/influxdb/cloud/security/tokens/#all-access-token}, +urldate = {2022-05-29}, +year = {2022}, +keywords = {web} +} + + +@misc{InfluxDBLineProtolkoll, +author = {Influxdata}, +title = {{Line protocol}}, +url = {https://docs.influxdata.com/influxdb/v2.2/reference/syntax/line-protocol/}, +urldate = {2022-05-29}, +year = {2022}, +keywords = {web} +} + +@misc{InfluxDBWriteAPI, +author = {Influxdata}, +title = {{Write data with the InfluxDB API}}, +url = {https://docs.influxdata.com/influxdb/v2.2/write-data/developer-tools/api/}, +urldate = {2022-05-29}, +year = {2022}, +keywords = {web} +} @misc{InfluxDataSQL, author = {Influxdata}, diff --git a/data/influxdb/data/influxd.bolt b/data/influxdb/data/influxd.bolt index 93b011a..f2ff016 100644 Binary files a/data/influxdb/data/influxd.bolt and b/data/influxdb/data/influxd.bolt differ