Dokumentation der tEXABulkExec This document simply contains the necessary information to fill the build-in help in the Studio. It is not indent to be distributed. Family: Datenbank/Exasolution Allgemeines zum Einsatz Die EXASol Datenbank stellt für das schnelle Massendatenladen den IMPORT Befehl bereit. Diese Befehl kann CSV Dateien importieren und bietet die Möglichkeit unterschiedliche Formate zu berücksichtigen. Fehlerhafte Datensätze zusammen mit den Fehlermeldungen können in eine Lokale Log-Datei oder in eine Log-Tabelle (zu spezifieren) geschrieben. Der Import kann eine festlegbare Anzahl von fehlerhaften Datensätze tolerieren. Die CSV Quelldateien werden per http zum Server transportiert. Die Komponente etabliert zu diesem Zweck einen lokalen http-Server von dem sich die Datenbank die Datei abholt. Wichtig ist hier dass der Port des Servers sich mit jedem neuen Transfer ändert. Es ist also ein transparentes Netzwerk zwischen dem Talend Jobserver un der Datenbank erforderlich wenn man diesen Import verwenden will. Basic Settings: Setting Verwende existierende Verbindung Verbindung Eigenschafts-Typ Host Port Schema Tabelle Aktion auf Tabelle Lokale Datendatei Schema Advanced Settings Description Wenn ausgewählt dann stellt eine tEXAConnection Komponente die Verbindung für diese Komponente bereit Liste der tEXAConnection Komponenten, wähle eine um dessen Verbindung zu nutzen. Die Komponente kann eigene unabhängige Konfigurationsdaten für die Verbindung nutzen oder Konfigurationsdaten aus den Metadaten. Server oder eine Liste von Servern der EXASol Datenbank. EXASol kann in einem Cluster environment laufen. Der Treiber wählt in diesem fall automatisch den aktuellen Server. Standard-Port ist 8563. Dieser Port ist nur für das SQL Interface. Die Datei-Transfers erfolgen über andere Ports die nicht fest stehen. Das Standard-Schema.Tabellen in dem Standardschema können ohne den Schema-Teil im Namen angesprochen werden. Tabellenname ohne Schema. Typischerweise übersetzt die EXASol alle Namen in Großbuchstaben. Wenn explizit Kleinbuchstaben benötigt werden dann muss der Name in doppelten Hochkomma gesetzt werden. Z.B. "\"TEST_data_LOAD\"" Konfiguriere hier die Aktion die vor dem eigentlichen Import durchgeführt werden soll. Setze hier den Pfad+Namen der lokalen Datendatei. Schema der Tabelle. Das Schema muss zu den Spalten in der CSVDatei passen. Setting Additional JDBC Properties Spalten Formate Spalten Trenner Spalten Begrenzer Zeilen Trenner Null Darstellung Überspringe Zeilen Zeichensatz Leerzeichen abschneiden Standard Datumsformat Default Timestamp Format Tausender Trenner Dezimal Trenner Maximale Anzahl tolerierter Fehler Log Error Ziel Description Setze hier zusätzliche JDBC Verbindungs-Parameter. Momentan sind diese Parameter die einzige Möglichkeit die Verbindung zu verschlüsseln indem der Parameter encryption=1 gesetzt wird. Alle key-value Paare werden mit einem Semikolen getrennt. Beispiel: encyption=1;clientname=Talend Für numerische und Zeit-Spalten kann hier das Format festgelegt werden. Column: Schema column Hat Tausender Trenner: Wenn der Textwert in der CSV Datei Tausender-Gruppen-Trenner enthält muss das hier konfiguriert werden. Mit dieser Option wird das erforderliche Format automatisch aus der Länge und Präzision der Schema-Definintion ermittelt. Z.B. Für eine Spalte mit einer Länge von 10 and 2 Nachommastellen folgt folgendes Format: "9G999G999G999D99". Die Formate sind weiter unten erklärt. Alternatives Format: Wenn ein spezielles Format erforderlich ist. (Siehe die Formatbeschreibung weiter unten) Setze hier die Zeichen welches zur Trennung der Spalten dient. Wenn nichts gesetzt ist wir ein einfaches Komma als Trenner angenommen. Setze hier das Zeichen welches die Feldinhalte einfasst. Wird hier nichts gesetzt wird keine Einfassung erwartet. Setze hier das Zeichen für die Zeilentrennung. Wenn nichts spezifiziert ist, wird das UNIX Format angenommen. Setze hier einen String der Null-Werte darstellt, wenn nichts gesetzt ist werden leere Werte als Null interpretiert. Um ggf. vorhandene Kopfzeilen zu überspringen, hier die Anzahl festlegen. Ein Wert 0 bedeutet ab der ersten verfügbaren Zeile wird importiert. Zeichensatz in dem die Textdatei vorliegt. Es stehen 3 verschiedene Methoden zur Verfügung wie mit Leerzeichen am Anfang und Ende der Werte umgegangen werden soll. Wenn nicht für die einzelnen Datums-Spalten festgelegt wird diese Format verwendet. Als Syntax kann sowohl das SQL als auch das Java Format eingesetzt werden. Wenn nicht für die einzelnen Zeitstempel-Spalten festgelegt wird diese Format verwendet. Als Syntax kann sowohl das SQL als auch das Java Format eingesetzt werden. Setze hier das Zeichen welches als Trenner der Tausender verwendet werden soll. In numersichen Formatabgaben ist das das Zeichen was für den Platzhalter "G" eingesetzt wird. Wenn Spalten derartige Zeichen enthalten müssen sie das in den Erweiterten Einstellungen in der Spalten-Konfiguration berücksichtigen! Trennzeichen für die Nachkommastellen. Dieses Zeichen wird für den Platzhalter "D" in den numerischen Formatangaben eingesetzt. Setzt die Anzahl an fehlerhaften Datensätzen ab der der gesamte Import abgebrochen wird. Legen sie hier fest wo die Fehlerinformationen abgelegt werden sollen. Kein Logging: Fehlerhafte Datensätze werden nicht vorgehalten Local log file: Fehlerhafte Datensätze werden in eine lokale LogDatei geschrieben (lokal aus Sicht des Talend Jobs). Logging Tabelle: Fehlerhafte Datensätze werden in eine LogTabelle geschrieben. Falls diese Tabelle noch nicht existiert wird sie angelegt. Lokale Error Log Datei Füge timestamp to the log file name before extension Error Log Table Für den Fall dass eine lokale lokale Log-Datei verwendet werden soll, hier den Pfad festlegen. produces log file name like this: Use current timestamp to build the log table In case of you have choosen as log destination a table: set here the table name. Use for identification reasons in case you use the same error table or file multiple times. Secure Transfer The transfer of the file will be performed over https instead http. Number Formats: Element Digit Examples 9 9999,999 0 0000,000 Description Each 9 stands for a digit of the number. If the number has fewer di- gits, it is padded with leading spacing characters. Each 0 stands for a digit of the number. If the number has fewer di- gits, it is padded with 0(s). Sign S S9999,999 MI 9999,999MI FM FM9999,999 Decimal separators . 999.999 D 999D999 Writes + for positive numbers and - for negative numbers. S may only be used at the beginning or end of the format string. Writes a spacing character for positive numbers and - for negative numbers. MI may only be used at the end of the format string. Removes all superfluous zeros. Writes - for negative numbers and removes all leading and trailing spaces for positive numbers. FM may only be used at the beginning of the format string. Writes a decimal point before the fractional part. Writes the decimal separator from NLS_NUMERIC_CHARACTERS before the fractional part. Group separator , 999,999.999 G 999G999D999 Others eeee EEEE 9.99eeee 9.99EEEE Writes a comma as a group separator at the specified position. Writes the group separator from NLS_NUMERIC_CHARACTERS at the specified position. Scientific notation. Scientific notation. Examples: A column with a length of 8 and precision of 3 will expect this format: "99G999G999D999" You can use a wider format as your values actually expects but not less! Date Formats: Element -: ; . / \ _ CC IYYY,vYYY and IYY,vYY,IY,vY,I,v YYYY and YYY,YY,Y VYYY and VYY,VY,V Q MM MON Meaning Serve as separators or padding characters Century (01-99) Year (0001-9999 in accordance with international standard, ISO 8601) and the last 3,2 or 1 digits Year (0001-9999) and the last 3,2 or 1 digits Year corresponding to the element VW, and the last 3,2 or 1 digits Quarter of the year (1-4) Month (01-12) Month abbreviation (JAN-DEC (ENG) or JAN-DEZ (DEU)) MONTH IW,vW uW VW UW WW J D ID DD DDD DAY DY HH12 HH24 (or HH) AM, A.M., am, a.m. PM, P.M., pm, p.m. MI SS FF[1-9] Month written in full (JANUARY-DECEMBER (ENG) or JANUARDEZEMBER (DEU)) Week in the year (01-53, Mo-Su, week 01 of the year contains the 4th of January, previous days count to previous year, in accordance with international standard, ISO 8601) Week in the year (00-53, Mo-Su, week 01 of the year contains the 4th of January, previous days count to week 00) Week in the year (01-53, Su-Sa, week 01 of the year starts with the first sunday, previous days count to to previous year) Week in the year (00-53, Su-Sa, week 01 of the year starts with the first sunday, previous days count to week 00) Week in the year (01-53, the first day of the year is the beginning of the week) Julian Date (number of days since January 1, 4713 BC) Day of week (1-7, starting from the day specified by the parameter NLS_FIRST_DAY_OF_WEEK - see also ALTER SYSTEM) ISO day of week (1-7, starting from Monday) Day (01-31) Day in the year (001-365 or 001-366) Weekday written in full (MONDAY-SUNDAY (ENG) or MONTAGSONNTAG (DEU)) Weekday abbreviation (MON-SUN (ENG) or MO-SO (DEU)) Hour (01-12) Hour (00-23) Meridian indicator Similar to AM Minute (00-59) Second (00-59) Fraction of a second (e.g. milliseconds at FF3) Scenario 1: Simple import of a csv file: Drag an drop a table from a metadata under a EXASol connection to your job. This example assumes you have a table TEST_ALL_TYPES. Than choose a local file to import. Take care the file column structure matches with the schema of the table. You can reorder the schema columns to match the columns in the csv file. Columns not existing in the csv file can be removed in the schema (as long as they are not essential of cours). In the advanced settings you can configure the csv file format options: The first (VAL_INT) column use the alternate format and the column in the middle (VAL_BIGINT) a generated format.