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
- Instalación de Teradata AppCenter Python SDK
- Opcional: Descarga del paquete de dependencias de Teradata AppCenter Python SDK
- Opcional: Instalación del paquete de dependencias de Teradata AppCenter Python SDK sin conexión
- Inicialización del cliente de Teradata AppCenter SDK
- API públicas compatibles con Teradata AppCenter Python SDK
- Empaquetar la aplicación personalizada
- Licencia
Descarga del paquete de Teradata AppCenter Python SDK
Debe tener una cuenta de usuario de Teradata para poder acceder al paquete de Python SDK.
- Vaya a https://access.teradata.com y, a continuación, inicie sesión.
- En DOWNLOADS(DESCARGAR), seleccione Update Your Software(Actualizar su software).
- En Search Downloads(Buscar descargas), busque
teradata-appcenter-python-sdk
. - 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.
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.
- Vaya a https://access.teradata.com y, a continuación, inicie sesión.
- En Search Teradata Support(Buscar en soporte de Teradata), DOWNLOADS (DESCARGAR), seleccione Update Your Software (Actualizar su software).
- En Search Downloads (Buscar descargas), busque
teradata-appcenter-python-sdk-with-deps
. - 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.
- 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
- 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.