DE102019106724A1 - Effiziente Datenverarbeitung - Google Patents

Effiziente Datenverarbeitung Download PDF

Info

Publication number
DE102019106724A1
DE102019106724A1 DE102019106724.3A DE102019106724A DE102019106724A1 DE 102019106724 A1 DE102019106724 A1 DE 102019106724A1 DE 102019106724 A DE102019106724 A DE 102019106724A DE 102019106724 A1 DE102019106724 A1 DE 102019106724A1
Authority
DE
Germany
Prior art keywords
file
data
pointer table
reading
record
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102019106724.3A
Other languages
English (en)
Inventor
Anthony J. Hayzen
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Computational Systems Inc
Original Assignee
Computational Systems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Computational Systems Inc filed Critical Computational Systems Inc
Publication of DE102019106724A1 publication Critical patent/DE102019106724A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2272Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/116Details of conversion of file system types or formats
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/214Database migration support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/258Data format conversion from or to a database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/06Arrangements for sorting, selecting, merging, or comparing data on individual record carriers
    • G06F7/08Sorting, i.e. grouping record carriers in numerical or other ordered sequence according to the classification of at least some of the information they carry

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Verfahren zur Verbesserung des Betriebs eines Computers durch Übertragen von Daten aus einer SQL Datenbank in einer Speichereinheit in einen Speicher durch Kopieren der Daten aus der SQL Datenbank in eine Binärdatei in der Speichereinheit, wobei die Binärdatei eine Datenstruktur und einen Datentyp aufweist. Eine Datei mit der Datenstruktur und dem Datentyp wird in dem Speicher konfiguriert, wobei die Binärdatei in der Speichereinheit mit einem einzigen Lese-/Schreibvorgang in die Datei in dem Speicher kopiert wird.

