Crear un conjunto de datos con la API REST de Power BI y asociarlo con un conector personalizado

Un usuario Pregunto ✅

denodolabs

Hola,

Me gustaría saber si actualmente es posible crear un conjunto de datos asociado con una fuente de datos que tenga «Extensión» como «tipo de fuente de datos» con la API REST de Power BI (es un conector personalizado certificado en Power BI).

Usando la API REST, he podido crear una fuente de datos, estableciendo mi conector personalizado como el tipo de fuente de datos. Sin embargo, cuando intento crear un conjunto de datos, aparece un error.

Cuerpo de la solicitud:
{
«nombre»: «ds_TestingREST02»,
«defaultMode»: «Transmisión Push»,
«fuentes de datos»: [
        {
            «datasourceId»: «fef544ac-20b6-46ea-8a5a-1a7cc1c37217»,
            «datasourceType» : «Extension»,
            «gatewayId»: «52bbd773-b6c2-4b86-a6f0-e8a15551bc03»
        }
    ],
«mesas»: []
}

Error:
{
«error»: {
«código»: «Solicitud no válida»,
«mensaje»: «Falló la deserialización de TOM para la base de datos sobe_wowvirtualserver|5f76fabc-8536-4100-83fb-a9e969fcb364, Excepción: Propiedad JSON no reconocida: orígenes de datos. Verifique la ruta ‘fuentes de datos’, línea 1, posición 72. «
}
}

También he visto en algunas respuestas que DirectQuery a través de la API REST no es compatible. ¿Significa esto que aunque puedo crear un conjunto de datos asociado con mi fuente de datos, no podría aprovechar este modo?

Gracias.

Hola @denodolabs,

¿Podría comprobar si el cuerpo de origen es correcto?

«datasourceId»: «fef544ac-20b6-46ea-8a5a-1a7cc1c37217»,
«datasourceType»: «Extensión»,
«id de puerta de enlace»: «52bbd773-b6c2-4b86-a6f0-e8a15551bc03»

Aquí hay una referencia relacionada.

Revisé varios documentos y parece que hay trucos sobre el uso de la API en la consulta directa.

A continuación se muestra la referencia.

https://www.progress.com/tutorials/odbc/directquery-your-custom-rest-api-in-power-bi

Atentamente,
Kelly
¿Respondí tu pregunta? ¡Marca mi publicación como una solución!

Atentamente,
Kelly
¿Respondí tu pregunta? ¡Marca mi publicación como una solución!

denodolabs

En respuesta a v-kelly-msft

Hola Kelly,

