• Flujo de datos – Conector de carpetas de SharePoint MUY LENTO – Evaluación cancelada

Un usuario Pregunto ✅

morty21

Hola comunidad.

Estoy creando un flujo de datos usando la carpeta de SharePoint como fuente de datos. Me estoy conectando a una CARPETA de 1 GB que contiene 60 archivos .txt (25 MB en promedio por archivo). Se requiere el paso de combinar y cargar, porque necesito combinar los 60 archivos para tener los datos requeridos.

Ahora que tengo la conexión a la carpeta establecida y realicé transformaciones SIMPLES, la evaluación se sigue cancelando y no tengo idea de por qué… Adjunto una pantalla de impresión del editor PQ de flujo de datos, el tiempo total para ejecutar y memoria. Después de esa ejecución, la evaluación se cancela.

Aquí está el código en esta entidad, que no se está cargando. Desde que me conecto a SharePoint, tuve que filtrar la carpeta y los archivos antes de comenzar a analizar… por eso hay algunos filtros.

let
  Origem = SharePoint.Files("https://nutaxdigital.sharepoint.com/sites/NutaxAnalytics", [ApiVersion = 15]),
  #"Linhas filtradas" = Table.SelectRows(Origem, each [Extension] = ".txt"),
  #"Linhas filtradas 1" = Table.SelectRows(#"Linhas filtradas", each Text.Contains([Folder Path], "company_to_be_analyzed")),
  #"Arquivos ocultos filtrados" = Table.SelectRows(#"Linhas filtradas 1", each [Attributes]?[Hidden]? <> true),
  #"Invocar a função personalizada" = Table.AddColumn(#"Arquivos ocultos filtrados", "Transformar o arquivo", each #"Transformar o arquivo"([Content])),
  #"Colunas renomeadas" = Table.RenameColumns(#"Invocar a função personalizada", {{"Name", "Nome da Origem"}}),
  #"As outras colunas foram removidas" = Table.SelectColumns(#"Colunas renomeadas", {"Nome da Origem", "Transformar o arquivo"}),
  #"Coluna de tabela expandida" = Table.ExpandTableColumn(#"As outras colunas foram removidas", "Transformar o arquivo", Table.ColumnNames(#"Transformar o arquivo"(#"Arquivo de exemplo"))),
  #"Tipo de coluna alterado" = Table.TransformColumnTypes(#"Coluna de tabela expandida", {{"Nome da Origem", type text}, {"Column1", type text}}),
  #"Linhas filtradas 2" = Table.SelectRows(#"Tipo de coluna alterado", each Text.Contains([Nome da Origem], "txt_files_to_be_analyzed")),
  #"Linhas filtradas 3" = Table.SelectRows(#"Linhas filtradas 2", each Text.StartsWith([Column1], "|0000|")),
  #"Dividir Coluna por Delimitador" = Table.SplitColumn(#"Linhas filtradas 3", "Column1", Splitter.SplitTextByDelimiter("|", QuoteStyle.None), {"Column1.1", "Column1.2", "Column1.3", "Column1.4", "Column1.5", "Column1.6", "Column1.7", "Column1.8", "Column1.9", "Column1.10", "Column1.11", "Column1.12", "Column1.13", "Column1.14", "Column1.15", "Column1.16", "Column1.17"}),
  #"Colunas Removidas" = Table.RemoveColumns(#"Dividir Coluna por Delimitador", {"Column1.1"}),
  #"Colunas Renomeadas2" = Table.RenameColumns(#"Colunas Removidas", {{"Column1.2", "REG"}, {"Column1.3", "COD_VER"}, {"Column1.4", "COD_FIN"}, {"Column1.5", "DT_INI"}, {"Column1.6", "DT_FIN"}, {"Column1.7", "NOME"}, {"Column1.8", "CNPJ"}, {"Column1.9", "CPF"}, {"Column1.10", "UF"}, {"Column1.11", "IE"}, {"Column1.12", "COD_MUN"}, {"Column1.13", "IM"}, {"Column1.14", "SUFRAMA"}, {"Column1.15", "IND_PERFIL"}, {"Column1.16", "IND_ATIV"}}),
  #"Colunas Removidas1" = Table.RemoveColumns(#"Colunas Renomeadas2", {"Column1.17"})
in
  #"Colunas Removidas1"

Capturar.JPG

En respuesta a morty21

Hola @morty21,

Hay muchas causas que conducen a un rendimiento lento. Está utilizando archivos planos como fuente de datos, por lo que no hay un plegado de consultas en su fuente de datos. El motor de mashup necesita cargar todos los archivos al mismo tiempo y luego hacer transiciones, lo que conducirá a un gran uso de memoria. La transición compleja conducirá a un gran uso de la CPU.

¿Está utilizando el flujo de datos en premium? Puedes intentar habilitar Compute Engine de flujos de datos mejorados y agrandar la memoria máxima en carga de trabajo. Consulte https://docs.microsoft.com/en-us/power-bi/transform-model/dataflows/dataflows-premium-workload-confi…

Y usar entidad calculada también es una opción para usted.

Aquí hay un documento oficial para su referencia: https://docs.microsoft.com/en-us/power-query/optimize-expanding-table-columns. Los pasos de expansión podrían ser el problema de un rendimiento lento. cuando utilice los pasos de unir y expandir, se aumenta la cantidad de llamadas HTTP en una por cada fila en su fuente de datos.

Si esta publicación le ayuda, considere aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.

Atentamente,

dai demon

selimovd

Hola @morty21,

¿Funcionó el código en Power Query dentro de Power BI Desktop?

Debería poder copiar y pegar el código de los flujos de datos en Power Query.

Si eso funciona, pero es demasiado lento, tal vez eliminaría temporalmente todos los archivos de la carpeta, excepto 2 o 3, y luego lo probaría.

Luego, movería el resto hacia atrás e intentaría dejar que el flujo de datos se ejecute.

Si necesitas ayuda, házmelo saber.
Si respondí a tu pregunta, estaría feliz si pudieras marcar mi publicación como una solución. ✔️ y dale pulgar arriba 👍
Atentamente
Denis
Blog: WhatTheFact.bi

morty21

En respuesta a selimovd

Hola mi amigo. Gracias por la respuesta. Sí, este código en realidad se creó en PBI Desktop… era muy lento cargar todos los datos (solía tomar 1-2 horas para poder cargar el informe), pero funcionó en PBI Desktop… mi idea era pasar al flujo de datos para optimizar el rendimiento de las consultas y poder cargar el informe más rápido.

Acabo de intentar actualizar la consulta en línea con una nueva carpeta con solo 2 o 3 archivos… pero sigue siendo muy, muy lento. 😞

no tiene sentido… hay como 80 MB en la carpeta.

En respuesta a morty21

Hola @morty21,

Hay muchas causas que conducen a un rendimiento lento. Está utilizando archivos planos como fuente de datos, por lo que no hay un plegado de consultas en su fuente de datos. El motor de mashup necesita cargar todos los archivos al mismo tiempo y luego hacer transiciones, lo que conducirá a un gran uso de memoria. La transición compleja conducirá a un gran uso de la CPU.

¿Está utilizando el flujo de datos en premium? Puedes intentar habilitar Compute Engine de flujos de datos mejorados y agrandar la memoria máxima en carga de trabajo. Consulte https://docs.microsoft.com/en-us/power-bi/transform-model/dataflows/dataflows-premium-workload-confi…

Y usar entidad calculada también es una opción para usted.

Aquí hay un documento oficial para su referencia: https://docs.microsoft.com/en-us/power-query/optimize-expanding-table-columns. Los pasos de expansión podrían ser el problema de un rendimiento lento. cuando utilice los pasos de unir y expandir, se aumenta la cantidad de llamadas HTTP en una por cada fila en su fuente de datos.

Si esta publicación le ayuda, considere aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.

Atentamente,

dai demon

morty21

En respuesta a v-deddai1-msft

Hola @v-deddai1-msft y @selimovd, gracias por la respuesta y el apoyo. Encontré una manera de optimizar mi consulta, el SharePoint que alojaba mis carpetas y archivos estaba demasiado «ocupado», alojaba muchas carpetas y archivos… Tardaba una eternidad en encontrar la carpeta para usar como fuente Así que creé un sitio separado para usar como repositorio para archivos planos, ahora el rendimiento es mejor… no muy rápido, pero puedo manejarlo. Leeré esa documentación con respecto a la expansión y fusión de consultas.

Gracias de nuevo a los dos por el apoyo!!!

Deja un comentario

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