Nuevo en BI. Escribir consultas SQL para analizar datos. Obviamente me estoy perdiendo algo.

Un usuario Pregunto ✅

aspardo

Comencé a usar Power BI por recomendación de un amigo. Se ve bien hecho y poderoso, así que espero seguir con él.

Soy bastante decente con SQL y puedo escribir algunas consultas extensas. Mi objetivo es el siguiente:

1) Extraiga datos de la base de datos

2) Escribir consultas en power BI

3) Publique paneles / informes basados ​​en esas consultas

Me he conectado a nuestra base de datos, así que el paso 1 está terminado.

En lo que estoy atascado es dónde / cómo escribir consultas SQL reales. Quiero poder escribir una consulta como SELECT * FROM shop WHERE X LIMIT 100 y simplemente escupir los datos, para poder manipularlos, ponerlos en paneles y crear gráficos, para luego poder presionarlos a la nube.

@aspardo Otra opción aquí que no se ha mencionado, y que recomendaría antes de realizar consultas o mashups en Power BI sería reducir su conjunto de datos a solo la información que necesita creando una capa en su base de datos SQL con Vistas . Luego, puede simplemente conectarse a esas vistas desde Power BI y no tiene que preocuparse por tratar de recortar las cosas después de que ya haya importado o tener que lidiar con escribir la consulta desde el editor.

Esta práctica también será muy útil al agregar o modificar su conjunto de datos, ya que tiene esta capa adicional.

KHorseman

En términos generales, no escribe consultas SQL en Power BI. Puede incrustarlos en una consulta, pero normalmente no es necesario. Crea consultas en el editor de consultas. Debido a que Power BI puede conectarse a muchas otras fuentes además de SQL, tiene su propio idioma. Cuando corresponda, se traducirá a SQL detrás de escena por sí solo. Para su ejemplo, se conectaría a su base de datos SQL en el editor de consultas, elegiría la tabla llamada tienda, luego elegiría las columnas y agregaría los filtros que desee. Su base de datos recibirá la consulta SQL necesaria.

Aquí están los conceptos básicos: https://powerbi.microsoft.com/en-us/blog/pull-data-from-sql-server-with-power-bi-designer/

Hay muchos más recursos disponibles en línea para guiarlo a través del proceso, pero si tiene preguntas específicas, siempre puede hacerlas aquí.

Baskar

Le sugiero que vaya al Documento que tenemos en el sitio de Power Bi, Allí obtendrá el conocimiento profundo.

Si no pregunta paso a paso lo que quieres …

aspardo

En respuesta a Baskar

Gracias por la rápida respuesta. Mi publicación original no está claro sobre lo que necesito. Déjame intentar de nuevo.

Cuando necesito adquirir datos y manipularlos, hago lo siguiente:

1) Interfaz abierta como HeidiSQL

2) Conectarse a la base de datos

3) Consultar base de datos, refinar la consulta tantas veces como sea necesario

4) Extraiga datos en Excel

5) Manipule los datos aún más con Excel.

6) Cree gráficos utilizando datos, tablas dinámicas, etc.

Por lo que entendí, Power BI me permitiría realizar los pasos anteriores, pero todo está contenido en Power BI. Quiero conectar la base de datos, consultar y refinar mis consultas, y luego obtener datos que puedo construir algunos gráficos y cuadros de mando bonitos con Power BI.

Estoy confundido sobre cómo funciona exactamente la parte de la consulta.

KHorseman

En respuesta a aspardo

Estás casi en lo correcto; puede obtener el resultado de todos esos pasos en Power BI, pero los pasos en sí son diferentes. La consulta, el refinamiento y la manipulación simplemente no están escritos en SQL. Power Query tiene su propio lenguaje que cubre todos los tipos de conexiones, consultas y transformaciones que puede realizar. Esto incluye conectarse a una base de datos SQL. Nunca escribe ningún SQL usted mismo *, sino que crea consultas en el editor de consultas de Power BI. El analizador de consultas de Power BI pasará cualquier código SQL en segundo plano cuando sea necesario. Simplemente presione Obtener datos y elija su fuente para conectarse, luego edite la consulta desde allí. En su caso, Obtener datos> SQL Server, escriba el nombre de su servidor, proporcione las credenciales cuando le pregunte …