Description

  • GEBIET
  • Diese Erfindung betrifft das Gebiet der Datenverarbeitung. Spezieller betrifft diese Erfindung die Verbesserung des Betriebs eines Computers, indem ein effizienteres Auslesen und Auffinden von Daten, insbesondere von in einer Speichereinheit eines Computers gespeicherten Datenbankdaten, zur Verfügung gestellt wird.
  • EINLEITUNG
  • Viele Systeme und Verfahren erzeugen die Sammlung und Speicherung großer Datenmengen. Mit modernen relationalen Datenbanken ist die Aufbewahrung großer Datenmengen innerhalb einer Speichereinheit wie etwa auf magnetischen oder optischen Speichermedien kein Problem. Der Zugriff auf diese Daten kann jedoch sehr zeitaufwendig sein. So kann zum Beispiel das Lesen von sechs Millionen Datensätzen aus einer Datenbank mit strukturierter Abfragesprache (Structured Query Language - SQL) auf einer Speichereinheit bis zu dreißig Sekunden dauern. Dreißig Sekunden mögen nicht allzu lang erscheinen, wenn es aber 600 Millionen Datensätze gäbe, würde es fünfzig Minuten dauern, um alle Daten zu lesen, was in vielen Anwendungen zu lang ist.
  • Wenn nur eine relativ geringe Anzahl von Datensätzen benötigt wird, ist diese Zeitspanne akzeptabel, wobei ein übliches SQL Managementsystem zum Abfragen der Datenbank verwendet werden kann. Wenn jedoch Analysen an großen Datenblöcken durchzuführen sind oder wenn unterschiedliche Konfigurationen der Daten erforderlich sind, ist die übliche Abfrage einer Datenbank viel zu langsam, wobei die oben beschriebenen Probleme immer ausgeprägter werden.
  • Als ein spezifisches Beispiel ist es üblich, Vibrationsinformationen über rotierende Geräte zusammenzutragen, so dass Probleme, die sich bei Vibrationssignaturen zeigen, schnell erkannt und gelöst werden können. Die Erfassung eines Livestreams solcher Informationen erzeugt große Datenmengen, selbst für ein einzelnes Asset. Für Unternehmen, die über viele solcher Assets verfügen, ist die Menge der produzierten Informationen jedoch extrem groß. Diese große Menge an Informationen wird dann weiter verstärkt, indem die Daten über längere Zeiträume aufbewahrt und ergänzt werden.
  • Weil diese Informationsdatenbanken so groß sind und es so lange dauert, sie abzufragen, werden viele, die dies ansonsten wünschen würden, davon abgebracht, darauf zuzugreifen, es sei denn, die Notwendigkeit ist dringend oder die zu lesende Datenmenge ist relativ klein, wobei sie deshalb nicht für alle Analysen abgefragt wird, die für sie von Nutzen sein könnten.
  • Was daher benötigt wird, sind Verbesserungen an Computersystemen, die dazu neigen, Probleme wie die oben beschriebenen zumindest teilweise zu reduzieren.
  • ZUSAMMENFASSUNG
  • Die obigen und weitere Anforderungen werden durch ein Verfahren zum Übertragen von Daten aus einer SQL Datenbank in einer Speichereinheit in einen Speicher erfüllt, indem die Daten aus der SQL Datenbank in eine Binärdatei in der Speichereinheit kopiert werden, wobei die Binärdatei eine Datenstruktur und einen Datentyp hat. Eine Datei mit der Datenstruktur und dem Datentyp wird in dem Speicher konfiguriert, wobei die Binärdatei in der Speichereinheit in die Datei im Speicher mit einem einzigen Lese-/Schreibvorgang kopiert wird.
  • In einigen Ausführungsbeispielen entsprechend diesem Aspekt der Erfindung weist die Datenstruktur Datensätze und Felder mit einer Anzahl von Datensätzen und einer Anzahl von Feldern für jeden Datensatz auf. In einigen Ausführungsbeispielen umfasst der Datentyp wenigstens eine reale, ganzzahlige oder Wortlänge.
  • Wenn die Datensätze der Datei sortiert sind, weisen einige Ausführungsbeispiele auch das einmalige Durchlesen der gesamten Datei auf, um Datensatzpositionen für Daten mit vorgegebenen Datenmerkmalen zu finden. Im Speicher wird eine Zeigertabelle erstellt, wobei die Zeigertabelle eine einzelne Datensatzposition für eine erste Instanz von jedem der vorgegebenen Datenmerkmale in der Datei aufweist. Die Datei wird beginnend an der Datensatzposition in der Zeigertabelle gelesen, die einem gewünschten der vorgegebenen Datenmerkmale entspricht.
  • Wenn die Datensätze der Datei unsortiert sind, weisen einige Ausführungsbeispiele auch das einmalige Durchlesen der gesamten Datei auf, um Datensatzpositionen für Daten mit vorgegebenen Datenmerkmalen zu finden. Im Speicher wird eine erste Zeigertabelle erstellt, wobei die erste Zeigertabelle eine einzelne Datensatzposition für eine erste Instanz von jedem der vorgegebenen Datenmerkmale in der Datei aufweist. Es wird eine zweite Zeigertabelle im Speicher erstellt, wobei die zweite Zeigertabelle in Verbindung mit der Datensatzposition für die erste Instanz von jedem der vorgegebenen Datenmerkmale eine nachfolgende Datensatzposition für eine nächste nachfolgende Instanz von jedem der vorgegebenen Datenmerkmale in der Datei aufweist. Die Datei wird beginnend an der Datensatzposition in der ersten Zeigertabelle gelesen, die einem gewünschten der vorgegebenen Datenmerkmale entspricht, und wenn die Daten in der Datensatzposition nicht die gewünschten Daten enthalten, wird die Datei iterativ an der Datensatzposition gelesen, die der nächsten nachfolgenden Instanz in der zweiten Zeigertabelle zugeordnet ist, bis die gewünschten Daten gefunden sind.
  • Einige Ausführungsbeispiele zum Korrelieren von Variablen in der Datei weisen die Schritte zum ersten Lesen der Datei auf, um Durchschnittswerte x und y für jedes zu korrelierende x und y Variablenpaar zu bestimmen. Die Datei wird ein zweites Mal gelesen, um für jede xi und yi Variable die folgenden drei Werte zu bestimmen, wobei i die Anzahl von Variablen darstellt, i ( x i x ¯ ) ( y i y ¯ )
    Figure DE102019106724A1_0001
    i ( x i x ¯ ) 2
    Figure DE102019106724A1_0002
    und i ( y i y ¯ ) 2
    Figure DE102019106724A1_0003
  • Jeder der drei Werte wird in einer Zelle einer Anordnung gespeichert, die für das Variablenpaar xi und yi bestimmt ist. Mittels der drei Werte in der Anordnung für jede Kombination von xi und yi Variablen wird der Korrelationswert r nach der Formel r = i ( x i x ¯ ) ( y i y ¯ ) i ( y i y ¯ ) 2 i ( y i y ¯ ) 2
    Figure DE102019106724A1_0004
    berechnet.
  • Entsprechend einem weiteren Aspekt der Erfindung wird ein Verfahren zum Lesen einer Datei von Datensätzen in einem Speicher beschrieben, indem die gesamte Datei nur einmal durchgelesen wird, um Datensatzpositionen für Daten mit vorgegebenen Datenmerkmalen zu finden. Im Speicher wird eine Zeigertabelle erstellt, wobei die Zeigertabelle eine einzelne Datensatzposition für eine erste Instanz von jedem der vorgegebenen Datenmerkmale in der Datei aufweist. Die Datei wird beginnend an der Datensatzposition in der Zeigertabelle gelesen, die einem gewünschten der vorgegebenen Datenmerkmale entspricht.
  • In einigen Ausführungsbeispielen weist jeder Datensatz in der Datei eine Vielzahl von Feldern auf, wobei alle Felder entsprechend einer vorgegebenen Reihenfolge sortiert sind. In einigen Ausführungsbeispielen weist jeder Datensatz der Datei eine Vielzahl von Feldern auf, alle Felder werden entsprechend einer vorgegebenen Reihenfolge sortiert und die Zeigertabelle weist für jedes der Felder eine einzelne Datensatzposition auf, die einer ersten Instanz für jedes der vorgegebenen Datenmerkmale für jedes Feld zugeordnet ist.
  • Entsprechend einem weiteren Aspekt der vorliegenden Erfindung wird ein Verfahren zum Lesen einer Datei unsortierter Datensätze beschrieben, um gewünschte Daten aufzufinden, indem die gesamte Datei nur einmal durchgelesen wird, um Datensatzpositionen für Daten mit vorgegebenen Datenmerkmalen zu finden. Im Speicher wird eine erste Zeigertabelle erstellt, wobei die erste Zeigertabelle eine einzelne Datensatzposition für eine erste Instanz von jedem der vorgegebenen Datenmerkmale in der Datei aufweist. Es wird eine zweite Zeigertabelle im Speicher erstellt, wobei die zweite Zeigertabelle in Verbindung mit der Datensatzposition für die erste Instanz von jedem der vorgegebenen Datenmerkmale eine nachfolgende Datensatzposition für eine nächste nachfolgende Instanz von jedem der vorgegebenen Datenmerkmale in der Datei aufweist. Die Datei wird beginnend an der Datensatzposition in der Zeigertabelle gelesen, die einem gewünschten der vorgegebenen Datenmerkmale entspricht, und wenn die Daten in der Datensatzposition nicht die gewünschten Daten enthalten, wird die Datei iterativ an der Datensatzposition gelesen, die der nächsten nachfolgenden Instanz in der zweiten Zeigertabelle zugeordnet ist, bis die gewünschten Daten gefunden sind.
  • In einigen Ausführungsbeispielen entsprechend diesem Aspekt der vorliegenden Erfindung werden eine erste Zeigertabelle und eine zweite Zeigertabelle für jedes Feld in der Datei erstellt.
  • Entsprechend einem noch weiteren Aspekt der vorliegenden Erfindung wird ein Verfahren zum Korrelieren von Variablen in einer Datei durch erstmaliges Lesen der Datei beschrieben, um die Durchschnittswerte x und y für jedes zu korrelierende x und y Variablenpaar zu bestimmen. Die Datei wird ein zweites Mal gelesen, um für jede xi und yi Variable die folgenden drei Werte zu bestimmen, wobei i die Anzahl der Variablen darstellt, i ( x i x ¯ ) ( y i y ¯ )
    Figure DE102019106724A1_0005
    i ( x i x ¯ ) 2
    Figure DE102019106724A1_0006
    und i ( y i y ¯ ) 2
    Figure DE102019106724A1_0007
  • Jeder der drei Werte wird in einer Zelle einer Anordnung gespeichert, die für das Variablenpaar xi und yi bestimmt ist. Mittels der drei Werte in der Anordnung für jede Kombination von xi und yi Variablen wird der Korrelationswert r entsprechend der Formel r = i ( x i x ¯ ) ( y i y ¯ ) i ( y i y ¯ ) 2 i ( y i y ¯ ) 2
    Figure DE102019106724A1_0008
    berechnet.
  • In einigen Ausführungsbeispielen wird der Korrelationswert r nur für eindeutige Kombinationen der Variablen xi und yi berechnet.
  • Figurenliste
  • Weitere Vorteile der Erfindung werden durch Bezug auf die ausführliche Beschreibung deutlich, wenn sie in Verbindung mit den Figuren betrachtet wird, die nicht maßstabsgerecht sind, um die Details deutlicher zu zeigen, wobei gleiche Bezugsnummern gleiche Elemente in allen unterschiedlichen Ansichten anzeigen und wobei:
    • 1 eine schematische Darstellung eines Computersystems zum Sammeln und Analysieren von Vibrationsdaten von einer Maschine ist.
    • 2 eine grafische Veranschaulichung eines Verfahrens zum Übertragen von Daten von einer Datenbank in einer Speichereinheit zu einer Datei in einem Computerspeicher in einem einzigen Lese-/Schreibschritt ist.
    • 3 ein Ablaufdiagramm für das in 2 veranschaulichte Verfahren ist.
    • 4 eine grafische Veranschaulichung eines Verfahrens zum Auswählen von Daten für die Analyse entsprechend einem zweiten Ausführungsbeispiel der Offenbarung ist.
    • 5 ein Ablaufdiagramm für das in 4 veranschaulichte Verfahren ist.
    • 6 eine grafische Veranschaulichung eines Verfahrens zum Auswählen von Daten für die Analyse entsprechend einem dritten Ausführungsbeispiel der Offenbarung ist.
    • 7 ein Ablaufdiagramm für das in 6 veranschaulichte Verfahren ist.
    • 8 eine zweidimensionale Anordnung zum Berechnen von Korrelationskoeffizienten für Variablenpaare in einer Datei entsprechend einem Ausführungsbeispiel der Offenbarung ist.
  • BESCHREIBUNG
  • VORRICHTUNG
  • 1 veranschaulicht schematisch ein Computersystem 100 entsprechend einem Ausführungsbeispiel der vorliegenden Erfindung. In einigen Ausführungsbeispielen ist das Computersystem 100 ein eingebettetes Computergerät wie ein Raspberry Pi, ein handgeführter Computer wie ein Telefon oder PDA, ein tragbarer Computer wie ein Tablet oder Laptop, ein Tischcomputer wie ein PC oder ein Großrechner. In dem dargestellten Ausführungsbeispiel empfängt das Computersystem 100 Daten von einem Sensor 112, wie es zum Beispiel das Lesen von Vibrationsdaten von einem Asset 110 wie etwa einer Maschine mit einem rotierenden Element sein kann. In einem Ausführungsbeispiel bilden das Computersystem 100 und der Sensor 112 einen handgeführten Vibrationsanalysator. In weiteren Ausführungsbeispielen bilden das Computersystem 100 und der Sensor 112 einen entfernten Vibrationsanalysator, der auf dem Asset 110 montiert ist. Weitere Ausführungsbeispielen sind ebenfalls eingeschlossen.
  • In einigen Ausführungsbeispielen weist das Computersystem 100 einen Analog-DigitalWandler (Analog to Digital Converter - ADC) 114 zum Empfangen von analogen Sensordaten und Umwandeln in digitale Daten, einen Prozessor 116 zum Durchführen von Operationen an den Daten und zum Steuern der anderen Elemente des Computersystems 100, eine Speichervorrichtung 118 zum Speichern von Daten (wie etwa auf magnetischen oder optischen Medien), einen Speicher 120 zum Speichern von Anweisungen für den Betrieb des Computersystems 100 und zum temporären Speichern von Daten, wenn an den Daten durch den Prozessor 116 (wie etwa DRAM) Operationen durchzuführen sind, und eine Schnittstelle 112 zum Darstellen von visuellen oder akustischen Informationen oder zum Kommunizieren mit anderen Systemen auf.
  • Wie er hier verwendet wird, bezieht sich der Begriff Datenbank auf eine Datenstruktur, die auf der Datenspeichereinheit 118 gespeichert ist und in einem Format vorliegt, das zum Lesen und Schreiben durch das Datenbankverwaltungsprogramm wie einem SQL Datenbankprogramm konfiguriert ist. Der Begriff Binärdatei bezieht sich auf eine Datei, die auf der Datenspeichereinheit 118 gespeichert ist und in einer flachen Dateikonfiguration von Datensätzen und Feldern vorliegt. Der Begriff Datei bezieht sich auf Daten, die auf dem Speicher 120 gespeichert sind und in einer Flatfile-Konfiguration von Datensätzen und Feldern vorliegen.
  • Um die oben beschriebenen langwierigen Lesezeiten für auf der Speichereinheit 118 angeordnete Datenbanken zu überwinden, können alle oder ein Teil der Daten in den Speicher 118 geschrieben und optional als strukturierte Binärdatei im Speicher 118 für eine schnelle Übertragung in den Speicher 120 gewartet werden. In einem Ausführungsbeispiel war die Zeit, die benötigt wurde, um die strukturierte Binärdatei vom Speicher 118 in den Speicher 120 zu kopieren, 2.000 Mal schneller als die Verwendung eines SQL Verwaltungsprogramms, um eine SQL Datenbank auf der Speichereinheit 118 in den Speicher 120 einzulesen. Wenn zum Beispiel das Lesen der SQL Datenbank dreißig Sekunden dauert, um die Daten zu kopieren, dauert das Kopieren der Daten aus der Binärdatei der gleichen Daten auf der Speichereinheit 118 nur fünfzehn Millisekunden zum Lesen. Dies wird mit einem Lese-/Schreibvorgang als Einzelblock von der Binärdatei in die Datei erreicht. Wenn es damit 100 mal mehr Daten als diese gäbe, würde der Ansatz der Binärdatei nur 1,5 Sekunden dauern, was weitaus praktischer wäre als die fünfzig Minuten, die zum Lesen der SQL Datenbank benötigt werden.
  • Als Teil dieses Prozesses werden die Datei im Speicher 120 und die Binärdatei in der Speichereinheit 118 beide entsprechend den Eigenschaften der Daten konfiguriert, die aus der SQL Datenbank extrahiert werden. Es wird eingeschätzt, dass in einigen Ausführungsbeispielen alle Daten in der SQL Datenbank zu extrahieren sind, wobei in anderen Ausführungsbeispielen nur ein Teil der Daten in der SQL Datenbank zu extrahieren ist. Wenn die zu extrahierende Datenmenge ansteigt, werden jedoch die Vorteile der Ausführungsbeispiele der vorliegenden Erfindung vollständiger realisiert.
  • DATENÜBERTRAGUNG
  • 2 veranschaulicht grafisch ein Verfahren zum Kopieren der Daten in der SQL Datenbank 200 auf der Speichereinheit 118 in die Binärdatei 210 auf der Speichereinheit 118 und dann in die Datei 220 im Speicher 120. In diesem Beispiel besteht die Datenbank 200 auf der Speichereinheit 118 aus einer Anzahl N von Datensätzen 204, die eine Anzahl M von Feldern 202 aufweisen, in denen verschiedene Variablen aufgezeichnet sind. Es wird eingeschätzt, dass die SQL Datenbank 200 eine beliebige Anzahl von Datensätzen 204 und Feldern 202 aufweisen kann und dass die in 2 dargestellten Zahlen Mund N nur repräsentativ sind. Die Daten, wie sie in der SQL Datenbank 200 von 2 dargestellt werden, sind als eine Flatfile formatiert. Diese Darstellung wird jedoch aus Gründen der Deutlichkeit in der Beschreibung verwendet, wobei eine solche Flatfile-Formatierung typischerweise nicht in einer SQL Datenbank 200 verwendet würde, sondern eher würde eine relationale Formatierung verwendet werden.
  • Zusätzlich zu den eigentlichen Daten, die in der SQL Datenbank 200 enthalten sind, gibt es auch Metadaten. Diese Metadaten weisen zum Beispiel die Anzahl N von Datensätzen 204, die Anzahl M von Feldern 202 in jedem Datensatz 204, den Datentyp in jedem Feld 202 und die Länge von jedem Feld 202 auf. Der Datentyp weist Bezeichnungen wie ganzzahlig, klein ganzzahlig, real und so weiter auf. Die Länge von jedem Feld 202 wird in den meisten Ausführungsbeispielen in Datenbytes gemessen. Wie hier verwendet, bezieht sich der Datentyp auf solche Metadaten wie die Anzahl N der Datensätze 204 und die Anzahl M der Felder 202 in jedem Datensatz 204. Wie hier verwendet, bezieht sich der Datentyp auf solche Metadaten wie den Datentyp in jedem Feld 202 und die Länge von jedem Feld 202.
  • Die Metadaten der SQL Datenbank 200 werden verwendet, um sowohl die Binärdatei 210 auf der Speichereinheit 118 als auch die Datei 220 im Speicher 120 aufzubauen. Dies beinhaltet Konfigurationsprozesse wie die Darstellung eines Blocks im Speicher 120 in der angemessenen Größe, so dass, wenn die Daten schließlich in die Datei 220 eingelesen werden, alles in einem kontinuierlichen Lese-/Schreibvorgang erfolgen kann. In einigen Ausführungsbeispielen wird zuerst die Struktur der Binärdatei 210 aufgebaut, wobei in anderen Ausführungsbeispielen zuerst die Struktur der Datei 220 aufgebaut wird.
  • Die Daten werden dann von der SQL Datenbank 200 aus- und in die Binärdatei 210 eingelesen. Während dieses Prozesses wird die Struktur der in der SQL Datenbank 200 enthaltenen Daten auf die Flatfile-Struktur der Binärdatei 210 modifiziert. Dies kann eine gewisse Zeit in Anspruch nehmen, muss aber nur einmal durchgeführt werden, wobei dann die Binärdatei 210 beibehalten und auf der Speichereinheit 118 nach Wunsch sogar aktualisiert werden kann. Wenn neue Daten in die SQL Datenbank 200 eingegeben werden, können sie auch der Binärdatei 210 hinzugefügt werden.
  • Wenn die Daten aus der SQL Datenbank 200 zur Analyse in den Speicher 120 geladen werden müssen, wie es durch eine Art ereignisgesteuerten Trigger bestimmt werden kann, werden die Zahlen N und M der Datensätze 204 und der Felder 202 bestimmt, wobei eine Anordnung der erforderlichen Größe im Speicher 120 als der Ausgangspunkt für die Datei 220 erstellt wird. Mittels eines einzigen Lese-/Schreibvorgangs werden die Daten in der Binärdatei 210 direkt in die Anordnung der Datei 220 im Speicher 120 eingelesen. Da die Struktur der Daten in der Binärdatei 210 und der Datei 220 gleich sind, ist keine zusätzliche Datenkonvertierung erforderlich. Dies sorgt für eine sehr effiziente Übertragung der Daten in der Binärdatei 210 in die Datei 220 und spart eine beträchtliche Menge an Zeit bei der Datenerfassung.
  • Der Gesamtsystemfluss 300 wird in 3 gezeigt. Wie in Block 302 angegeben, wird die Datenbank 200 zunächst auf der Speichereinheit 118 erstellt, wobei die Daten in der Datenbank 200 aufgezeichnet werden, wie in Block 304 angegeben ist. In verschiedenen Ausführungsbeispielen sind die Daten Vibrationsdaten, die von einer oder mehreren unterschiedlichen Quellen wie etwa einem tragbaren Schwingungsanalysator und einem Online-Vibrationsmessgerät empfangen werden. Die Binärdatei 210 wird in der Speichereinheit 118 erstellt, wie in Block 306 angegeben ist. Zu einem gewünschten Zeitpunkt wird die Datei 220 im Speicher 120 erstellt und so erstellt, dass sie die gleichen Merkmale hat wie die Binärdatei 210, wie etwa durch Verwendung der Metadaten. Schließlich werden die Daten aus der Binärdatei 210 in die Datei 220 im Speicher 120 mit einem einzigen kontinuierlichen Lese-/Schreibvorgang kopiert, wie in Block 310 angegeben ist. Die Anzahl N von Datensätzen und die Anzahl M von Feldern in der Binärdatei 210 können ebenfalls als ein Eintrag in der Binärdatei 210 und der Datei 220 aufgezeichnet werden.
  • Auf diese Weise wird ein Verfahren zum Durchführen eines viel schnelleren Einlesens von Daten aus der Speichereinheit 118 in den Speicher 120 zur Verfügung gestellt.
  • DATENZUGRIFF I
  • Einige Datensätze können auf die eine oder andere Weise entsprechend einem oder mehreren Feldern sortiert werden, was es leichter macht, sie zu analysieren als mit der Reihenfolge, in der die Daten ursprünglich erzeugt wurden. Dieses erste Datenzugriffsverfahren bezieht sich auf solche Datensätze.
  • Entsprechend diesem Verfahren wird die Datei 220 im Speicher 120 nach einigen gewünschten Kriterien wie etwa numerisch aufsteigenden Werten der Variablen im ersten Feld 202 sortiert. Wenn zum Beispiel die Variablen im ersten Feld der Datei 220 vierstellige Ganzzahlen wären, würde der oben beschriebene Sortiervorgang dazu führen, dass alle Variablen, die mit der Nummer 1 begonnen haben, die ersten in der Datei 220 sind, dann sind alle Variablen, die mit 2 begonnen haben, die nächsten und so weiter. Ebenso würde es eine gewisse Anzahl von Variablen geben, die mit 1 beginnen, eine andere Anzahl von Variablen, die mit 2 beginnen, und so weiter.
  • Wenn es gewünscht würde, eine Analyse an den Datensätzen 204 mit Variablen im ersten Feld 202 durchzuführen, die zum Beispiel mit der Zahl 8 begannen, müsste sich ein System nach dem Stand der Technik durch die ganzen Datensätze 204 in der Datei 220 hindurch lesen, bis man auf die 8er im ersten Feld 202 trifft. Wenn es Millionen von Datensätzen 204 in der Datei 220 gäbe, könnte dies relativ gesehen eine enorme Zeitverschwendung sein, insbesondere wenn dieser Vorgang mehrfach ausgeführt werden müsste.
  • Daher wird entsprechend einem Ausführungsbeispiel entsprechend der vorliegenden Erfindung die Datei 220 einmal durchgelesen, wobei eine Indexzeigertabelle 410 erstellt wird, wie in 4 dargestellt ist. Die Zeigertabelle 410 enthält zum Beispiel ein Minimum von zwei Feldern für jeden Datensatz in der Zeigertabelle 410. Im ersten Feld 402 befinden sich die verschiedenen indizierten Werte der Variablen des ersten Feldes 202 der Datei 220, um das Beispiel von oben fortzusetzen. Damit würde dieser Teil 402 der Zeigertabelle 410 eine der Zahlen 0-9 in jedem der Datensätze enthalten. In einem Feld 404 der Zeigertabelle 410 gibt es Beschreibungen der Position der ersten Instanz in der Datei 220 des gewünschten Wertes. Dieser Positionsbeschreiber kann so etwas wie die Nummer eines Datensatzes 204 oder eine Adresse im Speicher 120 sein, unter der die erste Instanz der gewünschten Daten gespeichert ist. Die Linien von Tabelle 410 zur Datei 220 sind grafische Anzeigen für die Position der Datensätze, die die erste Instanz der gewünschten Variablen enthalten.
  • Wenn weiterführend vom obigen Beispiel Variablen, die mit der Zahl 8 beginnen, für die Analyse gewünscht werden, wird die Zeigertabelle 410 abgefragt, um die Zahl 8 in der ersten Spalte zu finden, wobei dann der Speicherort für die erste Instanz der gewünschten Variablen aus der Zeigertabelle 410 gelesen wird und dann diese Informationen verwendet werden, um ein Lesen der Datei 220 zu beginnen. Auf diese Weise wird die Zeit zum Durchlesen unerwünschter Daten eingespart.
  • In einem weiteren Ausführungsbeispiel wird die Zeigertabelle 410 ebenfalls gelesen, um den Speicherort der ersten Instanz des nächsten nachfolgenden Variablenwertes zu bestimmen, der, um das Beispiel fortzusetzen, die Zahl 9 wäre. Wenn dieser Speicherort bekannt ist, kann das Lesen der Datei 220 automatisch angehalten werden, wenn die letzten 8 Variablen gelesen wurden. Auf diese Weise kann die Kenntnis der genauen Größe des Lesevorgangs vor Beginn des Lesevorgangs einige Vorteile haben, wie etwa eine Eliminierung der Analyse der Daten, während sie ausgelesen werden, um das Anhalten des Lesevorgangs zu bestimmen, und auch das Darstellen im Voraus von einem Teil des Speichers 120 mit einer vorgegebenen Größe, in dem die gelesenen Variablen gegebenenfalls zu platzieren sind.
  • 5 stellt ein vereinfachtes Ablaufdiagramm dieses Verfahrens zur Verfügung. Der erste Schritt ist das Erstellen der Datenzugriffsstruktur 410, wie in Block 502 angegeben ist. Wie oben erläutert, kann dies mit einem einzigen Lesen der Datei 220 erreicht werden, wie in Block 504 angegeben ist. Die Datenzugriffsstruktur 410 wird dann mit den Informationen gefüllt, die aus der Datei 220 zusammengetragen wurden, wie in Block 506 angegeben ist. Danach wird die Datenzugriffsstruktur 410 verwendet, um in die Datei 220 zu gelangen, wie in Block 508 angegeben ist, wodurch die Notwendigkeit entfällt, die Datei 220 jedes Mal beginnend vom Anfang nach unten durchzulesen, wenn neue Daten aus der Datei 220 abgerufen werden sollen.
  • DATENZUGRIFF II
  • In einigen Ausführungsbeispielen können die Daten jedoch entsprechend mehreren zusammenhängenden Sequenzen mit Strukturen empfangen werden, die sich nicht sofort in den empfangenen Daten widerspiegeln. Zum Beispiel werden unterschiedliche Variablen 202 in den Datensätzen 204 empfangen, aber weder die Variablen 202 noch die Datensätze 204 spiegeln die Reihenfolge wider, in der die Daten organisiert sind, die ansonsten hier als ein Datentrend bezeichnet wird, und es könnte sinnvoll sein, verschiedene Datentrends separat zu analysieren, ohne die Reihenfolge zu zerstören, in der die Daten empfangen werden.
  • In einem solchen Ausführungsbeispiel kann den Daten ein Marker wie zum Beispiel eine Trendkennzeichnung hinzugefügt werden, um die Datentrends voneinander zu kennzeichnen. Zum Beispiel könnten alle Datensätze 204, die zum ersten Datentrend gehören, mit einer 1 gekennzeichnet sein, alle Datensätze 204 im zweiten Datentrend mit einer 2 gekennzeichnet sein und so weiter, wobei die Datentrendkennzeichnung zum Beispiel in einem Feld für neue Variablen 202 gespeichert ist. Anschließend wird die Zeigertabelle 410 mit der Datentrendkennzeichnung in Spalte 402 aufgebaut, die verwendet wird, um einen gewünschten Datentrend in der gleichen Weise wie oben beschrieben einzugeben.
  • Die Zeiger 404 in Tabelle 410 ermöglichen es einem Computer, die Daten in der Datei 220 rasch durchzugehen, und können auch verwendet werden, um eine Reihenfolge zur Verfügung zu stellen, in der die Daten verarbeitet werden sollen. Mithilfe von diesem Ansatz können Trenddaten sehr effizient und zeitnah abgerufen werden. Computerleistungstests mittels sechs Millionen Datensätzen von Vibrationstrenddaten entsprechend dem Ausführungsbeispiel der 4 und 5 erzeugten einen Anstieg der Größenordnung der Computerleistung auf einem eigenständigen Computersystem. Es könnte ein Netzwerk mit mehreren Benutzern erwartet werden, um mittels dieser Verfahren eine noch größere Leistungssteigerung zur Verfügung zu stellen.
  • DATENZUGRIFF III
  • In einigen Anwendungen kann es notwendig sein, die Daten in der Reihenfolge zu analysieren, mit der sie empfangen wurden, so dass die Daten nicht entsprechend den Ausführungsbeispielen von Datenzugriff I sortiert werden können. Das Ziel ist es, alle Instanzen eines bestimmten Variablenwertes zu finden und darauf zuzugreifen. Ein Ausführungsbeispiel besteht darin, wie in 6 dargestellt ist, die Datei 220 in der Reihenfolge zu belassen, in der die Daten wie etwa eine Zeitreihe ursprünglich erstellt wurden, die Datei 220 einmal durchzulesen und dabei die Zeigertabelle 410 wie oben angegeben zu erstellen, die im Feld 404 die erste Instanz für gegebene Variablen 202 und die zugeordnete Speicherposition im Feld 402 für jede aufweist.
  • Es wird eine zweite Zeigertabelle 610 im Speicher 120 erstellt, um eine anschließende Datensatzposition oder einen Speicherort zur Verfügung zu stellen, die einer nachfolgenden Instanz der gewünschten Variablen 602 zugeordnet sind. Dies ist in 6 als Zeigertabelle 610 dargestellt, wobei Pfeile zusätzliche Eintrittspunkte in die Datei 220 darstellen, in denen sich nachfolgende Instanzen der gewünschten Variablen 602 befinden. Damit würde es für jede der in der Datenzugriffsstruktur 410 indizierten Variablen eine eigene Tabelle 610 geben. Auf diese Weise können Daten, die dem gewünschten Variablenwert zugeordnet sind, relativ schnell in einer unsortierten Datei 220 gefunden werden, ohne dass die Datei 220 mehrfach von oben nach unten gelesen werden muss.
  • 7 stellt ein Verfahren für dieses Ausführungsbeispiel dar, bei dem ein Speicherort für die Datenzugriffsstruktur 410 erzeugt wird, wie in Block 702 angegeben ist. Außerdem wird ein Speicherort für die Zeigertabelle 610 angelegt, wie in Block 704 angegeben ist. Die Datei 220 wird ein einziges mal durchgelesen, wie in Block 706 angegeben ist, wobei die Datenzugriffsstruktur 410 und die Datenzeigertabelle 610 mit den oben beschriebenen Daten gefüllt werden, wie in Block 708 beschrieben ist. Danach wird die Datei 220 mittels der Datenzugriffsstruktur 410 und der Zeigertabelle 610 abgefragt, wie in Block 710 angegeben ist.
  • KORRELATION VON VARIABLEN
  • Das Auffinden der Korrelation, die zwischen einer Variablen 202 in einem gegebenen Satz von Datensätzen 204 und einer anderen Variablen 202 in einem gegebenen Satz von Datensätzen 204 existieren könnte, ermöglicht es einem Analytiker, zusätzliche Einblicke in das Verhalten des Systems zu gewinnen, das die Daten erstellt hat. Die Variablen 202 können Vibrationsdateneigenschaften für eine Maschine, Maschineneigenschaften oder eine Kombination aus Maschinen- und Vibrationseigenschaften für die Maschine aufweisen.
  • Mit Bezug auf 8 wird eine grafische Darstellung davon gezeigt, wie dies geschieht. Eine solche Aufgabe kann visualisiert werden, indem jede der Variablen 202 über den oberen Teil der Matrix 810 aufgelistet wird, und dann auch die gleichen Variablen 202 über die linke Seite der Matrix 810 aufgelistet werden. Die Variablen 202 über die Spalten hinweg werden als xi bezeichnet, wobei i von eins bis M variiert (die Gesamtzahl der analysierten Variablen), wobei die Variablen 202 die Zeilen entlang als yi bezeichnet werden. Das Kästchen am Schnittpunkt einer gegebenen Zeile und Spalte stellt die Korrelation zwischen den beiden Variablen 202 dar, die durch die sich schneidende Zeile und Spalte dargestellt werden.
  • Offensichtlich korreliert jede der Variablen 202 perfekt mit sich selbst, und so werden die Kästchen auf dem Diagramm, die sich am Schnittpunkt einer Zeile und Spalte befinden, die jeweils die gleiche Variable 202 darstellen (x1 und y1 zum Beispiel), einheitlich dargestellt, so dass keine Berechnung der Korrelation für diese Kreuzung vorgenommen werden muss. Des Weiteren stellen alle diese Felder auf einer Seite der Einheitsdiagonale genau die gleiche Korrelation dar wie die Felder auf der anderen Seite der Einheitslinie (die Korrelation zwischen x1 und y2 ist die gleiche wie die Korrelation zwischen x2 und y1) und sind somit Duplikate, die nicht berechnet werden müssen. Wenn es also M Variablen 202 gibt, die korreliert werden sollen, muss man nur die Berechnungen für ( ( M 2 2 ) M )
    Figure DE102019106724A1_0009
    eindeutige Variablenpaare 202 durchführen.
  • Die Korrelation r zwischen jeder eindeutigen Kombination von zwei Variablen 202 x und y wird durch Lösen der folgenden Gleichung bestimmt: r = i ( x i x ¯ ) ( y i y ¯ ) i ( y i y ¯ ) 2 i ( y i y ¯ ) 2 .
    Figure DE102019106724A1_0010
  • Diese Gleichung hat jedoch üblicherweise mehrere Durchläufe durch jeden Datensatz der Datenbank erfordert, um den Wert für ein bestimmtes Korrelationspaar zu berechnen. Daher kann die Berechnung der Korrelationskoeffizienten für eine große Anzahl von Datensätzen 204, wobei jeder Datensatz 204 eine große Anzahl von Variablen 202 hat, sehr zeitaufwendig sein. Zum Beispiel dauerte die Berechnung der Korrelationen für sechs Millionen Datensätze 204 mit je 274 Variablen 202 jeweils 1,5 Stunden, was für viele Anwendungen entschieden zu lang ist.
  • Entsprechend einem Ausführungsbeispiel können alle Korrelationskoeffizienten zwischen zwei eindeutigen Variablenpaaren 202 durch Verwendung von nur zwei Durchläufen durch die Datenbank bestimmt werden. Im ersten Durchlauf durch die Datenbank werden die Durchschnittswerte x und y für jedes zu korrelierende x und y Variablenpaar 202 bestimmt. Die Datenbank wird dann ein zweites Mal gelesen, um für jede xi und yi Variable die folgenden drei Werte zu bestimmen: i ( x i x ¯ ) ( y i y ¯ )
    Figure DE102019106724A1_0011
    i ( x i x ¯ ) 2 ,
    Figure DE102019106724A1_0012
    i ( y i y ¯ ) 2 .
    Figure DE102019106724A1_0013
  • Jeder der drei Werte für die obigen Formeln wird unabhängig voneinander im Speicher 120 in einer Anordnung gespeichert, die für jedes xi und yi Variablenpaar gemäß 8 bestimmt ist. Nachdem diese drei Teile der gesamten Korrelationsgleichung einzeln berechnet und im Speicher 120 in Verbindung mit einem gegebenen xi und yi Variablenpaar 202 gespeichert wurden, werden die drei Teile für jede Kombination von xi und yi Variablen 202 kombiniert, um den Korrelationswert r entsprechend der unten angegebenen Standardformel zu erzeugen, ohne dass weitere Durchläufe durch die Datensätze erfolgen: r = i ( x i x ¯ ) ( y i y ¯ ) i ( y i y ¯ ) 2 i ( y i y ¯ ) 2 .
    Figure DE102019106724A1_0014
  • In einem Testfall von 274 Variablen 202 (Felder) und sechs Millionen Datenpunkten (Datensätze 204) mussten bei Berechnungen nach dem Stand der Technik (7) alle Daten 274 x 274 mal durchgelesen werden. Mittels des oben beschriebenen Verfahrens wurden die Daten jedoch nur zweimal durchgelesen. Der erste Ansatz dauerte 1,5 Stunden, um alle Korrelationskoeffizienten zu berechnen, während der zweite Ansatz nur achtzehn Sekunden brauchte, was eine Steigerung der Computerleistung um das über 2.000-fache bedeutet. Man wird einschätzen, dass das vorhergehende Verfahren angepasst werden kann, um Korrelationskoeffizienten für mehr als zwei Variablen 202 (Interaktionen höherer Ordnung) mit noch höheren Einsparungen der Recheneffizienz zu bewerten.
  • Die vorhergehende Beschreibung der Ausführungsbeispiele für diese Erfindung wurde zum Zweck der Veranschaulichung und Beschreibung vorgelegt. Es ist nicht beabsichtigt, Anspruch auf Vollständigkeit zu erheben oder die Erfindung auf die offenbarte genaue Form zu beschränken. Offensichtliche Modifikationen oder Variationen sind angesichts des oben gezeigten möglich. Die Ausführungsbeispiele werden in dem Bemühen ausgewählt und beschrieben, um Veranschaulichungen der Grundsätze der Erfindung und ihre praktische Anwendung zur Verfügung zu stellen und es damit dem Fachmann zu ermöglichen, die Erfindung in verschiedenen Ausführungsbeispielen und mit verschiedenen Modifikationen zu nutzen, die für die jeweilige vorgesehene Verwendung geeignet sind. Alle diese Modifikationen und Variationen fallen in den Anwendungsbereich der Erfindung, wie sie durch die beigefügten Ansprüche bestimmt wird, wenn sie in Übereinstimmung mit dem Umfang interpretiert werden, auf die sie fair, rechtmäßig und gerecht Anspruch haben.

