Clonar y volver a enlazar con SQL Server local

Un usuario Pregunto ✅

heit0050

Estoy intentando automatizar el procedimiento de «clonar y volver a vincular» con un informe que está conectado a través de DirectQuery a una base de datos del servidor SQL local. Somos un ISV y cada cliente está en su propia base de datos. Cada vez que incorporamos a un nuevo cliente, el objetivo sería:

1) Configure una nueva fuente de datos en la puerta de enlace (he completado con éxito este paso)

2) Configure un nuevo conjunto de datos para conectarlo a la fuente de datos anterior (aquí es donde estoy atascado)

3) Quizás use BindToGateway para conectar estos dos

4) Use la llamada CloneReport para duplicar nuestra plantilla de informe y conectarla al nuevo conjunto de datos (he podido hacer esto con éxito si creo manualmente el conjunto de datos)

Me parece que falta un valor de enumeración para la propiedad «Modo predeterminado» en el objeto Dataset. Estas son las opciones a día de hoy:

‘AsAzure’, ‘AsOnPrem’, ‘Push’, ‘Streaming’, ‘PushStreaming’

Siento que necesitamos un «SqlOnPrem» para hacer lo que quiero. Parece claro que se puede hacer, ya que se crea un conjunto de datos durante la importación de un archivo pbix que se conecta a la puerta de enlace y luego al servidor SQL local.

En respuesta a heit0050


@heit0050 escribió:

¡Gracias por la respuesta, Erick! Gracias también por el código de muestra súper útil para obtener el cifrado de contraseña para configurar la puerta de enlace. Estoy bastante seguro de que nunca lo hubiera descubierto por mi cuenta.

Me había resignado a que nuestro personal creara el nuevo archivo pbix cada vez. Al menos el resto del proceso se puede automatizar. Parece que están muy cerca de permitirnos automatizar el sistema al 100 %. Simplemente no espero con ansias los cientos de clientes existentes que deberán configurarse por primera vez.

Pero con los nuevos archivos pbit, en realidad es bastante rápido. Tal vez algún día nos dejen pasar de pbit -> pbix a través de la línea de comandos de alguna manera. Creé una «idea» para esto si es algo más en lo que otros están interesados:

https://ideas.powerbi.com/forums/265200-power-bi-ideas/suggestions/32484925-powershell-automation-to…

¡Gracias, de nuevo, por toda su ayuda!


@heit0050

Solo tiene que crear el archivo pbix en DirectQuery por primera vez. Si los clientes tienen el mismo conjunto de datos e informe, el archivo pbix se puede reutilizar. Puede importar el archivo pbix y actualizar la cadena de conexión una vez que sea nuevo cliente está a bordo. Entonces, tal vez se pueda hacer una automatización del 100%.

sivanagamahesh

Estoy tratando de mecanizar la técnica de «clonar y volver a vincular» con un informe que está asociado mediante DirectQuery a una base de datos del servidor SQL local. Somos un ISV y cada cliente está en su BD particular. Cada vez que cargamos otro cliente, el objetivo sería:

1) Configure otra fuente de datos en la entrada (he terminado efectivamente esta progresión)

2) Configure otro conjunto de datos asociado con la fuente de datos anterior (este es el lugar donde estoy atrapado)

3) Tal vez utilice BindToGateway para asociar estos dos

4) Use la llamada CloneReport para copiar el diseño de nuestro informe y asociarlo al nuevo conjunto de datos (he tenido la capacidad de hacer esto si creo físicamente el conjunto de datos)

No puedo evitar sospechar que falta una estimación de enumeración para la propiedad «Modo predeterminado» en la protesta del conjunto de datos. Estas son las alternativas a día de hoy:

‘AsAzure’, ‘AsOnPrem’, ‘Push’, ‘Burbuja’, ‘PushStreaming’

Siento que necesitamos un «SqlOnPrem» para hacer lo que necesito. Parece seguro que debería ser posible, ya que se crea un conjunto de datos durante la importación de un archivo pbix que se asocia con la entrada y luego con el servidor SQL local.


@heit0050 escribió:

Estoy intentando automatizar el procedimiento de «clonar y volver a vincular» con un informe que está conectado a través de DirectQuery a una base de datos del servidor SQL local. Somos un ISV y cada cliente está en su propia base de datos. Cada vez que incorporamos a un nuevo cliente, el objetivo sería:

1) Configure una nueva fuente de datos en la puerta de enlace (he completado con éxito este paso)

2) Configure un nuevo conjunto de datos para conectarlo a la fuente de datos anterior (aquí es donde estoy atascado)

3) Quizás use BindToGateway para conectar estos dos

