ACCESSDATA-Befehl

Importiert Daten aus vielerlei ODBC-kompatiblen Datenquellen.

Der Befehl lautet ACCESSDATA64 oder ACCESSDATA32, was davon abhängt, ob Sie einen 64-Bit- oder einen 32-Bit-ODBC-Treiber verwenden.

Syntax

{ACCESSDATA64 | ACCESSDATA32} {CONNECTOR | ODBC {"Driver"|"Dsn"|"File"}} NAME Wert <USER Benutzer-ID> <PASSWORD Zahl | PROMPT_PASSWORD> TO Tabellenname CHARMAX maximale_Feldlänge MEMOMAX maximale_Feldlänge <ALLCHARACTER> SOURCE (Verbindungseinstellungen)<HASH(Salt-Wert; Felder)>
SQL_QUERY
(SQL_Syntax)
END_QUERY

Parameter

Name Beschreibung
CONNECTOR | ODBC {"Driver"|"Dsn"|"File"}

Der Typ der von Ihnen gewünschten ODBC-Verbindung:

  • CONNECTOR Verbindung mit einem systemeigenen Analytics-Datenkonnektor
  • ODBC "Treiber" Verbindung mit einem Windows-ODBC-Treiber, der auf Ihrem Computer installiert ist
  • ODBC "DSN" Verbindung mit einem DSN (Datenquellenname), der auf Ihrem Computer gespeichert ist
  • ODBC "Datei" Verbindung mit einem Datei-DSN (einer gespeicherten .dsn-Datei)
NAME Wert

Der Name des Analytics-Datenkonnektors, des ODBC-Treibers oder des DSN.

Beispiel:

  • NAME "Amazon Redshift"
  • NAME "Microsoft Access Driver (*.mdb, *.accdb)"
  • NAME "My Excel DSN"
  • NAME "excel.dsn"

USER Benutzer-ID

Optional

Die Benutzer-ID für Datenquellen, die eine Benutzer-ID benötigen.

PASSWORD Zahl | PROMPT_PASSWORD

Optional

Für kennwortgeschützte Datenquellen:

  • PASSWORD Zahl Verwendet die nummerierte Kennwortdefinition.
  • PROMPT_PASSWORD Zeigt eine Kennwort-Eingabeaufforderung an.

    Die Kennwort-Eingabeaufforderung ermöglicht auch eine Änderung derBenutzer-ID.

Wenn Sie PASSWORD Zahl verwenden, müssen Sie eine zuvor erstellte Kennwortdefinition angeben. Weitere Informationen finden Sie unter PASSWORD-Befehl und SET-Befehl.

Tipp

Eine Verwendung des Befehls PASSWORD mit PASSWORD Zahl ähnelt der Verwendung von PROMPT_PASSWORD. Bei beiden Ansätzen wird der Benutzer zur Eingabe eines Kennworts aufgefordert. PROMPT_PASSWORD hat den Vorteil, dass die Benutzer-ID aktualisiert werden kann.

TO Tabellenname

Der Ort, an den die Ergebnisse des Befehls gesendet werden sollen:

  • Tabellenname Speichert die Ergebnisse in einer Analytics-Tabelle.

    Geben Sie Tabellenname als in Anführungszeichen gesetzte Zeichenfolge mit der Dateierweiterung „.FIL“ an. Beispiel: TO "Ausgabe.FIL"

    Standardmäßig wird die Tabellendatendatei (.FIL) im Ordner mit dem Analytics-Projekt gespeichert.

    Verwenden Sie entweder einen absoluten oder relativen Dateipfad, um die Datendatei in einen anderen bestehenden Ordner zu speichern:

    • TO "C:\Ausgabe.FIL"
    • TO "Ergebnisse\Ausgabe.FIL"

    Hinweis

    Tabellennamen sind auf 64 alphanumerische Zeichen beschränkt, was die .FIL-Dateierweiterung nicht einbezieht. Der Name kann den Unterstrich beinhalten ( _ ), aber keine anderen Sonderzeichen oder Leerzeichen. Er kann nicht mit einer Ziffer beginnen.

CHARMAX maximale_Feldlänge

