Actualizar datos: agregar solo datos nuevos

Un usuario Pregunto ✅

Hola,

Me pregunto si es posible configurar la actualización de una fuente de datos en función de la columna de fecha, lo que significa que solo se agregan nuevos datos de la última carga según la columna de fecha.

Sería una buena característica para PBI en el futuro.

MarcelBeug

Una solución alternativa, tal vez extraña, cuestionable y controvertida, pero aún así una palabra, sería arreglar sus datos copiando y pegando en «PreviousData» y luego modificar su consulta para que se agreguen nuevos datos a los datos anteriores.

Después de cada actualización, debe copiar y pegar en PreviousData.

Supongo que sería mejor usar ese conjunto de datos como fuente para sus informes (en lugar del nuevo conjunto de datos), para que no olvide copiar los datos en PreviousData.

Editar: se asume que «Fecha» es la clave principal. Ajuste según corresponda,

let
    Source = Csv.Document(File.Contents("C:UsersMarcelDocumentsForum bijdragenPower BI CommunityAppend new Data onlyInputdata.csv"),[Delimiter=",", Columns=2, Encoding=1252, QuoteStyle=QuoteStyle.None]),
    #"Promoted Headers" = Table.PromoteHeaders(Source),
    NewData = Table.TransformColumnTypes(#"Promoted Headers",{{"Date", type date}, {"Value", Int64.Type}}),
    Merged = Table.NestedJoin(PreviousData,{"Date"},NewData,{"Date"},"NewColumn",JoinKind.RightAnti),
    Combined = if Table.IsEmpty(Merged) then PreviousData else Table.Combine({PreviousData, Merged[NewColumn]{0}})
in
    Combined

Los pasos se ilustran en este video:

ImkeF

En respuesta a MarcelBeug

¡Buena solución, Marcel!

@captainlaw @Baskar @MarcelBeug: Vote por esta función aquí: https://ideas.powerbi.com/forums/265200-power-bi-ideas/suggestions/7288623-incremental-data-loads

¡Cuantos más votos, más rápido se implementará!

En respuesta a ImkeF

En la solución alternativa, asumiendo que esto es lo que hemos cargado en el informe:

Conjunto de datos actual 11 / 1-11 / 30

Conjunto de datos anterior 10 / 1-10 / 31

Desde el video, el paso es copiar el actual y sobrescribir el anterior.

Conjunto de datos anterior 11 / 1-11 / 30

Luego, cargamos el último conjunto de datos:

Conjunto de datos actual 12 / 1-12 / 15

Entonces, en base al script, actualizará Anterior + Actual = 11 / 1-12 / 15

¿Estoy en lo cierto en la suposición anterior?

Si es así, ¿qué pasó con el conjunto de datos 10 / 1-10 / 31? Estoy buscando una solución que mantenga todos los datos, pero solo actualice / agregue datos nuevos.

Para que mi escenario funcione, ¿podemos todavía tener solo 2 conjuntos de datos o debemos continuar agregando más?

MarcelBeug

En respuesta a Capitán Law

Tenga en cuenta que la solución alternativa no será adecuada para grandes conjuntos de datos.

Sus suposiciones no son correctas ya que se agregarán nuevos datos a PreviousData cada vez en Dataset, por lo que Dataset tendrá todos los datos después de la actualización.

En tus ejemplos:

En CSV 1/11 – 30/11.

En PreviousData 1/10 – 31/10.

Después de la actualización, el conjunto de datos tendrá datos del 10/1 al 11/30.

Copie esto en PreviousData.

Nuevo archivo CSV 12/1 – 12/15.

Después de la actualización, el conjunto de datos tendrá datos del 10/1 al 12/15.

Copie esto en PreviousData.

Así que solo tendrás 2 conjuntos de datos.

Pankaj1208

En respuesta a MarcelBeug

Hola … Está bien, pero cuando reemplace el valor por segunda vez, no se actualiza en la tabla anterior, así que proporcione la solución

powerbiuser101

En respuesta a Pankaj1208

Esto tampoco funciona para mí. Mi conjunto de datos no se actualiza en la segunda actualización. Esto es bastante confuso, ya que pensé que la idea era agregar datos a «Previousdata» de un «Dataset» en constante cambio. Según la respuesta de MarcelBeug, parece que esto fue todo lo contrario. No entiendo el paso «Copiar esto en PreviousData». ¿No debería agregarse el paso Fusionado / Combinado a «Datos anteriores» en lugar de «Conjunto de datos»?

Merged = Table.NestedJoin(PreviousData,{"Date"},NewData,{"Date"},"NewColumn",JoinKind.RightAnti),
    Combined = if Table.IsEmpty(Merged) then PreviousData else Table.Combine({PreviousData, Merged[NewColumn]{0}})
in
    Combined

En mis pruebas, Combined también hacía referencia a una tabla anterior en Merged[NewColumn]. Lo que tenía sentido para mí por qué funcionó la primera vez y no una actualización posterior. Volver a agregar 2 nuevos pasos adicionales como el anterior funcionó, pero esto causaría un aumento de pasos si esto tiene que hacerse cada vez que necesito agregar nuevos datos.

Baskar

Lo sentimos, esta característica aún no se implementó en Power BI.

Creo que están trabajando en eso.

Si se enfrenta a este problema, personalmente le sugiero que vaya con la conexión SSAS Tabular cube Live que lo ayudará

Deja un comentario

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