De acuerdo con la documentación (https://docs.microsoft.com/en-us/rest/api/power-bi/pushdatasets/datasets_postdataset#datasource), puede insertar un conjunto de datos asociado con fuentes de datos agregando la propiedad de fuentes de datos en el cuerpo de la solicitud. . Esta propiedad es una matriz de origen de datos (https://docs.microsoft.com/en-us/rest/api/power-bi/pushdatasets/datasets_postdataset#datasource). Un origen de datos de Power BI tiene varias propiedades, incluidos datasourceId, datasourceType y gatewayId. He comprobado que los valores de Id son correctos. El datasourceType es «Extension» porque este parece ser el valor apropiado para las fuentes de datos que hacen referencia a conectores personalizados.

De todos modos, he realizado pruebas como:

{
«nombre»: «ds_TestingREST02»,
«defaultMode»: «Transmisión Push»,
«fuentes de datos»: [
        {
            «datasourceId»: «fef544ac-20b6-46ea-8a5a-1a7cc1c37217»,
            «gatewayId»: «52bbd773-b6c2-4b86-a6f0-e8a15551bc03»
        }
    ],
«mesas»: []
}

o

{
«nombre»: «ds_TestingREST02»,
«defaultMode»: «Transmisión Push»,
«fuentes de datos»: [
        {
            «datasourceId»: «fef544ac-20b6-46ea-8a5a-1a7cc1c37217»
        }
    ],
«mesas»: []
}

En estos escenarios me sale el mismo error:

{
«error»: {
«código»: «Solicitud no válida»,
«mensaje»: «Falló la deserialización de TOM para la base de datos sobe_wowvirtualserver|dd13a16e-b75b-4cf9-87a4-913253295b7c, Excepción: Propiedad JSON no reconocida: orígenes de datos. Verifique la ruta ‘fuentes de datos’, línea 1, posición 72. «
}
}

Por todas estas razones, tengo dudas sobre si es posible crear un dataset asociado a una fuente de datos de tipo «Extension» (una fuente de datos que apunta a un servidor local a través del Gateway usando un conector personalizado certificado).

En respuesta a denodolabs

Hola @denodolabs,

Revisé los documentos sobre la API y descubrí que no puede definir la fuente de datos en la API que no está permitida, en la API, solo puede definir la tabla y su nombre, en la tabla, puede definir columnas, medidas, nombre y filas. Entonces mejor elimine la definición sobre la fuente de datos y verifique si funciona.

Aquí está la referencia: https://docs.microsoft.com/en-us/rest/api/power-bi/pushdatasets/datasets_postdataset#datasource


Atentamente,
Kelly
¿Respondí tu pregunta? ¡Marca mi publicación como una solución!

denodolabs

En respuesta a v-kelly-msft


Revisé los documentos sobre API y descubrí que no puede definir la fuente de datos en API que no está permitida


¿Significa esto que no es posible crear un conjunto de datos con una fuente de datos asociada para obtener los datos a través de él? Tenga en cuenta que no quiero definir la fuente de datos mientras defino el conjunto de datos, solo quiero agregar la referencia a mi fuente de datos (creada previamente con la API) para tener un conjunto de datos con datos provenientes de una fuente de datos a través de Gateway.

De acuerdo con la documentación, cuando publica un conjunto de datos, puede agregar una propiedad de «fuentes de datos» en el cuerpo de la solicitud (https://docs.microsoft.com/en-us/rest/api/power-bi/pushdatasets/datasets_postdataset#request -cuerpo). Se supone que esto le permite establecer las fuentes de datos asociadas con este conjunto de datos. Así que esto es lo que estaba tratando de usar para crear un conjunto de datos, usando la API, a partir de los datos que obtengo a través de un conector personalizado certificado en mi Gateway. Tal vez esta no sea la forma correcta de especificar lo que necesito. Estaré agradecido por cualquier ayuda que pueda proporcionar.

Además, intenté crear conjuntos de datos sin fuentes de datos usando la API y funciona, pero eso no cubre mi escenario. Necesito que los datos provengan de una fuente de datos.

Gracias.

denodolabs

En respuesta a denodolabs

También me gustaría mencionar que una de las cosas que me hace dudar sobre la capacidad de la API para mi escenario es la propiedad defaultMode y sus posibles valores. Según la documentación (https://docs.microsoft.com/en-us/rest/api/power-bi/pushdatasets/datasets_postdataset#datasetmode), los valores son AsAzure, AsOnPrem, Push, PushStreaming y Streaming. A primera vista, puede parecer que lo que necesito es un conjunto de datos de AsOnPrem, pero la descripción dice «Un conjunto de datos con una conexión en vivo al servicio de análisis local». Como no estoy trabajando con Analysis Service, entiendo que no me funcionaría.

Prueba:
{
«nombre»: «prueba del conjunto de datos»,
«modopredeterminado»: «AsOnPrem»,
«fuentes de datos»: [
        {
            «connectionDetails»: «{«extensionDataSourceKind»:»DenodoForPowerBI»,»extensionDataSourcePath»:»{\»DSN\»:\»DenodoODBC\»}»}»,
            «gatewayId»: «52bbd773-b6c2-4b86-a6f0-e8a15551bc03»
        }
    ],
«mesas»: []
}

Error:
{
«error»: {
«código»: «Error en la deserialización del conjunto de datos»,
«pbi.error»: {
«código»: «Error en la deserialización del conjunto de datos»,
«parámetros»: {},
«detalles»: [],
«excepción culpable»: 1
}
}
}

Por tanto, entre el resto de opciones, el modo Push parece ser el más adecuado. Sin embargo, al configurar este tipo, ¿se puede conectar un conjunto de datos a través de la puerta de enlace para obtener sus datos de un conector personalizado?

En el ejemplo anterior, si configuro «Push» en lugar de «AsOnPrem», obtengo el mismo error.

Gracias.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *