Forum Discussion

des's avatar
des
Icon for Helper I rankHelper I
6 years ago

Informe de Power BI Desguace web incrementalmente

Hola

He buscado a través de foros y no he podido encontrar nada que se ocupe específicamente de lo que quiero hacer, he encontrado cosas que son algo similares pero que faltan algunos componentes esenciales que resolverían mi problema específico.

Estoy usando la última versión de power BI Desktop (a partir de la fecha de esta publicación) para desarrollo con todas las características de vista previa activadas.

El escenario:

1. Estoy usando el conector "Web" para obtener mis datos de un sitio web.

2. Tengo un sitio web del que estoy raspando datos. Entro en la url, en dicho conector, en ese webiste hay una tabla con tres columnas A, B y C. Puedo cargar correctamente dichas columnas en una tabla y actualizarlas en la consulta de energía sin ningún problema. Una fila está disponible y cargada desde la tabla del sitio web en refesh, los datos de la fila se actualizan diariamente en el sitio web. La intención es que dicha fila se cargue cada día en el informe de Power BI de forma acusativa.

3. Para realizar un seguimiento del día en el que se cargó dicha fila, he añadido la columna D una columna de sello de fecha definida por: DateTime.Date(DateTime.LocalNow()) de tipo datetime. No hay datos de fecha en los datos de origen que se puedan utilizar para este propósito. Me gustaría incrementar esta fecha para cada fila cargada.

4. Esencialmente quiero que el bi poder cargue los datos una fila a la vez todos los días. El comportamiento esperado es que vuelva a cargar todos los datos que, en efecto, sobrescriben los datos de los días anteriores dejándome con un conjunto de datos de una fila en un momento dado. En su lugar, quiero hacer esto cargando una fila a la vez, de forma incremental.

Parece que esto debería ser asy para hacer, pero no puedo ver ninguna manera fácil obvia de hacer esto. He examinado la característica de carga incremental publicada por microsoft recientemente para Power BI Pro, pero todas estas soluciones parecen requerir una fecha de algo de olor en los datos de origen, que puede aprovechar las fechas de inicio y finalización paramatizadas para particionar y filtrar los datos de origen a facilitar una carga incremental.

Soy consciente de que hay otras formas de lidiar con esto si se muestra el par tof incremental de la carga en un data store relacional, en flujos de datos o lo que sea, esta pregunta, sin embargo, se trata de cómo es posible hacerlo completamente en Power BI si es posible.

Gracias

D

3 Replies

    • des's avatar
      des
      Icon for Helper I rankHelper I

      ¿Una solución alternativa tal vez?

  • Hola @des,

    No estoy seguro de si todavía estás buscando la solución.

    Intenté hacer lo mismo con PowerBi y busqué en Internet, pero no encontré nada.

    Estoy trabajando principalmente en Qliksense e hice lo que habría hecho con Qlik QVDs: concatar los datos existentes.

    En la consulta M, después de mi script de desguace web, agregué un script de Python para almacenar mis datos en un archivo Txt.

    En la próxima ejecución de mi desguace web, concatenar a los datos existentes en el archivo Txt.

    Aquí está mi consulta M de muestra,

    ExportPython = Python.Execute("
    import os
    import pandas as pd
    
    # 'dataset' variable contains the Power Query table
    df = dataset
    
    file_path = 'file\path\'
    
    # Check if the file exists
    if os.path.exists(file_path):
    # If file exists, read the existing data
    df1 = pd.read_csv(file_path, sep='\t')
    else:
    # If file doesn't exist, create an empty DataFrame with the same columns as df
    df1 = pd.DataFrame(columns=df.columns)
    
    # Concatenate the new data (df) with the existing data (df1)
    df2 = pd.concat([df1, df], ignore_index=True)
    df2 = df2.drop_duplicates()# Export the combined data to a text file (tab-separated values)
    df2.to_csv(filepath, sep='\t', index=False)
    del df, df1
    ", [dataset = #"Renamed Columns2"])
    


    Para manejar un gran volumen de datos, se crean varios archivos Txt una vez que alcanzan el tamaño máximo de archivo y se leen en un bucle. Python te dará mucha flexibilidad.