Cuando se conecta a una fuente de SQL Server en el editor de consultas de Power BI, obtiene una ventana que le permite elegir una base de datos, luego elegir una tabla y luego editar la consulta resultante. Si simplemente cargara la tabla sin realizar más modificaciones, Power BI enviaría un SELECT * FROM tablename sin que usted lo escribiera. Si, en cambio, edita la consulta y presiona Eliminar columnas, puede elegir de un menú solo las Columnas X, Y y Z. Luego, diga que solo desea los registros donde la Columna X es igual a 100. Debería elegir 100 del menú desplegable de filtros del encabezado de la Columna X como si estuviera filtrando una tabla en Excel. Cuando cargue la consulta resultante, su servidor SQL debería recibir una consulta que diga SELECCIONAR ‘Columna X’, ‘Columna Y’, ‘Columna Z’ DESDE el nombre de la tabla DONDE ‘Columna X’ = 100

* Técnicamente, puede incrustar su propia consulta SQL manuscrita en una declaración de origen en una consulta de Power BI, pero no lo haga. A veces lo hago, pero solo como último movimiento de desesperación cuando trabajo con una base de datos mal diseñada. Generalmente no se recomienda. Power Query hace algo llamado plegado de consultas, que es el proceso de creación de esa declaración SQL generada internamente. Escribir el tuyo a menudo resulta en una consulta menos eficiente que dejar que haga lo suyo. Además, Power Query es una herramienta de combinación de consultas, por lo que si está mezclando varios medios (por ejemplo, haciendo una combinación entre una tabla SQL y una hoja de cálculo de Excel, luego ejecuta parte del resultado en un servicio de Azure Machine Learning, todo en la misma consulta ) puede hacer su vida más difícil si intenta escribir su propio SQL allí.

KHorseman

En respuesta a KHorseman

Pregunta rápida para asegurarme de que no solo estoy asumiendo: está utilizando el programa Power BI Desktop y no solo el servicio del sitio web de Power BI, ¿verdad?

aspardo

En respuesta a KHorseman

escritorio

En respuesta a aspardo

Si desea escribir sus consultas SQL, es bastante simple:

Untitled.png

Sin embargo, como dijo KHorseman, nuestro software maneja muchas operaciones de consulta (filtrar, unir, diferenciar, agrupar, etc.) que hace con botones y las convierte en consultas SQL. 🙂

aspardo

En respuesta a arificar

Gracias por estas detalladas respuestas. Realmente lo aprecio.

1) Puse las credenciales de la base de datos en el área de captura de pantalla que vinculó. Escribo la consulta en el área de instrucciones SQL, pero no en SQ normal, sino en Power Query Formula Language.

2) Una vez que esa información se ingresa en BI, no puedo cambiar la estructura de la consulta y obtener nuevos datos y tengo que comenzar el proceso de nuevo. En otras palabras, puedo poner la consulta una vez y seguir con eso.

3) ¿Supongo que la consulta puede vincular varias tablas juntas? Por ejemplo, SELECCIONAR * DE los clientes LEFT JOIN account.customer_id_ = customers.id DONDE clientes. id> 1000

4) KHorseman mencionó que BI puede manejar muchas operaciones de consulta. ¿Qué beneficios potenciales hay al usar los botones en lugar de escribir la consulta y obtener los datos exactos que necesito?

anithat

En respuesta a aspardo

Hola @aspardo

En las opciones de consulta avanzada, escriba la consulta en el formato que acepta su base de datos. No es necesario modificarlo según el formato powerBI.

En general, es posible que esté utilizando alguna herramienta de terceros para ejecutar sus consultas y verificar los datos. Utilice la misma consulta en el mismo formato: solo COPIE y PEGUE esa consulta en las opciones de consulta avanzadas de Power BI Desktop.

