Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.
Hola a todos
Tengo una tabla SQL > 30 millones de registros (almacenada en una base de datos de Azure). Me gustaría importar solo los registros 10k cuyo ID se puede encontrar en otra tabla que ya está en mi modelo de datos de Power Bi. Importo la tabla externa con una consulta desde el menú Transformar datos:
my_external_table= Sql.Database(parameter_servername, parameter_dbname, [Query=" SELECT record_ID, text FROM external_table WHERE record_ID IN (...) " ])
No sé cómo escribir correctamente esa cláusula WHERE. ¿Hay alguna manera de pasar la columna de mi tabla power bi en la consulta? Como, digamos, ¿guardarlo en un contenedor de algún tipo?
En SQL puro un simple JOIN con la tabla externa en los ID de mi tabla power bi sería suficiente, pero no sé cómo lograr lo que quiero sin tener que importar primero los 30 millones de registros.
EDITAR: También pensé en crear un parámetro con una lista de valores, siendo la lista toda la columna de mi record_IDs. De esta manera debería ser abke para usarlo como argumento para la cláusula IN. Aún así, si voy a Administrar parámetros -> Nuevo parámetro -> Consultar la tabla donde está la lista de IDs no aparece en el menú desplegable. De todo el modelo de datos, solo aparecen 4 tablas.
@s914 , Puede escribir una opción de la consulta en la opción Advance Property, si una vez o hacer referencia
https://community.powerbi.com/t5/Desktop/parameterize-connection/m-p/205900#M90712
https://www.biinsight.com/power-bi-desktop-query-parameters-part-1/
hola @amitchandak, gracias por tu ayuda.
No estoy seguro de entender: si creo un parámetro de mi lista, todavía necesito asignar un valor y, cuando ejecuto la consulta, el parámetro tiene ese valor y se filtrará en función de ese valor solamente. ¿Me estoy equivocando?
En las propiedades avanzadas de la consulta, ¿cómo debo escribir mi consulta para incluir una lista de valores que ya está en el modelo de datos?
editar: permítanme añadir que mi lista es de 10k elementos de largo, por lo que no puedo agregarlo manualmente. Seguí el procedimiento en uno de los artículos que vinculó(haga clic con el botón derecho en la columna -> agregar como nueva consulta -> usarlo para crear un parámetro)pero todavía tengo el problema de que luego tengo que asignar un solo valor al parámetro, por lo que no puedo usarlo en la consulta.
Hola @s914 ,
Pruebe una función personalizada e invoque con una columna que existe.
El código M puede gustar esto:
(Year as number)as table=>
let
Source = Sql.Database("******", "test", [Query="SELECT * FROM test_11#(lf) WHERE Year IN ("&Number.ToText(Year)&")", CreateNavigationProperties=false])
in
Source
Al invocar la consulta, recibirá un mensaje solicitando permiso para ejecutar una consulta de base de datos nativa. Esto es una precaución para advertirle de que se está ejecutando algún SQL que podría realizar cambios en la base de datos.
Esta solicitud de permiso se puede desactivar. Haga clic en Archivo y, a continuación, en Opciones y, a continuación, en Seguridad.
Saludos
Liang
Si este post ayuda, entonces considera Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City
Check out the April 2024 Power BI update to learn about new features.
User | Count |
---|---|
2 | |
1 | |
1 | |
1 | |
1 |
User | Count |
---|---|
2 | |
2 | |
2 | |
2 | |
1 |