2.15 - Sintaxis de SELECT y el conector de Teradata - Teradata QueryGrid

Teradata® QueryGrid™ Guía de instalación y uso

Product
Teradata QueryGrid
Release Number
2.15
Release Date
Marzo de 2021
Content Type
Administración
Configuración
Guía del usuario
Instalación
Publication ID
B035-5991-031K-ESN
Language
Español (España)

Puede utilizar la gramática de servidor externo en forma de database_name.table_name@server_name en las sentencias SELECT de sus consultas. Si no especifica una base de datos, se elige de forma predeterminada la base de datos actual de Teradata a Teradata, que se utilizará como base de datos predeterminada o reemplazada que se proporciona en las propiedades de conector o de enlace de Teradata a Presto. Puede usar esta gramática de servidor externo en uniones y en cualquier otro lugar donde se haga referencia a una tabla normal, incluidos vistas, macros y procedimientos almacenados.

Se admiten expresiones lógicas como AND, OR, NOT, > y <, entre otras. Se aplican límites de Teradata estándar, como devolver hasta 2048 columnas. El límite de tamaño de las filas depende de la versión del sistema de Teradata que se utilice.

Para obtener una lista de los tipos de datos compatibles, consulte Asignación de tipo de datos para conectores de Teradata QueryGrid.

El procesamiento de consultas se aplica en el sistema remoto, en función de las capacidades del sistema de destino y la optimización del sistema local. Por ejemplo, si se consulta un sistema Presto remoto desde un sistema Teradata, el optimizador de Teradata decide los predicados de aplicación, que luego se evalúan para la aplicación de consulta de destino final según lo que admita el sistema de destino.

Ejemplo: SELECT de Teradata a Presto

En el ejemplo se inicia una solicitud desde Teradata para seleccionar datos de una tabla del sistema Presto de destino mediante el objeto de servidor externo (presto1) y la tabla de Presto de destino (cardata):

SELECT CAST(Price AS DECIMAL (8,2))
       , mileage
       , CAST(make AS VARCHAR(20))
       , CAST(model AS VARCHAR(20))
FROM cardata@presto1 WHERE make=’Buick’;

Resultado:

       price     mileage  make    model
       --------  -------  ------  --------------------
       17314.10  8221     Buick   Century
       17542.04  9135     Buick   Enclave

Ejemplo: SELECT de Teradata a Presto de tabla externa

En el ejemplo se inicia una solicitud en Teradata mediante la consulta de aplicación de tabla externa para recuperar datos de un sistema Presto de destino. Se trata de una consulta de paso a través que no se analiza en el extremo de Teradata, pero es posible que deba regenerarse en el servidor de destino, por ejemplo, para calificar el nombre de la tabla con el nombre de catálogo:

SELECT * FROM FOREIGN TABLE (SELECT make, model FROM default.cardata 
                   where make = 'Buick')@QG_presto1 AS dt;

Resultado:

make    model
------  --------------------
Buick   Century
Buick   Enclave
Solo Teradata puede iniciar una solicitud SELECT desde una tabla externa.

Ejemplo: SELECT de Teradata a Presto desde tabla externa con una cláusula EXPORT

En el ejemplo se muestra una consulta de tabla externa con una cláusula adicional de exportación que combina la operación de exportación y la operación de importación y unión subsiguiente en un solo operador. Este ejemplo primero crea una tabla temporal (temp) en la base de datos de destino, exporta los datos de la tabla local ut2.datatypes2 a la tabla temporal, ejecuta la consulta en la tabla externa para unir la tabla temporal y la tabla datatypes1.bigint1 de destino; a continuación, el conjunto de resultados se devuelve a Teradata.

SELECT * FROM FOREIGN TABLE
  (SELECT datatypes1.bigint1, temp.double1 FROM datatypes1, temp 
   WHERE datatypes1.bigint1 > 1)@test EXPORT((select * from ut2.datatypes2) as temp) 
AS ft;
Solo Teradata puede iniciar una solicitud de selección desde una tabla externa con una cláusula de exportación.

Ejemplo: SELECT de Teradata a Presto desde tabla externa con una cláusula EXPORT (varios flujos de datos de entrada)

Se pueden exportar varias tablas al sistema de destino. Se admite un máximo de 16 flujos de datos de entrada. Se muestra un error cuando se supera el límite.