Claims (13)

  1. Verfahren zur Verbesserung des Betriebs eines Computers durch Übertragen von Daten von einer Datenbank mit strukturierter Abfragesprache (Structured Query Language - SQL) in einer Speichereinheit in einen Speicher, wobei das Verfahren die Schritte umfasst: Kopieren der Daten aus der SQL Datenbank in eine Binärdatei in der Speichereinheit, wobei die Binärdatei eine Datenstruktur und einen Datentyp aufweist, Konfigurieren in dem Speicher einer Datei mit der Datenstruktur und dem Datentyp und Kopieren der Binärdatei in der Speichereinheit in die Datei im Speicher mit einem einzigen Lese-/Schreibvorgang.
  2. Verfahren nach Anspruch 1, wobei die Datenstruktur Datensätze und Felder mit einer Anzahl von Datensätzen und einer Anzahl von Feldern für jeden Datensatz umfasst.
  3. Verfahren nach Anspruch 1, wobei der Datentyp wenigstens eine reale, ganzzahlige oder Wortlänge umfasst.
  4. Verfahren zum Lesen der durch das Verfahren nach Anspruch 1 erzeugten Datei, wenn die Datensätze der Datei sortiert sind, das umfasst: Durchlesen der gesamten Datei nur einmal, um Datensatzpositionen für Daten mit vorgegebenen Datenmerkmalen zu finden, Erstellen einer Zeigertabelle in dem Speicher, wobei die Zeigertabelle eine einzelne Datensatzposition für eine erste Instanz von jedem der vorgegebenen Datenmerkmale in der Datei aufweist, und Lesen der Datei beginnend an der Datensatzposition in der Zeigertabelle, die einem gewünschten der vorgegebenen Datenmerkmale entspricht.
  5. Verfahren zum Lesen der durch das Verfahren nach Anspruch 1 erzeugten Datei, um gewünschte Daten aufzufinden, wenn die Datensätze der Datei unsortiert sind, das umfasst: Durchlesen der gesamten Datei nur einmal, um Datensatzpositionen für Daten mit vorgegebenen Datenmerkmalen zu finden, Erstellen einer ersten Zeigertabelle in dem Speicher, wobei die erste Zeigertabelle eine einzelne Datensatzposition für eine erste Instanz von jedem der vorgegebenen Datenmerkmale in der Datei aufweist, Erstellen einer zweiten Zeigertabelle in dem Speicher, wobei die zweite Zeigertabelle in Verbindung mit der Datensatzposition für die erste Instanz von jedem der vorgegebenen Datenmerkmale eine nachfolgende Datensatzposition für eine nächste nachfolgende Instanz von jedem der vorgegebenen Datenmerkmale in der Datei aufweist, und Lesen der Datei beginnend an der Datensatzposition in der ersten Zeigertabelle, die einem gewünschten der vorgegebenen Datenmerkmale entspricht, und wenn die Daten in der Datensatzposition nicht die gewünschten Daten enthalten, iteratives Lesen der Datei an der Datensatzposition, die der nächsten nachfolgenden Instanz in der zweiten Zeigertabelle zugeordnet ist, bis die gewünschten Daten gefunden sind.
  6. Verfahren zum Korrelieren von Variablen in der durch das Verfahren nach Anspruch 1 erzeugten Datei, wobei das Verfahren die Schritte umfasst: Lesen der Datei ein erstes Mal, um die Durchschnittswerte x und y für jedes zu korrelierende x und y Variablenpaar zu bestimmen, Lesen der Datei ein zweites Mal, um für jede xi und yi Variable die folgenden drei Werte zu bestimmen, wobei i die Anzahl der Variablen darstellt, i ( x i x ¯ ) ( y i y ¯ ) ,
    Figure DE102019106724A1_0015
    i ( x i x ¯ ) 2 ,
    Figure DE102019106724A1_0016
    i ( y i y ¯ ) 2 ,
    Figure DE102019106724A1_0017
    Speichern von jedem der drei Werte in einer Zelle einer Anordnung, die für das xi und yi Variablenpaar bestimmt ist, und Verwenden der drei Werte in der Anordnung für jede Kombination von xi und yi Variablen, Berechnen des Korrelationswertes r entsprechend der Formel r = i ( x i x ¯ ) ( y i y ¯ ) i ( y i y ¯ ) 2 i ( y i y ¯ ) 2 .
    Figure DE102019106724A1_0018
  7. Verfahren zum Verbessern des Betriebs eines Computers durch Lesen einer Datei von Datensätzen in einem Speicher, wobei das Verfahren umfasst: Durchlesen der gesamten Datei nur einmal, um Datensatzpositionen für Daten mit vorgegebenen Datenmerkmalen zu finden, Erstellen einer Zeigertabelle in dem Speicher, wobei die Zeigertabelle eine einzelne Datensatzposition für eine erste Instanz von jedem der vorgegebenen Datenmerkmale in der Datei aufweist, und Lesen der Datei beginnend an der Datensatzposition in der Zeigertabelle, die einem gewünschten der vorgegebenen Datenmerkmale entspricht.
  8. Verfahren nach Anspruch 7, wobei jeder Datensatz in der Datei eine Vielzahl von Feldern umfasst und alle Felder entsprechend einer vorgegebenen Reihenfolge sortiert sind.
  9. Verfahren nach Anspruch 7, wobei jeder Datensatz der Datei eine Vielzahl von Feldern umfasst, alle Felder entsprechend einer vorgegebenen Reihenfolge sortiert sind und die Zeigertabelle für jedes der Felder eine einzelne Datensatzposition aufweist, die einer ersten Instanz für jedes der vorgegebenen Datenmerkmale für jedes Feld zugeordnet ist.
  10. Verfahren zum Verbessern des Betriebs eines Computers durch Lesen einer Datei mit unsortierten Datensätzen, um gewünschte Daten aufzufinden, wobei das Verfahren umfasst: Durchlesen der gesamten Datei nur einmal, um Datensatzpositionen für Daten mit vorgegebenen Datenmerkmalen zu finden, Erstellen einer ersten Zeigertabelle in dem Speicher, wobei die erste Zeigertabelle eine einzelne Datensatzposition für eine erste Instanz von jedem der vorgegebenen Datenmerkmale in der Datei aufweist, Erstellen einer zweiten Zeigertabelle in dem Speicher, wobei die zweite Zeigertabelle in Verbindung mit der Datensatzposition für die erste Instanz von jedem der vorgegebenen Datenmerkmale eine anschließende Datensatzposition für eine nächste nachfolgende Instanz von jedem der vorgegebenen Datenmerkmale in der Datei aufweist, und Lesen der Datei beginnend an der Datensatzposition in der ersten Zeigertabelle, die einem gewünschten der vorgegebenen Datenmerkmale entspricht, und wenn die Daten in der Datensatzposition nicht die gewünschten Daten enthalten, iteratives Lesen der Datei an der Datensatzposition, die der nächsten nachfolgenden Instanz in der zweiten Zeigertabelle zugeordnet ist, bis die gewünschten Daten gefunden sind.
  11. Verfahren nach Anspruch 10, wobei eine erste Zeigertabelle und eine zweite Zeigertabelle für jedes Feld in der Datei erstellt werden.
  12. Verfahren zum Verbessern des Betriebs eines Computers durch Korrelieren von Variablen in einer Datei, wobei das Verfahren die Schritte umfasst: Lesen der Datei ein erstes Mal, um die Durchschnittswerte x und y für jedes zu korrelierende x und y Variablenpaar zu bestimmen, Lesen der Datei ein zweites Mal, um für jede xi und yi Variable die folgenden drei Werte zu bestimmen, wobei i die Anzahl der Variablen darstellt, i ( x i x ¯ ) ( y i y ¯ ) ,
    Figure DE102019106724A1_0019
    i ( x i x ¯ ) 2 ,
    Figure DE102019106724A1_0020
    i ( y i y ¯ ) 2 ,
    Figure DE102019106724A1_0021
    Speichern von jedem der drei Werte in einer Zelle einer Anordnung, die für das xi und yi Variablenpaar bestimmt ist, und mittels der drei Werte in der Anordnung für jede Kombination von xi und yi Variablen Berechnen des Korrelationswertes r entsprechend der Formel r = i ( x i x ¯ ) ( y i y ¯ ) i ( y i y ¯ ) 2 i ( y i y ¯ ) 2 .
    Figure DE102019106724A1_0022
  13. Verfahren nach Anspruch 12, wobei der Korrelationswert r nur für eindeutige Kombinationen der Variablen xi und yi berechnet wird.
