Sintaxis de SELECT y el conector de Teradata - Teradata QueryGrid

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

Deployment
VantageCloud
VantageCore
Edition
Enterprise
IntelliFlex
Lake
VMware
Product
Teradata QueryGrid
Release Number
3.00
Published
Marzo de 2023
Language
Español
Last Update
2023-04-04
dita:mapPath
es-ES/dtm1676313130103.ditamap
dita:ditavalPath
ft:empty
dita:id
B035-5991
Product Category
Analytical Ecosystem

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 cuando se utiliza SQL Engine 16.20 o una versión posterior. 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. 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.

La cláusula RETURNS tiene efecto cuando los tipos de importación y devolución pertenecen al siguiente grupo:
  • Tipos de CHAR: Char, Varchar, Clob, Matriz de Char/Varchar
  • Tipos de byte: Byte, Varbyte, Blob
Consideraciones sobre la cláusula RETURNS:
  • El tipo de datos devueltos debe ser compatible con el tipo de importación.
  • Solo se admite la matriz unidimensional de Char/Varchar.
  • Si no se admiten los tipos de importación o devolución, la cláusula RETURNS no tiene ningún efecto.
Ejemplos:
SELECT c_vchar FROM testtabl@fs1 RETURNS(c_vchar VARCHAR(2));
SELECT * FROM testtab2@fs1 RETURNS(c_vchar2 VARCHAR(5) CHARACTER SET LATIN);

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