Guía del usuario de Teradata AppCenter Python SDK - Teradata AppCenter

Guía del usuario de Teradata AppCenter Python SDK

Product
Teradata AppCenter
Release Number
-NA-
Language
Español
Last Update
2019-06-18
dita:id
B035-1119
Product Category
Analytical Ecosystem

Teradata AppCenter Python SDK proporciona varias API para crear aplicaciones Python que se usarán con Teradata AppCenter.

Contenido

Descarga del paquete de Teradata AppCenter Python SDK

Debe tener una cuenta de usuario de Teradata para poder acceder al paquete de Python SDK.

  1. Vaya a https://access.teradata.com y, a continuación, inicie sesión.
  2. En DOWNLOADS(DESCARGAR), seleccione Update Your Software(Actualizar su software).
  3. En Search Downloads(Buscar descargas), busque teradata-appcenter-python-sdk.
  4. Descargue el Python SDK asociado a su versión de AppCenter.

Instalación de Teradata AppCenter Python SDK

Si ha instalado Python con un instalador de python.org o con Homebrew, debería tener ya pip.

Nota: Durante la instalación, pip accede a Internet para recuperar dependencias de Python SDK. Si no quiere que pip acceda a Internet, deberá descargar e instalar el paquete de dependencias de Python SDK antes de instalar Teradata AppCenter Python SDK.

  1. Use pip para instalar Teradata AppCenter Python SDK:

     pip install teradata-appcenter-python-sdk-<version_num>.tar.gz
    

Opcional: Descarga del paquete de dependencias de Teradata AppCenter Python SDK

Si no desea que pip acceda a Internet, deberá descargar e instalar el paquete de dependencias antes de instalar el paquete de Teradata AppCenter Python SDK.

Debe tener una cuenta de usuario de Teradata para poder acceder al paquete de dependencias de Python SDK.

  1. Vaya a https://access.teradata.com y, a continuación, inicie sesión.
  2. En Search Teradata Support(Buscar en soporte de Teradata), DOWNLOADS (DESCARGAR), seleccione Update Your Software (Actualizar su software).
  3. En Search Downloads (Buscar descargas), busque teradata-appcenter-python-sdk-with-deps.
  4. Descargue el paquete de dependencias asociado a su versión de AppCenter.

Opcional: Instalación del paquete de dependencias de Teradata AppCenter Python SDK sin conexión

Si ha descargado el paquete de dependencias de Teradata AppCenter Python SDK, instálelo mediante los siguientes comandos:

tar -xvf teradata-appcenter-python-sdk-with-deps-<version_num>.tar.gz

pip install --no-index --find-links=teradata-appcenter-python-sdk-<version_num>/.deps -r teradata-appcenter-python-sdk-<version_num>/requirements.txt

pip install teradata-appcenter-python-sdk-with-deps-<version_num>.tar.gz

Inicialización del cliente de Teradata AppCenter SDK

Antes de poder usar Teradata AppCenter Python SDK, deberá iniciar el cliente de Teradata AppCenter.

  1. Utilice uno de los métodos siguientes para inicializar el cliente:
Método Ejemplo de código Consideraciones
import y crear un cliente from appcenter_sdk.client import AppContext
from appcenter_sdk.client import DefaultAppCenterClient
import logging

