NAME

Quiq::Database::DataAnalysis - Führe Datenanalyse durch

BASE CLASS

Quiq::Hash

DESCRIPTION

Führe eine Analyse auf den Daten einer Relation (Tabelle oder View) oder eines SQL-Statements durch, das Daten liefert (üblicherweise ein SELECT-Statement). Das Analyseergebnis kann mit den Methoden der Klasse ausgegeben werden.

METHODS

Konstruktor

new() - Führe Datenanalyse durch

Synopsis

$obj = $class->new($db,@select,@opt);

Arguments

$db

Datenbankverbindung

@select

Name einer Relation oder Komponenten eines SELECT-Statements. Siehe Quiq::Sql->select().

Options

-cache => $n (Default: Kein Caching)

Siehe Quiq::Database::Connection/sql().

-enumLimit => $n (Default: 10)

Bis zu dieser Anzahl an unterschiedlichen Werten werden diese einzelnen Werte in der Kolumne "DISTINCT <column>" aufgezählt.

-valLenLimit => $n (Default: 30)

Bis zu dieser Länge werden die Werte der Kolumnen "MIN(<column>)" und "MAX(<column>)" angezeigt. Längere Werte werden auf die Länge $n-3 gekürzt und um drei Punkte (...) ergänzt.

Returns

$obj

Objekt mit dem Ergebnis der Datenanalyse.

Description

Führe eine Datenanalyse für Datenquelle @select (Tabelle, View, Statement) durch und liefere ein Objekt, das das Analyseergebnis repräsentiert, zurück. Folgende Information wird für alle Kolumnen der Datenquelle ermittelt:

COUNT(DISTINCT <column>) - Anzahl der verschiedenen Werte
COUNT(<column>)          - Anzahl der Werte, die nicht NULL sind
MIN(LENGTH(<column>))    - Länge des kürzesten Werts
MAX(LENGTH(<column>))    - Länge des längsten Werts
MIN(<column>)            - Kleinster Wert (gemäß Datentyp)
MAX(<column>)            - Größter Wert (gemäß Datentyp)

Ferner wird ermittelt:

COUNT(1)                 - Anzahl aller Zeilen der Datenquelle

Das Ergebnis der Analyse kann mit der Methode $obj->asTable() ausgegeben werden.

Example

Datenanalyse einer Tabelle q06i001, die Ergebnismenge wird einen Tag gecacht:

print Quiq::Database::DataAnalysis->new($db,'q06i001',-cache=>86400)->asTable;
__END__
q06i001

30.088.616 rows

1 <column>
2 COUNT(DISTINCT <column>)
3 COUNT(<column>)
4 MIN(LENGTH(<column>))
5 MAX(LENGTH(<column>))
6 MIN(<column>)
7 MAX(<column>)
8 DISTINCT <column>

1                2            3            4    5    6                          7                           8
| fid            |        101 | 30.088.616 |  1 |  3 | 0                        | 808                       |                    |
| ag             |          5 | 30.088.616 |  2 |  2 | 25                       | 29                        | 25, 26, 27, 28, 29 |
| kdnr           |  2.805.719 | 30.088.616 |  9 |  9 | 111111200                | 900002009                 |                    |
| vsnr           |  2.971.673 | 30.088.616 |  6 |  9 | 230243                   | 999999999                 |                    |
| lfd_nr         |        439 | 30.088.616 |  1 |  3 | 1                        | 439                       |                    |
| com_dat        |          1 | 30.088.616 |  1 |  1 | 0                        | 0                         | 0                  |
| wirk_dat       |     12.553 | 30.088.616 |  7 |  7 | 1000101                  | 2190731                   |                    |
| vwnd_kz        |          1 | 30.088.616 |  1 |  1 | 0                        | 0                         | 0                  |
| cur_dat        |      8.408 | 30.088.616 |  1 |  7 | 0                        | 2190418                   |                    |
| va             |         18 | 30.088.616 |  1 |  2 | 0                        | 99                        |                    |
| nf             |     11.855 | 30.088.616 |  1 |  7 | 0                        | 2990101                   |                    |
| sost_kz        |          3 | 30.088.616 |  1 |  1 | 0                        | 2                         | 0, 1, 2            |
| stor_dat       |     12.762 | 30.088.616 |  1 |  7 | 0                        | 2990101                   |                    |
| berech_ab      |     11.950 | 30.088.616 |  1 |  7 | 0                        | 2190630                   |                    |
| ges_beitr_brt  |    543.939 | 30.088.616 |  4 | 11 | -1717145.01              | 9944894.74                |                    |
| fpr_stop_kz    |          4 | 30.088.616 |  0 |  1 |                          | 3                         | '', 1, 2, 3        |
| umstlg_kz      |          3 | 30.088.616 |  1 |  1 | 0                        | 2                         | 0, 1, 2            |
| masch_aend_grd |         25 | 30.088.616 |  1 |  2 | 0                        | 99                        |                    |
| nnr            |      1.093 | 30.088.616 |  1 |  4 | 0                        | 9998                      |                    |
| lfd_tp_nr      |        277 | 30.088.616 |  1 |  3 | 1                        | 277                       |                    |
| lg_zt          | 30.088.616 | 30.088.616 | 24 | 24 | 060508000100001000000033 | 190418160157999000007760  |                    |
| tech_ab        |     12.553 | 30.088.616 | 10 | 10 | 1900-01-01               | 2019-07-31                |                    |
| tech_bis       |     12.293 | 30.088.616 | 10 | 10 | 1900-01-01               | 9999-12-31                |                    |
| upd_dat        |      5.572 | 30.088.616 | 19 | 26 | 2006-05-10 08:13:11      | 2019-04-19 00:02:05.66096 |                    |

24 columns

Objektmethoden

asTable() - Analyseergebnis als Tabelle

Synopsis

$str = $obj->asTable;

VERSION

1.171

AUTHOR

Frank Seitz, http://fseitz.de/

COPYRIGHT

Copyright (C) 2020 Frank Seitz

LICENSE

This code is free software; you can redistribute it and/or modify it under the same terms as Perl itself.