Die maximale Länge eines beliebigen Felds der Analytics-Tabelle (in Zeichen), dessen Ursprung Zeichendaten in der zu importierenden Quelldatendatei sind.

Der Standardwert ist 50. Daten, welche die maximale Feldlänge übersteigen, werden beim Import in Analytics abgeschnitten.

MEMOMAX maximale_Feldlänge

Die maximale Länge (in Zeichen) von Text-, Notizen- oder Memofeldern, die Sie importieren.

Der Standardwert ist 100. Daten, welche die maximale Feldlänge übersteigen, werden beim Import in Analytics abgeschnitten.

ALLCHARACTER

Optional

Den Zeichendatentyp allen importierten Feldern zuweisen.

Sobald sich die Daten in Analytics befinden, können Sie den Feldern unterschiedliche Datentypen zuweisen, wie beispielsweise Numerisch oder Datumzeit, und Formateinzelheiten festlegen.

Tipp

ALLCHARACTER ist hilfreich, wenn Sie eine Tabelle importieren, die numerische Kennungen beinhaltet. Sie können ALLCHARACTER verwenden, damit Analytics nicht automatisch Werten einen numerischen Datentyp zuweist, die eigentlich den Zeichendatentyp haben sollten.

SOURCE Verbindungseinstellungen

Die Verbindungseinstellungen (Verbindungszeichenfolge), die für die Verbindung mit der Datenquelle benötigt werden.

HASH(Salt-Wert; Felder)

Optional

Importiert die angegebenen Felder als kryptografische Hashwerte. Hashwerte sind unidirektionale Transformationen, die nach dem Importieren der Felder nicht decodiert werden können:

  • Salt_Wert Eine alphanumerische Zeichenfolge, die an die Werte der Quelldaten angehängt wird, um das Hashing der Feldwerte zu verbessern. Geben Sie den Hashwert als Zeichenfolge in Anführungszeichen ein.

    Der Salt-Wert ist auf 128 Zeichen begrenzt. Verwenden Sie nicht die folgenden Zeichen: (  )  "

  • Felder Eine Liste ein oder mehrerer Felder, für die ein Hashwert erstellt werden soll. Geben Sie die Felder als in Anführungszeichen gesetzte Zeichenfolge ein, und trennen Sie die Felder mit einem Semikolon.

    Sie müssen den Feldnamen angeben, den Sie im Fenster „Datenzugriff“ und dem Stagingbereich sehen, nicht den physischen Feldnamen in der Datenquelle.

    Hinweis

    Der Feldname, der im Fenster „Datenzugriff“ angezeigt wird, ist der Alias-Wert des Felds in der SQL-Abfrage ("Feldname" AS "alias"). Sie müssen den Alias-Wert zur Referenzierung von Feldern verwenden.

HASH("QZ3x7"; "SSN_NO; CC_NO; Nachname")

Wie während des Importierens erstellte Hashwerte mit Hashwerten von ACLScript verglichen werden, wird in Vergleich von Hashdaten aus ACCESSDATA mit Hashdaten der HASH( )-Funktion aus ACLScript beschrieben.

SQL_QUERY (SQL_Syntax) END_QUERY

Die SQL-Importanweisung.

Alles, was sich innerhalb der Klammern befindet, ist Bestandteil der SQL-Abfrage und muss eine gültige SQL-Syntax aufweisen.

Beispiele

Daten mit einem systemeigenen Analytics-Datenkonnektor importieren

Sie müssen Daten aus dem Amazon-Redshift-Cloud-Datenservice importieren. Hierzu verwenden Sie den Amazon-Redshift-Datenkonnektor von Analytics:

ACCESSDATA64 CONNECTOR NAME "Amazon Redshift" USER "ACL_Benutzer" PROMPT_PASSWORD TO "Entitlement_History.FIL" CHARMAX 50 MEMOMAX 100
  SOURCE( boolsaschar=0;cachesize=100;database=usage;declarefetchmode=0;maxbytea=255;maxlongvarchar=8190;maxvarchar=255;port=5439;servername=acl_test.highbond.com;singlerowmode=1;sslmode=require;textaslongvarchar=0;usemultiplestatments=0;useunicode=1)
  SQL_QUERY(
    SELECT
      "entitlement_history"."organization" AS "organization",
      "entitlement_history"."user_email" AS "user_email",
      "entitlement_history"."plan_id" AS "plan_id",
      "entitlement_history"."date_from" AS "date_from",
      "entitlement_history"."date_to" AS "date_to"
    FROM
      "prm"."entitlement_history" "entitlement_history"
) END_QUERY