with DefaultAppCenterClient() as client:
Toda la información de contexto se inicializa desde variables de entorno.
Crear e inicializar un cliente con AppContext* appContext = AppContext(app_center_base_url=
'https://appcenter.example.com',
system='aster-system'

with DefaultAppCenterClient(appContext) as client:
Ninguno

Variables para AppContext

Puede utilizar las siguientes variables para crear AppContext:

Variable Descripción Ejemplo
system Nombre de origen de datos "****-system"
database Nombre de base de datos "appcenter-examples"
user Nombre de usuario para acceder al origen de datos "user"
password Contraseña para acceder al origen de datos "pass"
catalog Catálogo para el sistema Presto "hive"
schema Esquema para el sistema Presto "default"
Job_config Parámetros de trabajo {"param1":"value", "param2":"value"}
app_config Definiciones de parámetros de aplicación {"param1":{"type":"text","default_value":"default","required":false}}
result_config Configuraciones de visualización {"query1":{"name":"query1","type":"sankey","format":"npath"}}
app_center_base_url URL base de instancias de AppCenter "https://appcenter.example.com"

API públicas compatibles con Teradata AppCenter Python SDK

Teradata AppCenter Python SDK admite las siguientes API públicas:

API Versiones compatibles con Teradata AppCenter
audit AppCenter 1.3 - 1.8
cache_result AppCenter 1.3 - 1.8
get_systems AppCenter 1.3 - 1.8
log AppCenter 1.3 - 1.8
query AppCenter 1.3 - 1.8
query_streaming AppCenter 1.4 - 1.8
send_notification AppCenter 1.3 - 1.8
set_context AppCenter 1.4 - 1.8

audit API

Propósito

La API audit registra eventos importantes, como la actividad del usuario.

Ejemplo de código Python

client.audit(audit_event='TEST', message='Test message', result=True, details='this is a test message')

cache_result API

Propósito

La API cache_result almacena en caché el resultado de la consulta o de la visualización para que pueda verlo o compartirlo con otros usuarios. La API cache_result toma los resultados como cadena o como flujo de datos (generador u objeto similar a un archivo). En el caso de resultados grandes, Teradata recomienda que utilice un flujo de datos para reducir el consumo de memoria.

Los resultados del trabajo están disponibles durante 30 días a partir del momento en que se generan, después de los cuales, caducan. El usuario raíz puede cambiar la opción predeterminada a un valor entre 1 y 365 días en Configuración, en la IU.

Ejemplos de código Python

Almacenamiento en caché del resultado de cadena:

client.cache_result(query_result, 'application/json')
client.cache_result(visualized_result, 'text/html')

Almacenamiento en caché del resultado de flujo de datos:

client.cache_result(query_result_stream, 'application/json', stream=True)
client.cache_result(visualized_result_stream, 'text/html', stream=True)

get_systems API

Propósito

La API get_systems recupera los nombres de los sistemas disponibles de AppCenter.

Ejemplo de código Python

available_systems = client.get_systems()

log API

Propósito

La API log registra mensajes informativos o de error asociados a la aplicación. Los mensajes forman parte de los registros de aplicación disponibles en Desarrollar, en la IU.

Ejemplos de código Python

Ejemplo de mensaje informativo:

client.log(logging.INFO, message)

Ejemplo de mensaje de error:

client.log(LogLevel: ERROR, INFO, message)

query API

Propósito

La API query consulta a sistemas Teradata Database, Teradata Vantage, Aster Database, Presto y Hive, y devuelve los resultados como una cadena JSON.

Ejemplo de código Python

Invocación de llamada a API query:

query_result = client.query(query='select issue as term , count ( * ) as tf_idf from consumer_complaints group by issue')

Ejemplo de resultado

En el ejemplo siguiente, la sección "columns" del JSON generado contiene metadatos de columna que describen el nombre y el tipo de cada columna. La sección "data" contiene datos de la consulta.

{
  "queueDuration": 33,
  "queryDuration": 47646,
  "results": [
    {
      "resultSet": true,
      "columns": [
        {
          "name": "issue",
          "type": "varchar"
        },
        {
          "name": "issue_count",
          "type": "bigint"
        }
      ],
      "data": [
        {
          "issue": "APR or interest rate",
          "issue_count": 125
        },
        {
          "issue": "Account opening, closing, or management",
          "issue_count": 804
        },
        ……
      ]
    }
  ]
}

query_streaming API

Propósito

La API squery_streaming consulta a sistemas Teradata Database, Teradata Vantage, Aster Database, Presto y Hive, y devuelve los resultados como un InputStream.

La API query_streaming debe invocarse con un bloque "with". Si intenta invocarla directamente, se producirá un error.

Ejemplo de código Python

Invocación de llamada a API query:

with client.query_streaming(query) as iter:
     for data in iter:
         if data:
             decoded_line = data.decode('utf-8')
             client.log(logging.INFO, decoded_line)

Ejemplo de resultado

En el ejemplo siguiente, la sección "columns" del JSON generado contiene metadatos de columna que describen el nombre y el tipo de cada columna, y la sección "data" contiene datos de la consulta.

{
  "queueDuration": 33,
  "queryDuration": 47646,
  "results": [
    {
      "resultSet": true,
      "columns": [
        {
          "name": "issue",
          "type": "varchar"
        },
        {
          "name": "issue_count",
          "type": "bigint"
        }
      ],
      "data": [
        {
          "issue": "APR or interest rate",
          "issue_count": 125
        },
        {
          "issue": "Account opening, closing, or management",
          "issue_count": 804
        },
        ……
      ]
    }
  ]
}

send_notification API

Propósito

Si el usuario raíz ha configurado una cuenta de correo electrónico en Configuración, en la IU, la API send_notification envía notificaciones por correo electrónico a los propietarios de la aplicación y del trabajo.

Ejemplo de código Python

client.send_notification(subject, msg)

set_context API

Propósito

La API set_context cambia el contexto de una instancia de cliente existente. Se utiliza principalmente con la API get_systems para establecer un nuevo sistema en el contexto del cliente.

Ejemplo de código Python

context = AppContext(system=new_system_name,
                     user=****,
                     password=****)

client.set_context(context)

Empaquetar la aplicación personalizada

  1. Utilice el siguiente archivo Docker de ejemplo para crear la imagen de Docker de su aplicación personalizada:
FROM python:3.5-alpine

COPY teradata-appcenter-python-sdk-1.4.tar.gz .
COPY app.py .

RUN apk add --update python3
RUN pip3 install teradata-appcenter-python-sdk-1.4.tar.gz

CMD [ "python3", "app.py" ]

Cada valor de las etiquetas es el nombre de una configuración de visualización para la configuración del resultado de la aplicación e identifica una visualización única asociada con la configuración del resultado.

Las etiquetas múltiples deben ser una lista de palabras completas separadas por comas y sin espacios en blanco, ni al principio ni al final.

Licencia

Copyright (C) 2016-2019 by Teradata Corporation.