Nano Hash - криптовалюты, майнинг, программирование

Чтение значения даты и времени из файла CSV в teradate

Я довольно новичок в терадате. Я пытаюсь прочитать CSV-файл, который имеет столбец create_date как дату и время, пытаясь импортировать файл во временную таблицу teradata, но не смог добиться успеха. Пожалуйста, помогите мне решить проблему. Я приложил пример сценария, который я разработал, который отлично работает со значением даты.

HandleTmpTable()
{
    bteq <<ENDSQL
        .LOGON $TARGET_DB/$TUSER,$TPWD; 
/* Drop the temporary tables */
        DROP TABLE ${TTMPDB}.test;

/* Create the temporary table test */
        CREATE TABLE ${TTMPDB}.test,
            NO FALLBACK,
            NO BEFORE JOURNAL,
            NO AFTER JOURNAL
        (
        NUMBER  VARCHAR(35) NOT NULL,
        NAME            CHAR(4) NOT NULL,
        PROGRAM             VARCHAR(20),
        CODE            CHAR(4),
        C_NAME          VARCHAR(255),
        CO_NAME     VARCHAR(50),
        CREATE_DATE         date format 'YYYY/MM/DD',
        UPDATE_DATE         date format 'YYYY/MM/DD',
        EXCLUDE_IND         CHAR(1) ,
        NUMBER          VARCHAR(40),
        FLAG            SMALLINT,
        NG_FLAG     SMALLINT    
        );
        .IF ERRORCODE <> 0 THEN .EXIT ERRORCODE;
        .QUIT 0;       
ENDSQL
    if [ $? -ne 0 ] 
    then
        Error "Unable to create the temporary table"
    fi

    Log "Temporary tables created successfully"
}
ImportFiles()
{

   bteq <<ENDSQL
        LOGON $TARGET_DB/$TUSER,$TPWD;
    DROP TABLE ${TTMPDB}.test_err1;
        DROP TABLE ${TTMPDB}.test_err2;
ENDSQL
   fastload <<ENDSQL
        .SESSIONS ${TFLSESS};
        .ERRLIMIT 1;
        .LOGON $TARGET_DB/$TUSER,$TPWD;
        SET RECORD VARTEXT ",";
        DEFINE
        file_NUMBER      (VARCHAR(35)),
                file_NAME                 (VARCHAR(4)),
                file_PROGRAM                         (VARCHAR(20)),
                file_CODE                    (VARCHAR(4)),
                file_C_NAME                    (VARCHAR(255)),
                file_CO_NAME         (VARCHAR(50)),
                file_CREATE_DATE                     (VARCHAR(10)),
                file_UPDATE_DATE                     (VARCHAR(10)),
                file_EXCLUDE_IND                     (VARCHAR(1)),
                file_NUMBER                   (VARCHAR(40)),
                file_FLAG                  (VARCHAR(6)),
                file_NG_FLAG         (VARCHAR(6))

        FILE=test.csv;

        SHOW;

    BEGIN LOADING ${TTMPDB}.test
    ERRORFILES ${TTMPDB}.test_err1, ${TTMPDB}.test_err2
    CHECKPOINT 25000000;
    INSERT INTO ${TTMPDB}.test
        (
        :file_NUMBER,
        :file_NAME,
        :file_PROGRAM,
        :file_CODE,
        :file_C_NAME,
        :file_CO_NAME,
        :file_CREATE_DATE ,
        :file_UPDATE_DATE ,
        :file_EXCLUDE_IND,
        :file_NUMBER,
        :file_FLAG,
        :fileNG_FLAG

          );

    END LOADING;    

ENDSQL
    if [ $? -ne 0 ]
    then
        Error "Unable to Load the temporary table"
    else
    rm -f test.csv
    fi

    Log "Temporary tables loaded successfully"
}

Пример данных:

FC-A,FC,Fraud,AA,AAAA,,17JAN2019:00:00:00,17JAN2019:00:00:00,N,,,
FC-B,FC,Fraud,BB,BBBBB,,17JAN2019:00:00:00,17JAN2019:00:00:00,N,,,
FC-C,FC,Fraud,CC,CCCCC,,17JAN2019:00:00:00,17JAN2019:00:00:00,N,,,
FC-D,FC,Fraud,DD,DDDDD,,17JAN2019:00:00:00,17JAN2019:00:00:00,N,,,
FC-E,FC,Fraud,EE,EEEEE,,17JAN2019:00:00:00,17JAN2019:00:00:00,N,,,
FC-F,FC,Fraud,FF,FFFFF,,17JAN2019:00:00:00,17JAN2019:00:00:00,N,,,

Дайте мне знать, как читать и записывать значение даты и времени для столбцов create_date и update_date из csv в таблицу teradate


  • Каково точное сообщение об ошибке? NUMBER — это тип данных, поэтому это может быть зарезервированное ключевое слово. У вас также есть столбец NUMBER, определенный дважды в вашем выражении CREATE TABLE. 11.12.2019

Ответы:


1

Используя тот же сценарий, ниже все должно измениться для даты и времени: (1) Тип столбца должен быть отметкой времени. Timestamp(0) сделает базу из выборки данных. (2) В DEFINE быстрой загрузки поле должно иметь длину 18. (3) Во вставке быстрой загрузки вы можете использовать следующий код:

:file_CREATE_TS(format 'DDMMMYYYY:HH:MI:SS')
11.12.2019
  • Формат будет "ddmmmyyyy:hh:mi:ss" для загрузки в TIMESTAMP. FastLoad поддерживает только одно преобразование типа данных для каждого поля и не поддерживает никаких функций, поэтому вы не можете поместить это в столбец DATE за один шаг. С другими утилитами (например, MultiLoad) вы можете явно CAST использовать TIMESTAMP, а затем DATE или SUBSTRING перед преобразованием в дату в INSERT. 11.12.2019
  • Нет MON, есть MMM: FORMAT 'DDMMMYYYY:HH:MI:SS' 12.12.2019
  • Спасибо, что указали на dnoeth. Двойная звездочка предназначена для форматирования здесь, в stackoverflow. Просто найдите странным наличие «:» между датой и элементом времени временной метки. 12.12.2019
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..