Daten mit einem Windows-ODBC-Treiber importieren

Sie müssen Daten aus einer Microsoft-Access-Datenbank importieren. Hierzu verwenden Sie einen Windows-ODBC-Treiber, um sich mit MS Access zu verbinden und das Importieren abzuschließen.

ACCESSDATA32 ODBC "Driver" NAME "Microsoft Access Driver (*.mdb)" TO "Rechnungen.FIL" CHARMAX 50 MEMOMAX 100
  SOURCE( dbq=C:\Benutzer\lachlan_murray\Dokumente\ACL Data\Beispiel-Datendateien\Beispiel.mdb;defaultdir=C:\Benutzer\lachlan_murray\Dokumente\ACL Data\Beispiel-Datendateien;driverid=281;fil=MS Access;maxbuffersize=2048;maxscanrows=8;pagetimeout=5;safetransactions=0;threads=3;usercommitsync=Yes)
  SQL_QUERY(
    SELECT
      `Kunde`.`KundenID` AS `KundenID`,
      `Kunde`.`Unternehmen` AS `Unternehmen`,
      `Kunde`.`Adresse` AS `Adresse`,
      `Kunde`.`Stadt` AS `Stadt`,
      `Kunde`.`Region` AS `Region`,
      `Kunde`.`PLZ` AS `PLZ`,
      `Kunde`.`Land` AS `Land`,
      `Kunde`.`Telefon` AS `Telefon`,
      `Bestellungen`.`BestellID` AS `BestellID`,
      `Bestellungen`.`KundenID` AS `Bestellungen_KundenID`,
      `Bestellungen`.`ProdID` AS `ProdID`,
      `Bestellungen`.`Bestelldatum` AS `Bestelldatum`,
      `Bestellungen`.`Menge` AS `Menge`,
      `Produkt`.`ProdID` AS `Produkt_ProdID`,
      `Produkt`.`ProdName` AS `ProdName`,
      `Produkt`.`Stückpreis` AS `Stückpreis`,
      `Produkt`.`Beschreibung` AS `Beschreibung`,
      `Produkt`.`Liefergewicht` AS `Liefergewicht`
    FROM
      (`Kunde` `Kunde`
    INNER JOIN
      `Bestellungen` `Bestellungen`
          ON `Kunde`.`CustID` = `Bestellungen`.`CustID`
      )
INNER JOIN
    `Produkt` `Produkt`
      ON `Bestellungen`.`ProdID` = `Produkt`.`ProdID`
WHERE
    (
      `Kunde`.`Region` = 'BC'
      OR `Kunde`.`Region` = 'WA')
    
  ) END_QUERY

Daten mit einem Windows-DSN (Datenquellenname) importieren

Sie müssen Daten aus einer Microsoft-Excel-Datei importieren. Hierzu verwenden Sie einen Windows-DSN, um sich mit Excel zu verbinden und das Importieren abzuschließen:

ACCESSDATA32 ODBC "Dsn" NAME "Excel-Dateien" TO "Trans_April_15_Stichtag.FIL" CHARMAX 50 MEMOMAX 100
  SOURCE( dbq=C:\Benutzer\lachlan_murray\Dokumente\ACL Data\Beispiel-Datendateien\Beispiel.mdb;defaultdir=C:\Benutzer\lachlan_murray\Dokumente\ACL Data\Beispiel-Datendateien;driverid=1046;maxbuffersize=2048;pagetimeout=5)
  SQL_QUERY(
    SELECT
      `Trans_Apr_`.`CARDNUM` AS `CARDNUM`,
      `Trans_Apr_`.`AMOUNT` AS `AMOUNT`,
      `Trans_Apr_`.`TRANS_DATE` AS `TRANS_DATE`,
      `Trans_Apr_`.`CODES` AS `CODES`,
      `Trans_Apr_`.`CUSTNO` AS `CUSTNO`,
      `Trans_Apr_`.`DESCRIPTION` AS `DESCRIPTION`
    FROM
      `Trans_Apr$` `Trans_Apr_`
    WHERE
      (
          `Trans_Apr_`.`TRANS_DATE` <= {ts '2003-04-15 00:00:00'}
      )
  ) END_QUERY