SELECT * FROM 
FOREIGN TABLE(SELECT types_numeric.bigint1,temp1.integer1 , temp2.byteint2
FROM types_numeric, temp1,temp2
WHERE types_numeric.bigint1 > 1
AND temp2.bigint2 = types_numeric.bigint1)@td1
EXPORT(
(SELECT 127 as byteint1, 32767 as smallint1, 2147483647 as integer1, 9223372036854775807 as bigint1) as temp1, 
localdb.table1 as temp2) 
AS ft;
Solo Teradata puede iniciar una solicitud de selección desde una tabla externa con una cláusula de exportación.

Ejemplo: SELECT con una cláusula RETURNS

SELECT admite el uso de una cláusula RETURNS para definir el resultado esperado. La cláusula RETURNS admite listas de columnas o definiciones de tabla, y se suele utilizar para devolver una columna con un determinado tipo, longitud de juego de caracteres y formato de cadena. Las matrices utilizadas en la cláusula RETURNS traen la columna de nuevo, basándose en el tipo de matriz de Teradata. Cuando se obtiene un tipo de cadena sin límite o limitado, una cláusula RETURNS ayuda a asignar estos tipos a CHAR, VARCHAR o CLOB con una longitud o juego de caracteres específico. BYTE y VARBYTE también se pueden asignar a una longitud específica.

Cuando se trae el tipo de matriz desde conectores de destino de Hive o Presto, cualquier formato de matriz Hadoop basado en JSON está implícitamente convertido al formato de matriz de Teradata VARCHAR.
CREATE TYPE SUSUDTLIB.STRARRAY AS VARCHAR(2) CHARACTER SET UNICODE ARRACY [3];
SELECT * FROM datatypes1@fs1 RETURNS (varchar1 STRARRAY)
SELECT * FROM datatypes1@fs1 RETURNS (varchar1 VARCHAR(5) CHARACTER SET LATIN) WHERE bigint1 >10000 AND double1 < 10000;

Ejemplo: función externa SELECT

La ejecución de la función externa permite que las funciones definidas en el sistema de destino utilicen las tablas del sistema iniciador como entrada. Al ejecutar la función Función externa, las tablas se exportan desde el sistema de inicio al sistema de destino. La función remota en el sistema de destino es iniciada por el sistema de destino y el resultado se importa en el sistema de inicio.

SELECT clicktime, custname(char(10)), productname, pagetype, productprice, sessionid
FROM SESSIONIZE@remoteTD
(
ON sess_data 
PARTITION BY partition_id
ORDER BY clicktime
USING
TIMECOLUMN('clicktime')
TIMEOUT(60)
RAPIDFIRE(0.2)
) AS S, cust_data where S.userid = custid  ORDER BY S.partition_id, S.clicktime;
 
 *** Query completed. 19 rows found. 6 columns returned.
 *** Total elapsed time was 3 seconds.
 
                 CLICKTIME  custname  PRODUCTNAME  PAGETYPE  PRODUCTPRICE SESSIONID
--------------------------  -------- ------------  --------- ------------ ---------
2013-12-03 22:03:02.540000  Sri      ?             Home                 ?         0
2013-12-03 22:03:32.190000  Sri      mytablet      checkout      45000.00         0
2013-12-03 22:03:46.210000  Sri      myphone 3     checkout      46000.00         0
2013-12-03 22:04:13.820000  Sri      B LED TV      checkout      86000.00         0
2013-12-03 22:04:25.520000  Sri      Z LED TV      checkout      91000.00         0
2013-12-18 22:08:07.800000  Walkar   ?             Home                 ?         1
2013-12-18 22:08:38.890000  Walkar   A Laptop      checkout      58500.00         1
2013-12-19 22:09:26.930000  Walkar   ?             Home                 ?         2
2013-12-19 22:10:09.180000  Walkar   XYZ Laptop    checkout      56500.00         2
2013-12-19 22:10:41.860000  Walkar   Solar A4      checkout      36500.00         2
2013-12-19 22:11:00.040000  Walkar   ABC Tru       checkout      41500.00         2
2013-12-24 22:15:13.600000  Pam      ?             Home                 ?         3
2013-12-24 22:15:42.170000  Pam      home theater  checkout        800.00         3
2013-12-24 22:16:03.520000  Pam      TV 52inch     checkout        700.00         3
2013-12-25 22:12:20.890000  Julia    ?             Home                 ?         4
2013-12-25 22:12:52.820000  Julia    ABC Tru       checkout      41000.00         4
2013-12-25 22:13:11.720000  Julia    myphone 3     checkout      47000.00         4
2013-12-26 22:13:54.150000  Doug     ?             Home                 ?         5
2013-12-26 22:14:13.000000  Doug     myphone 3     checkout        250.00         5