PowerBI lo convierte a su formato legible.

Además, en cualquier momento si desea cambiar la consulta, entonces

1> Ir a Editar consultas

2> Elija la consulta

3> En el lado derecho, haga doble clic en ‘Fuente’ en Pasos aplicados

4> Modificar la consulta

5> Guardar

Si tiene más problemas, hágamelo saber.

newpi

En respuesta a anithat

Hola @anithat ¿Tienes curiosidad por saber cómo funciona esto? Estoy enfrentando un problema similar. He creado una consulta en el cliente mysql y quiero copiar y pegar esto. Mis preguntas son:

1) ¿Primero tengo que conectarme a las tablas de origen y carga? o

2) ¿Escribe la consulta en el editor avanzado y luego se conecta a la fuente? Confundido cómo funciona.

calerof

En respuesta a anithat

Hola @anithat y equipo de apoyo, @ElizabethTachji,

Realicé su procedimiento, solo modificando la consulta a la tabla que necesito, de la siguiente manera:

Consulta personalizada 1.png

Pero sigo recibiendo este error:

Consulta personalizada 2.png

¿Podrias ayudarme por favor?

Atentamente,

Fernando

alwweb

En respuesta a calerof

@ BB9

Si está moviendo todos los datos requeridos a una sola tabla en otra base de datos usando una sola consulta o proceso almacenado, simplemente puede poner esa consulta o ejecución de ese procedimiento almacenado en el área de opciones de consulta cuando expande Avanzado durante la importación. Aquí es donde va una consulta SQL. Después de las pantallas de importación, cuando esté en el paso Fuente y vaya al Editor avanzado en el Editor de Power Query, aquí sería donde escribiría una consulta M para limitar los datos que se ingresan.

Finalmente, puede crear una vista en la misma base de datos que las tablas y escribir una declaración SQL para recuperar los datos de la vista.

Tener los índices SQL adecuados en la base de datos de origen ayudará drásticamente al rendimiento.

Por favor, avíseme si algo de esto ayuda.

@calerof

No estoy seguro de si vio mi respuesta anterior a su pregunta, pero está tratando de poner una consulta M donde se supone que debe ir la consulta SQL. Debería colocar esta consulta en la consulta avanzada de la fuente de datos después de que se haya realizado la importación cuando esté en el Editor de Power Query, con la tabla grande en la que desea limitar la importación resaltada en el lado izquierdo y el paso de la cadena de conexión seleccionado en en el lado derecho, haga clic en Editor avanzado como se muestra a continuación …

2020-05-26_13-01-08.jpg

La otra opción sería escribir la declaración SQL de la siguiente manera si usa MS SQL Server como fuente (otras fuentes tienen una sintaxis diferente)

SELECCIONAR * –o enumere los nombres de las columnas que desee

DESDE dbo.RIN1

DONDE DocDate> ‘20171231’;

Por favor, avíseme si esto ayuda. Sé que ha pasado un tiempo desde que se publicaron las preguntas originales.

RuiRamos

En respuesta a alwweb

¿Cómo puedo editar la consulta cuando uso el conector de BigQuery?

El conector de bigQuery solo me permite seleccionar una tabla, pero necesito hacer un sql diferente para correlacionar 2 tablas con varios gigabytes de datos. El resultado tiene solo 3800 filas y eso es lo que quiero llevar a powerBI.

No puedo cambiar mis conexiones odbc, pero puedo usar el conector de BigQuery.

¿Puedo editar SQL en el editor avanzado de PowerQuery?

Muchas gracias

newpi

En respuesta a RuiRamos

@RuiRamos No está claro si está haciendo una pregunta. Por lo que tengo entendido, desea fusionar dos tablas usando una consulta en Big Query y traer solo los datos correctos, que son 3800 filas. Lo que puede hacer es escribir su consulta SQL en Google BQ Console y luego guardar esos datos como una vista en un proyecto. Luego, en Power BI, conéctese a esa vista en lugar de a esas 2 tablas.