Bemerkungen

Hinweis

Weitere Informationen über die Funktion dieses Befehls finden Sie in Hilfe für Analytics.

ODBC-Verbindungseinstellungen und SQL-Importanweisungen erstellen

ODBC-Verbindungseinstellungen und SQL-Importanweisungen sind oft recht lang und schwierig, was an den Beispielen zu erkennen ist.

Am einfachsten lassen sich diese Bestandteile des Befehls ACCESSDATA erstellen, wenn Sie zuerst das Fenster „Datenzugriff“ in Analytics verwenden, um sich mit der Zieldatenquelle zu verbinden und Daten zu importieren. Sie können dann den gesamten ACCESSDATA-Befehl aus dem Protokoll mit den Verbindungseinstellungen und der Importanweisung kopieren und den Befehl wie gewünscht anpassen.

Wert des Kennworts unterdrückt

Wenn Sie das Fenster „Datenzugriff“ in Analytics verwenden, um den Befehl Analytics auszuführen, und ein Kennwort eingeben, wird der Wert des Kennworts nicht in das Protokoll geschrieben. Stattdessen wird der Parameter PROMPT_PASSWORD ersetzt.

ACCESSDATA-Protokoll-dateien

Zwei Protokoll-dateien zeichnen die Transaktionen im Zusammenhang mit dem Befehl ACCESSDATA auf. Sie können die Fehlersuche unterstützen, wenn eine Datenverbindung fehlschlägt:

  • ServerDataAccess.log zeichnet alle Aktivitäten und Fehler vor dem Importieren der Daten auf.

    Speicherort: C:\Benutzer\<Benutzerkonto>\AppData\Local\ACL\ACL for Windows\Data Access\ServerDataAccess.log

    Hinweis

    Der „Server“ in ServerDataAccess.log bezieht sich auf die Datenzugriffskomponente von Analytics, die lokal auf dem Computer läuft, auf dem Analytics installiert ist.

  • DataAccess.log zeichnet Informationen über den Importvorgang auf und über das Analytics-Projekt, in das Sie Daten importieren.

    Speicherort: ..\<Analytics-Projektordner>\DataAccess.log

Vergleich von Hashdaten aus ACCESSDATA mit Hashdaten der HASH( )-Funktion aus ACLScript

Auch wenn Sie die Rohwerte der Hashdaten nicht lesen können, sind sie trotzdem hilfreich, um Daten zu vereinen oder zu analysieren.

Wenn Sie Werte vergleichen möchten, für die beim Importieren mit ACCESSDATA ein Hashwert erstellt wurde, und falls es Vergleichswerte gibt, für die mit der HASH( )-Funktion von ACLScript ein Hashwert berechnet wurde, müssen Sie vor dem Erstellen des Hashwerts alle numerischen Felder oder Datumzeit-Felder von Analytics auf Zeichenwerte konvertieren und führende sowie nachgestellte Leerzeichen kürzen.

Datumzeit-Felder müssen bei der Konvertierung auf Zeichenwerte die folgenden Formate aufweisen:

  • Datumzeit "JJJJ-MM-TT hh:mm:ss"
  • Datum "JJJJ-MM-TT"
  • Zeit "hh:mm:ss"

Das folgende Beispiel verwendet die Funktionen STRING( ) und ALLTRIM( ), um ein numerisches Feld mit einer Kreditkartennummer in Zeichendaten umzuwandeln, bevor mit der HASH( )-Funktion von ACLScript ein Hashwert erstellt wird.

COMMENT Verwendung der ACL-HASH-Funktion nach dem Import von Daten
HASH(ALLTRIM(STRING(KK_Nr; 16)); "QZ3x7")

Sobald Sie für die Analytics-Werte einen Hashwert erstellen, können Sie sie mit den Hashwerten vergleichen, die im Rahmen des Importierens mit dem Befehl ACCESSDATA erstellt wurden.

Leitfaden für die Skripterstellung in ACL 14.1