DE102019106724.3A 2018-04-16 2019-03-18 Effiziente Datenverarbeitung Pending DE102019106724A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/953,815 2018-04-16
US15/953,815 US10713232B2 (en) 2018-04-16 2018-04-16 Efficient data processing

Publications (1)

Publication Number Publication Date
DE102019106724A1 true DE102019106724A1 (de) 2019-10-17

Family

ID=68053205

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102019106724.3A Pending DE102019106724A1 (de) 2018-04-16 2019-03-18 Effiziente Datenverarbeitung

Country Status (3)

Country Link
US (1) US10713232B2 (de)
CN (1) CN110399396B (de)
DE (1) DE102019106724A1 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113031908B (zh) * 2021-03-25 2023-06-06 统信软件技术有限公司 一种有序数据处理方法及计算设备
CN114138714B (zh) * 2022-02-08 2022-05-24 上海金仕达软件科技有限公司 数据迁移的方法、装置、存储介质及电子设备

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6681218B1 (en) * 1999-11-04 2004-01-20 International Business Machines Corporation System for managing RDBM fragmentations
US6795868B1 (en) * 2000-08-31 2004-09-21 Data Junction Corp. System and method for event-driven data transformation
US7774321B2 (en) * 2005-11-07 2010-08-10 Microsoft Corporation Partial XML validation
CN100357952C (zh) * 2005-11-29 2007-12-26 华为技术有限公司 一种二进制数据的访问方法
US8510270B2 (en) * 2010-07-27 2013-08-13 Oracle International Corporation MYSQL database heterogeneous log based replication
US10262050B2 (en) * 2015-09-25 2019-04-16 Mongodb, Inc. Distributed database systems and methods with pluggable storage engines
US8458203B2 (en) * 2011-07-11 2013-06-04 Microsoft Corporation Optimizing data processing using dynamic schemas
US10824622B2 (en) * 2013-11-25 2020-11-03 Sap Se Data statistics in data management systems
US10853323B2 (en) * 2015-07-23 2020-12-01 Netapp Inc. Deduplicating extents across systems based upon indications of shared extents provided by clients
US10146833B1 (en) * 2016-03-30 2018-12-04 Amazon Technologies, Inc. Write-back techniques at datastore accelerators
US10275489B1 (en) * 2016-03-30 2019-04-30 Amazon Technologies, Inc. Binary encoding-based optimizations at datastore accelerators
US10191663B1 (en) * 2016-09-19 2019-01-29 Amazon Technologies, Inc. Using data store accelerator intermediary nodes and write control settings to identify write propagation nodes

