Ejecutar grandes cargas masivas de manera eficiente con Fastload
Aviso de obsolescencia
Este tutorial describe la utilidad Fastload
. La utilidad ha quedado obsoleta. Para nuevas implementaciones, considere utilizar Teradata Parallel Transporter (TPT).
Descripción general
A menudo tenemos la necesidad de mover grandes volúmenes de datos a Vantage. Teradata ofrece la utilidad Fastload
, que puede cargar de manera eficiente grandes cantidades de datos en Teradata Vantage. Este tutorial demuestra cómo usar Fastload
. En este escenario, cargaremos más de 300.000 registros, más de 40 MB de datos, en un par de segundos.
Requisitos previos
- Acceso a una instancia de Teradata Vantage.
Nota
Si necesita una instancia de prueba de Vantage, puede obtener una de forma gratuita en https://clearscape.teradata.com
- Descargue Teradata Tools and Utilities (TTU) - plataformas compatibles: Windows, MacOS, Linux (requires registration).
Install TTU
- Windows
- MacOS
- Linux
Descomprima el archivo descargado y ejecute setup.exe
.
Descomprima el archivo descargado y ejecute TeradataToolsAndUtilitiesXX.XX.XX.pkg
.
Descomprima el archivo descargado, vaya al directorio descomprimido y ejecute:
Obtener datos de muestra
Trabajaremos con las declaraciones de impuestos de EE. UU. para organizaciones sin fines de lucro. Las declaraciones de impuestos de organizaciones sin fines de lucro son datos públicos. El Servicio de Impuestos Internos de EE. UU. los publica en el depósito S3. Veamos un resumen de las presentaciones de 2020: https://s3.amazonaws.com/irs-form-990/index_2020.csv
. Puede utilizar su navegador, wget
o curl
para guardar el archivo localmente.
Crear una base de datos
Creemos una base de datos en Vantage. Utilice su herramienta SQL favorita para ejecutar la siguiente consulta:
Ejecutar carga rápida
Ahora ejecutaremos Fastload
. Fastload
es una herramienta de línea de comandos que es muy eficiente para cargar grandes cantidades de datos en Vantage. Fastload
, para ser rápido, tiene varias restricciones. Solo puede completar tablas vacías; no se admiten inserciones en tablas ya completadas. No admite tablas con índices secundarios. Además, no insertará registros duplicados, incluso si una tabla es una tabla MULTISET
. Para obtener la lista completa de restricciones, consulte Referencia de Teradata® Fastload
.
Fastload tiene su propio lenguaje de programación. El lenguaje le permite preparar la base de datos con comandos SQL arbitrarios, declarar la fuente de entrada y definir cómo se deben insertar los datos en Vantage. La herramienta admite el modo interactivo y por lotes. En esta sección, usaremos el modo interactivo.
Comencemos Fastload
en el modo interactivo:
Primero, iniciemos sesión en una base de datos Vantage. Tengo un Vantage Express ejecutándose localmente, así que usaré localhost
como nombre de host y dbc
como nombre de usuario y contraseña:
Ahora que hemos iniciado sesión, voy a preparar la base de datos. Estoy cambiando a la base de datos irs
y asegurándome de que la tabla de destino irs_returns
y las tablas de error (más sobre las tablas de error más adelante) no existan:
Ahora crearé una tabla vacía que pueda contener los elementos de datos del archivo csv.
Ahora que la tabla de destino ha sido preparada, podemos comenzar a cargar los datos. La directiva ERRORFILES
define archivos de error. Los archivos de error son en realidad tablas que Fastload
crea. La primera tabla contiene información sobre la conversión de datos y otras cuestiones. La segunda tabla realiza un seguimiento de los problemas de unicidad de los datos, por ejemplo, infracciones de clave primaria.
Le indicamos a Fastload
que guarde un punto de control cada 10.000 filas. Es útil en caso de que tengamos que reiniciar nuestro trabajo. Podrá reanudarse desde el último punto de control.
También debemos decirle a Fastload
que omita la primera fila del archivo CSV para comenzar en el registro 2. Esto se debe a que la primera fila contiene encabezados de columna.
Fastload
también necesita saber que es un archivo separado por comas:
El bloque DEFINE
especifica qué columnas deberíamos esperar:
El bloque DEFINE
también tiene el atributo FILE
que apunta al archivo con los datos. Reemplace FILE = /tmp/index_2020.csv;
con la ubicación del archivo index_2020.csv
:
Finalmente, definimos la instrucción INSERT que colocará los datos en la base de datos y cerramos el bloque LOADING
:
Una vez finalizado el trabajo, nos desconectamos de la base de datos para limpiar las cosas.
Así es como se ve el guión completo:
Por lotes
Para ejecutar nuestro ejemplo en modo por lotes, simplemente guarde todas las instrucciones en un solo archivo y ejecute:
Fastload
vs. NOS
En nuestro caso, el archivo está en un depósito S3. Eso significa que podemos usar Native Object Storage (NOS) para ingerir los datos:
La solución NOS es práctica porque no depende de herramientas adicionales. Se puede implementar usando solo SQL. Funciona bien, especialmente para implementaciones Vantage con una gran cantidad de AMP, ya que las tareas NOS se delegan a AMP y se ejecutan en paralelo. Además, dividir los datos del almacenamiento de objetos en varios archivos puede mejorar aún más el rendimiento.
Resumen
Este tutorial demostró cómo incorporar grandes cantidades de datos en Vantage. Cargamos cientos de miles de registros en Vantage en un par de segundos usando Fastload
.
Otras lecturas
Si tiene alguna pregunta o necesita más ayuda, visite nuestro foro de la comunidad donde podrá obtener ayuda e interactuar con otros miembros de la comunidad.