Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Mova dados do Oracle para HDFS, processe e mova para Teradata do HDFS


Parece que você tem várias perguntas, então vamos tentar detalhar.

Importando em HDFS


Parece que você está procurando por Sqoop . O Sqoop é uma ferramenta que permite transferir facilmente dados de entrada/saída do HDFS e pode se conectar a vários bancos de dados, incluindo Oracle nativamente. O Sqoop é compatível com o driver thin Oracle JDBC. Aqui está como você transferiria do Oracle para o HDFS:
sqoop import --connect jdbc:oracle:[email protected]:1521/db --username xxx --password yyy --table tbl --target-dir /path/to/dir

Para obter mais informações:aqui e aqui . Observe que você também pode importar diretamente para uma tabela do Hive com o Sqoop, o que pode ser conveniente para fazer sua análise.

Processando


Como você observou, como seus dados inicialmente são relacionais, é uma boa ideia usar o Hive para fazer sua análise, pois você pode estar mais familiarizado com a sintaxe do tipo SQL. Pig é álgebra relacional mais pura e a sintaxe NÃO é semelhante a SQL, é mais uma questão de preferência, mas ambas as abordagens devem funcionar bem.

Como você pode importar dados para o Hive diretamente com o Sqoop, seus dados devem estar diretamente prontos para serem processados ​​após a importação.

No Hive, você pode executar sua consulta e dizer para escrever os resultados no HDFS:
hive -e "insert overwrite directory '/path/to/output' select * from mytable ..."

Exportando para TeraData


A Cloudera lançou no ano passado um conector para Teradata para Sqoop conforme descrito aqui , então você deve dar uma olhada, pois isso se parece exatamente com o que você deseja. Aqui está como você faria isso:
sqoop export --connect jdbc:teradata://localhost/DATABASE=MY_BASE --username sqooptest --password xxxxx --table MY_DATA --export-dir /path/to/hive/output

A coisa toda é definitivamente possível em qualquer período de tempo que você quiser, no final o que importa é o tamanho do seu cluster, se você quiser rápido, dimensione seu cluster conforme necessário. O bom do Hive e do Sqoop é que o processamento será distribuído em seu cluster, para que você tenha controle total sobre o cronograma.