У меня есть требование загрузить миллиарды записей в 5 разных таблиц, каждая из которых имеет разные файлы данных. Эти 5 таблиц будут заполнены ежедневно и будут усечены на следующий день перед загрузкой свежих данных.Загрузите несколько файлов данных в несколько таблиц с помощью одного файла управления с помощью загрузчика sql.
- Que1: Как загрузить данные в 5 разных таблиц, используя 5 разных файлов данных с использованием 1 элемента управления?
- Que2: Мне нужно 5 разных отбросов, журналов и файлов, чтобы отслеживать эти 5 различных нагрузок?
- Que3: что лучше и эффективнее загружать миллиарды записей ежедневно - используя 5 различных контрольных таблиц, 5 отбросов, 5 файлов журнала или только один контрольный стол решит цель.
- Que4: Что делать, если одна из 5 неудачных попыток, мне нужно снова запустить sqloader для всех 5 таблиц?
Примечание: На данный момент мы загружаем данные в один стол, но нагрузка занимает 5-6 часов, поэтому мы ищем лучшую производительность. Я буду запускать sqlldr из сценария оболочки.
есть 4 различных файлов данных с указанной информации для 1day, 7day, 15day
LOAD DATA
replace
INTO TABLE T1_1DAY_STG
FIELDS TERMINATED BY X'05'
OPTIONALLY ENCLOSED BY '"'
TRAILING NULLCOLS
(
MM_INTERVAL,
STRATEGY_ID ,
AGGREGATE_DATE date "YYYY-MM-DD"
)
INTO TABLE T1_7DAY_STG
FIELDS TERMINATED BY X'05'
OPTIONALLY ENCLOSED BY '"'
TRAILING NULLCOLS
(
MM_INTERVAL,
STRATEGY_ID ,
AGGREGATE_DATE date "YYYY-MM-DD"
)
Я планирую для сценария оболочки, как этого
echo "start SQL loader" >> ${LOG_FILE} 2>&1
DCTL=$(eval echo \${TX_SQLLDR_${i}_CTL_SP})
DDATA=$(eval echo \${TX_${i}_DATA_FILE_SP})
DLOG=$(eval echo \${TX_${i}_DATA_FILE_LOG_SP})
DBAD=$(eval echo \${TX_${i}_DATA_FILE_BAD_SP})
DDISCARD=$(eval echo \${TX_${i}_DATA_FILE_DISCARD_SP})
${ORACLE_HOME}/bin/sqlldr ${ORACLE_USER}/${ORACLE_PASSWD}@${ORACLE_SID} control=${CTL_DIR}/${DCTL} data=${DATA_DIR}/${DDATA} log=${LOG_DIR}/${DLOG} bad=${LOG_DIR}/${DBAD} discard=${LOG_DIR}/${DDISCARD} errors=${ERRNUM} direct=true silent=FEEDBACK > ${TMP_LOG_FILE} 2>&1
Благодаря Сэнди
Вы загружаете файлы с сервера, и если это [внешние таблицы] (http://docs.oracle.com/cd/E11882_01/server.112/e22490/et_concepts.htm) жизнеспособный вариант? –
Да файлы данных были созданы из netezaa в качестве внешней таблицы, но нам нужно загрузить данные с помощью sql-загрузчика. – user2270413
есть 4 различных файлов данных для данных с указанной 1day, 7day, 15day LOAD DATA заменить INTO TABLE T1_1DAY_STG ПОЛЯ расторгнуто X'05' OPTIONALLY ENCLOSED BY '"' TRAILING NULLCOLS ( MM_INTERVAL, STRATEGY_ID, AGGREGATE_DATE дата "YYYY-MM-DD" ) INTO TABLE T1_7DAY_STG ПОЛЕЙ TERMINATED BY X'05' OPTIONALLY ENCLOSED BY '"' TRAILING NULLCOLS ( MM_INTERVAL, STRATEGY_ID, AGGREGATE_DATE Дат е "YYYY-MM-DD" ) ( MM_INTERVAL, STRATEGY_ID, дата AGGREGATE_DATE "YYYY-MM-DD" ) – user2270413