Also Published As

Publication number Publication date
US20190318023A1 (en) 2019-10-17
US10713232B2 (en) 2020-07-14
CN110399396B (zh) 2023-07-04
CN110399396A (zh) 2019-11-01

Similar Documents

Publication Publication Date Title
DE112012003540B4 (de) Leistungsüberwachungsmasszahlen für Datenstromanwendung
DE60315996T2 (de) Verfahren und vorrichtung zur datenbewegung mittels sperren
DE102014204827A1 (de) Auflösen ähnlicher Entitäten aus einer Transaktionsdatenbank
DE202015009874U1 (de) Implementierung semistrukturierter Daten als ein Datenbankelement erster Klasse
DE112017006106T5 (de) Erzeugen von, Zugreifen auf und Anzeigen von Abstammungsmetadaten
DE60118973T2 (de) Verfahren zum abfragen einer struktur komprimierter daten
DE102008027605A1 (de) System und Verfahren zur rechnerbasierten Analyse großer Datenmengen
DE202017107393U1 (de) Vorhersagen eines Suchmaschinen-Einordnungssignalwerts
DE102019109288A1 (de) Anlage und Verfahren für Analyse des importierten Videos
DE112013000713T5 (de) Verfolgen von Änderungen in Zusammenhang mit einer Sammlung von Dokumenten
DE112015002101T5 (de) Systeme und Verfahren für einen verbesserten Datenstrukturspeicher
DE112012004169T5 (de) Überwachen der Ausführung von gespeicherten Prozeduren
DE102019106724A1 (de) Effiziente Datenverarbeitung
DE102017126349A1 (de) Verfahren zum verknüpfen eines ersten datenblocks mit einem zweiten datenblock, verfahren zum überprüfen der integrität einer blockchain-struktur, vorrichtung und computerprogrammprodukt
CH712988A1 (de) Verfahren zum Durchsuchen von Daten zur Verhinderung von Datenverlust.
DE112018005620T5 (de) Auftragsverwaltung in einem datenverarbeitungssystem
DE112018006438T5 (de) Clustering von facetten auf einem zweidimensionalen facettenwürfel für text-mining
EP3812949A1 (de) Konfigurierbarer digitaler zwilling
WO2012017056A1 (de) Verfahren und vorrichtung zur automatischen verarbeitung von daten in einem zellen-format
DE102006054671A1 (de) Systeme und Verfahren zum Auffinden häufig aufgerufener Unterbäume
EP3708945A1 (de) Auswertung von messdaten aus einer vermessung einer mehrzahl von werkstücken
WO2001080235A1 (de) Verfahren zur bestimmung eines charakteristischen datensatzes für ein datensignal
DE112017007447T5 (de) Informationsanzeigevorrichtung, programm und informationsanzeigeverfahren
DE19906868C1 (de) Verfahren und Vorrichtung zum Berechnen einer diskreten orthogonalen Transformation wie FFT oder IFFT
DE102005018063A1 (de) Verfahren zum Empfangen und Zuordnen von bedingten abhängigen Testergebnissen

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0016200000

Ipc: G06F0016220000