4) Use la llamada CloneReport para duplicar nuestra plantilla de informe y conectarla al nuevo conjunto de datos (he podido hacer esto con éxito si creo manualmente el conjunto de datos)

Me parece que falta un valor de enumeración para la propiedad «Modo predeterminado» en el objeto Dataset. Estas son las opciones a día de hoy:

‘AsAzure’, ‘AsOnPrem’, ‘Push’, ‘Streaming’, ‘PushStreaming’

Siento que necesitamos un «SqlOnPrem» para hacer lo que quiero. Parece claro que se puede hacer, ya que se crea un conjunto de datos durante la importación de un archivo pbix que se conecta a la puerta de enlace y luego al servidor SQL local.


@heit0050

Hasta donde yo sé, no existe tal elemento ‘SqlOnP’. En cuanto a su requisito, el siguiente enfoque puede funcionar

  1. Cree un archivo pbix en modo DirectQuery en Power BI Desktop.
  2. Cada vez que incorporamos un nuevo cliente, importe el archivo pbix a su espacio de trabajo del servicio Power BI como un nuevo informe, vea la demostración de la API o la demostración del SDK.
  3. Actualice la cadena de conexión de ese conjunto de datos con la del nuevo cliente.
  4. Configure un nuevo origen de datos en la puerta de enlace para ese nuevo conjunto de datos importado.
  5. Vincular la fuente de datos a la puerta de enlace no parece necesario. Según mi prueba, una vez que finalizó el paso 4, el conjunto de datos se vincula automáticamente a la puerta de enlace específica.

heit0050

En respuesta a Eric_Zhang

¡Gracias por la respuesta, Erick! Gracias también por el código de muestra súper útil para obtener el cifrado de contraseña para configurar la puerta de enlace. Estoy bastante seguro de que nunca lo hubiera descubierto por mi cuenta.

Me había resignado a que nuestro personal creara el nuevo archivo pbix cada vez. Al menos el resto del proceso se puede automatizar. Parece que están muy cerca de permitirnos automatizar el sistema al 100 %. Simplemente no espero con ansias los cientos de clientes existentes que deberán configurarse por primera vez.

Pero con los nuevos archivos pbit, en realidad es bastante rápido. Tal vez algún día nos dejen pasar de pbit -> pbix a través de la línea de comandos de alguna manera. Creé una «idea» para esto si es algo más en lo que otros están interesados:

https://ideas.powerbi.com/forums/265200-power-bi-ideas/suggestions/32484925-powershell-automation-to…

¡Gracias, de nuevo, por toda su ayuda!

En respuesta a heit0050


@heit0050 escribió:

¡Gracias por la respuesta, Erick! Gracias también por el código de muestra súper útil para obtener el cifrado de contraseña para configurar la puerta de enlace. Estoy bastante seguro de que nunca lo hubiera descubierto por mi cuenta.

Me había resignado a que nuestro personal creara el nuevo archivo pbix cada vez. Al menos el resto del proceso se puede automatizar. Parece que están muy cerca de permitirnos automatizar el sistema al 100 %. Simplemente no espero con ansias los cientos de clientes existentes que deberán configurarse por primera vez.

Pero con los nuevos archivos pbit, en realidad es bastante rápido. Tal vez algún día nos dejen pasar de pbit -> pbix a través de la línea de comandos de alguna manera. Creé una «idea» para esto si es algo más en lo que otros están interesados:

https://ideas.powerbi.com/forums/265200-power-bi-ideas/suggestions/32484925-powershell-automation-to…

¡Gracias, de nuevo, por toda su ayuda!


@heit0050

Solo tiene que crear el archivo pbix en DirectQuery por primera vez. Si los clientes tienen el mismo conjunto de datos e informe, el archivo pbix se puede reutilizar. Puede importar el archivo pbix y actualizar la cadena de conexión una vez que sea nuevo cliente está a bordo. Entonces, tal vez se pueda hacer una automatización del 100%.

heit0050

En respuesta a Eric_Zhang

¡Eso funcionó! Gracias, de nuevo, por toda su ayuda.

Para cualquier otra persona, estos son los pasos aproximados para usar la API de contenedor C# PowerBI V2 Rest:
1) Autenticar (AcquireTokenAsync)

2) Obtenga su puerta de enlace (GetGatewaysAsync)

3) Cree una fuente de datos debajo de su puerta de enlace (CreateDatasourceAsync)

4) Cargue su informe que utiliza DirectQuery en su servidor SQL onPrem (PostImportWithFileAsyncInGroup)

5) Actualice la cadena de conexión en ese nuevo informe (SetAllDatasetConnectionsInGroupAsync)

Deja un comentario

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