RuiRamos

En respuesta a newpi

Gracias por la respuesta rápida @newpi.

Sé que puedo proceder como lo describiste. Mi pregunta es si hay alguna manera de especificar el SQL en la configuración del conector.

Como ejemplo, para Oracle podemos escribir en el editor avanzado:

dejar
Fuente = Oracle.Database («dbHost / db»,[HierarchicalNavigation=true, Query=»select field from table where condition»] )
en
Fuente

Puedo hacer el lo mismo con el conector de bigquery? ¿Cómo? Intenté lo mismo pero el «Consulta«el parámetro no funciona 😞

Estoy usando:

dejar

Fuente = GoogleBigQuery.Database ([BillingProject=»projectid»])
{[Name=»projectid»]}[Data]
{[Name=»myDataset»,Kind=»Schema»]}[Data]

{[Name=»myTable»,Kind=»Table»]}[Data]

en

Fuente

La documentación no es clara ni no se pueden encontrar las posibles opciones para el conector.

Gracias a todos

alwweb

En respuesta a calerof

@calerof. En este punto del proceso, su consulta debe ser SQL. Está en M que se usa un poco más adelante en el proceso.

Intente lo siguiente y reemplace su nombre de tabla por el nombre de la tabla que desea recuperar. Una vez que tenga eso funcionando, puede ir desde allí para obtener exactamente los datos que desea.

SELECCIONAR LOS 100 MEJORES *

DE yourtablemame;

calerof

En respuesta a calerof

El problema que se indica aquí persiste para mí, pero logré resolver mi problema de no poder cargar en la tabla que no aparecía de la siguiente manera:

  1. La base de datos tiene más de 10,000 tablas.
  2. En SSMS todas las tablas son visibles
  3. Deduje después de una semana muy larga de insomnio que el problema era el límite de número de tablas leídas con Get Data, SQL Server
  4. Así que probé el procedimiento explicado anteriormente, sin resultados.
  5. Luego lo probé con la opción de consulta en blanco y listo.

Creo que aún no se ha resuelto con las Opciones avanzadas, así que lo dejaré abierto para sus comentarios.

Atentamente,

Fernando

KHorseman

En respuesta a aspardo

1) No, ese cuadro de declaración SQL es en realidad para declaraciones SQL como normalmente escribiría, no para el lenguaje Power Query (se llama M. Solo lo voy a llamar así ahora). En general, no se recomienda usar esa función en absoluto. Ni siquiera tiene que escribir fórmulas en lenguaje M usted mismo. Los botones los generan. Si te sientes ambicioso, puedes escribirlos tú mismo, pero rara vez es necesario a menos que estés haciendo cosas realmente locas.

2) Simplemente conéctese a su base de datos y elija una tabla. Puede meterse con la consulta en el editor de consultas desde allí. Ahí es donde harías cosas como elegir columnas específicas o filtrar filas.

3) Sí, esto se hace fusionando consultas en el editor de consultas.

4) El uso de los botones le proporciona los datos exactos que necesita. El orden de las operaciones es simplemente diferente al que está acostumbrado.

Secundo la recomendación de opinión de @ Seth_C_Bauer. Ojalá tuviera esa opción en mi situación actual.

aspardo

En respuesta a KHorseman

1) No, ese cuadro de declaración SQL es en realidad para declaraciones SQL como normalmente escribiría, no para el lenguaje Power Query (se llama M. Solo lo voy a llamar así ahora). En general, no se recomienda usar esa función en absoluto. Ni siquiera tiene que escribir fórmulas en lenguaje M usted mismo. Los botones los generan. Si te sientes ambicioso, puedes escribirlos tú mismo, pero rara vez es necesario a menos que estés haciendo cosas realmente locas.

¿Está desaconsejando filtrar los datos a través de SQL antes de que cargue los datos en Power BI? ¿Debo filtrar los datos después de que estén en Power BI a través de M o las herramientas de consulta visual?

Deja un comentario

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