es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Actualizando el archivo hiper remoto en Tableau Server.

¿Cómo puedo actualizar un archivo hyper remoto usando tableauhyperapi y tableauserverclient en Python? Por lo que he visto, es posible actualizar un archivo .hyper que está guardado de forma local.
Entonces, he intentado descargar una fuente de datos como archivo .hyper usando tableauserverclient para hacer los cambios en ella y luego publicarla y sobrescribir la antigua que está en Tableau Server.
El problema es que no puedo descargar una fuente de datos como .hyper, solo como .dtsx y desde este archivo no he podido extraer el archivo .hyper.
¿Existe una solución elegante a este problema?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Sí, hay una solución elegante a este problema. Puedes utilizar la biblioteca tableauhyperapi para crear, actualizar y extraer datos directamente de archivos .hyper. Los siguientes pasos te guiarán para actualizar un archivo .hyper remoto utilizando tableauhyperapi y tableauserverclient en Python:

    1. Conéctate al servidor de Tableau: Utiliza la biblioteca tableauserverclient para conectarte al servidor de Tableau.
    import tableauserverclient as TSC
    
    tableau_auth = TSC.TableauAuth('usuario', 'contraseña', 'nombre_sitio')
    server = TSC.Server('tu_url_del_servidor')
    
    # inicia sesión y obtén el objeto del servidor
    server.auth.sign_in(tableau_auth)
    
    1. Obtén la fuente de datos publicada: Recupera la fuente de datos del servidor de Tableau utilizando tableauserverclient.
    # obtén la fuente de datos por nombre
    nombre_fuente_datos = 'nombre_fuente_datos'
    fuente_datos, _ = server.datasources.get()
    fuente_datos = next((d for d in fuente_datos if d.name == nombre_fuente_datos), None)
    
    1. Descarga el archivo .hyper: Descarga el archivo .hyper asociado a la fuente de datos utilizando fuente_datos.download.
    # descarga el archivo hyper
    archivo_hyper = fuente_datos.download()
    
    1. Actualiza el archivo .hyper: Utiliza tableauhyperapi para modificar el archivo .hyper.
    import tableauhyperapi as tabhy
    
    # abre el archivo .hyper
    with tabhy.Connection(archivo_hyper) as connection:
        with connection.cursor() as cursor:
            # realiza las actualizaciones en la(s) tabla(s) del archivo .hyper
            cursor.execute("UPDATE tu_tabla SET nombre_columna = 'nuevo_valor' WHERE nombre_columna = 'valor_antiguo'")
    
    1. Publica la fuente de datos actualizada: Publica la fuente de datos actualizada de nuevo en el servidor de Tableau utilizando tableauserverclient.
    # sobrescribe la fuente de datos existente con el archivo .hyper actualizado
    item_fuente_datos = TSC.DatasourceItem(id=fuente_datos.id)
    fuente_datos_actualizada = TSC.DatasourceItem(item_fuente_datos, filepath=archivo_hyper)
    server.datasources.publish(fuente_datos_actualizada, overwrite=True)
    

    ¡Y eso es todo! Ahora el archivo .hyper remoto en Tableau Server debería estar actualizado con los cambios que realizaste utilizando tableauhyperapi.

Comments are closed.