added Screenshots

added Literatur
changed Daten hinzufügen
This commit is contained in:
Henrik Mertens 2022-05-30 16:44:30 +02:00
parent 0f36c31593
commit 5d517695e3
13 changed files with 124 additions and 30 deletions

Binary file not shown.

View file

@ -5,14 +5,76 @@
\anhangsverzeichnis \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: %Gespräch mit Werner Müller am 01.01.2013 zum Thema XXX:
\begin{compactitem} %\begin{compactitem}
\item Über das gute Wetter gesprochen % \item Über das gute Wetter gesprochen
\item Die Regenwahrscheinlichkeit liegt immer bei ca. 3\% % \item Die Regenwahrscheinlichkeit liegt immer bei ca. 3\%
\item Das Unternehmen ist total super % \item Das Unternehmen ist total super
\item Hier könnte eine wichtige Gesprächsnotiz stehen % \item Hier könnte eine wichtige Gesprächsnotiz stehen
\end{compactitem} %\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}

View file

@ -12,7 +12,6 @@ Dazu werden die Wetterdaten vom \gls{DWD} Importiert und ausgewertet.
\subsection{Aufbau und Vorgehensweise} \subsection{Aufbau und Vorgehensweise}
Im ersten Teil dieser Arbeit werden die Grundlagen von \gls{TSDB} erklärt und besonderheiten beschreiben. 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 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 letzen Kapitel werden die Inhalte dieser Arbeit zusammengefasst.

View file

@ -61,7 +61,7 @@ auf Platz 29.\footnote{\cite[vgl.][]{dbranking}}
\centering \centering
\begin{minipage}[t]{0.9\textwidth} % Breite, z.B. 1\textwidth \begin{minipage}[t]{0.9\textwidth} % Breite, z.B. 1\textwidth
\caption{DB-Engines Ranking} % Überschrift \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 \source{https://db-engines.com/de/ranking?msclkid=4f2a29e5d08811ec95ccd74f8f5146ab} % Quelle
\label{fig:db-ranking} \label{fig:db-ranking}
\end{minipage} \end{minipage}

View file

@ -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 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 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 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. 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}}
%Quelle selbst im Webinterface ausprobiert.
Daten werden immer nach dem InfluxDB Line Protokoll formatiert an die Datenbank gesendet. Das Protokoll ist wie in Listing~\ref{list:lineproto} 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 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 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 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 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. 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/ %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{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 measurementName,tagKey=tagValue fieldKey="fieldValue" 1465839830100400200
--------------- --------------- --------------------- ------------------- --------------- --------------- --------------------- -------------------
| | | | | | | |
@ -40,8 +39,22 @@ measurementName,tagKey=tagValue fieldKey="fieldValue" 1465839830100400200
\end{lstlisting} \end{lstlisting}
\end{figure} \end{figure}
%Quelle https://docs.influxdata.com/influxdb/v2.2/reference/syntax/line-protocol/ %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}} \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{lstlisting}
\end{figure} \end{figure}
%Eventuell kürzen wenn zu viele Seiten
In der CSV Datei gibt es 9 Felder. 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 TD\_10 & relative Luftfeuchtigkeit auf 2m höhe \\ \hline
eor & END OF RECORD kann ignriert werden. eor & END OF RECORD kann ignriert werden.
\end{tabular} \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. 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 Danach folgt das Feld Mess\_Datum Formatiert nach dem
\subsubsection{{Wetterdaten abrufen}} \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. 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. 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, 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. 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}}

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 170 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 118 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 KiB

View file

@ -49,6 +49,33 @@ year = {2022},
keywords = {web} 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, @misc{InfluxDataSQL,
author = {Influxdata}, author = {Influxdata},

Binary file not shown.