cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Syndicate_Admin
Administrator
Administrator

Objeto de Salesforce con muchos registros que causan largos tiempos de carga

Tengo un objeto de cuenta de salesforce 4+ millones de registros y pronto serán 8 millones. Cuando creé mi panel por primera vez, el objeto de cuenta solo tenía unos 200.000 registros. El tablero era agradable y ágil. No había trabajado en el tablero ya que tenía alrededor de 200,000 registros y ahora tiene alrededor de 4 + millones. Ahora, cuando presiono actualizar, estoy atascado en esta pantalla y he estado en esta pantalla durante aproximadamente 8 horas. Según el administrador de tareas, están sucediendo cosas. Veo que la memoria sube y baja. Pero no sé qué más buscar.

Screen Shot 2022-12-07 at 4.19.02 PM.png

Screen Shot 2022-12-07 at 4.43.05 PM.png

CC Order es otro objeto que tiene alrededor de 24.000 registros. Tiene una búsqueda del objeto Account dentro de salesforce. Usé este mismo identificador de búsqueda para combinar consultas dentro de Power BI. Aquí está la salida avanzada del editor de las consultas a continuación. También aquí está el número actual de recuentos de registros por objeto.

ccrz__E_Order__c 24.347
ccrz__E_Cart__c 30.062
Cuenta 4.843.116
Usuario 186,657

Consulta de objeto de cuenta

dejar
Source = Salesforce.Data("https://login.salesforce.com/", [ApiVersion=48]),
Cuenta1 = Origen{[Nombre="Cuenta"]}[Datos],
#"Columnas eliminadas" = Table.RemoveColumns(Account1,{"Una tonelada de columnas"})
en
#"Columnas eliminadas"

Consulta de objeto de orden CC

dejar
Source = Salesforce.Data("https://login.salesforce.com/", [ApiVersion=48]),
ccrz__E_Order__c = Source{[Name="ccrz__E_Order__c"]}[Datos],
#"Columnas eliminadas" = Table.RemoveColumns(ccrz__E_Order__c,{"Una tonelada de columnas"}),
#"Add CreatedDateAZ" = Table.AddColumn(#"Columnas eliminadas", "CreatedDateAZ", cada Date.From([CreatedDate]+#duration(0,-7,0,0))),
#"Add CreatedDateTimeAZ" = Table.AddColumn(#"Add CreatedDateAZ", "CreatedDateTimeAZ", each [CreatedDate]+#duration(0,-7,0,0)),
#"Add Created Today" = Table.AddColumn(#"Add CreatedDateTimeAZ", "Created Today", each if Date.From([CreatedDateTimeAZ])=Date.From(if TimeZone.Current="UTC" then (DateTime.LocalNow()+#duration(0,-7,0,0)) else DateTime.LocalNow()) then true else false),
#"Add Created L7" = Table.AddColumn(#"Add Created Today", "Created L7", each if [CreatedDateTimeAZ] >= DateTime.From(Date.From(if TimeZone.Current="UTC" then (DateTime.LocalNow()+#duration(0,-7,0,0)) else DateTime.LocalNow()))+#duration(-6,0,0,0) then true else false),
#"Add Created L30" = Table.AddColumn(#"Add Created L7", "Created L30", each if [CreatedDateTimeAZ] >= (DateTime.From(Date.From(if TimeZone.Current="UTC" then (DateTime.LocalNow()+#duration(0,-7,0,0)) else DateTime.LocalNow()))+#duration(-29,0,0,0)) then true else false),
#"Add CreatedDateAZFormatted" = Table.AddColumn(#"Add Created L30", "CreatedDateAZFormatted", each [CreatedDateAZ]),
#"Filas filtradas" = Table.SelectRows(#"Agregar CreatedDateAZFormatted", cada [ccrz__OriginatedCart__c] <> ""),
#"Merge Account" = Table.NestedJoin(#"Filas filtradas", {"ccrz__Account__c"}, Account, {"Id"}, "Account", JoinKind.LeftOuter),
#"Cuenta expandida" = Table.ExpandTableColumn(#"Combinar cuenta", "Cuenta", {"Nombre"}, {"Account.Name"}),
#"Merge Cart" = Table.NestedJoin(#"Cuenta expandida", {"ccrz__OriginatedCart__c"}, #"CC Cart", {"Id"}, "Cart", JoinKind.LeftOuter),
#"Expanded Cart" = Table.ExpandTableColumn(#"Merge Cart", "Cart", {"ccrz__TotalAmount__c"}, {"Cart.ccrz__TotalAmount__c"}),
#"Merge User" = Table.NestedJoin(#"Expanded Cart", {"CreatedById"}, User, {"Id"}, "CreatedBy", JoinKind.LeftOuter),
#"Expanded CreatedBy" = Table.ExpandTableColumn(#"Merge User", "CreatedBy", {"Name"}, {"CreatedBy.Name"}),
#"Changed Type" = Table.TransformColumnTypes(#"Expanded CreatedBy",{{"Created L30", type logical}, {"Created L7", type logical}, {"Created Today", type logical}})
en
#"Tipo cambiado"

Consulta de objeto CC Cart

dejar
Source = Salesforce.Data("https://login.salesforce.com/", [ApiVersion=48]),
ccrz__E_Cart__c = Source{[Name="ccrz__E_Cart__c"]}[Datos],
#"Columnas eliminadas" = Table.RemoveColumns(ccrz__E_Cart__c,{"Algunas columnas eliminadas"})
en
#"Columnas eliminadas"

Consulta de objeto de usuario

dejar
Source = Salesforce.Data("https://login.salesforce.com/", [ApiVersion=48]),
User1 = Source{[Name="User"]}[Data],
#"Columnas eliminadas" = Table.RemoveColumns(User1,{"Toneladas de columnas eliminadas"})
en
#"Columnas eliminadas"

Supongo que la tabla de orden CC donde combino consultas con el objeto de cuenta para obtener el nombre de la cuenta es lo que está causando la ralentización de la actualización.

También creé un nuevo pbix donde acabo de importar las consultas base mencionadas anteriormente. Estaba atascado en la carga de datos de la cuenta para siempre. Dejé mi computadora abierta toda la noche y se hizo por la mañana.

Si hay algo más que pueda subir tp ayudar a diagnosticar esto hágamelo saber. Desde la vista de modelo, no tengo configuración de relaciones. También el CC Cart, la cuenta y las consultas de usuario que he configurado para deshabilitar la carga. Entonces, en la vista de informe, solo ve la consulta CC Order y una tabla que hice en dax que se encuentra a continuación:

Top 3 Pedidos = TOPN(3, FILTRO('Orden CC', 'Orden CC'[Creado L30] = VERDADERO), 'Orden CC'[ccrz__TotalAmount__c], DESC)
Gracias por cualquier ayuda con anticipación.
3 REPLIES 3
Syndicate_Admin
Administrator
Administrator

@wfrohwein ,

Según su descripción, su problema es que los grandes conjuntos de datos se actualizan demasiado lentamente.

Puede probar la función de actualización incremental para configurar la actualización incremental para tablas con gran volumen de datos para optimizar la eficiencia de actualización, consulte los siguientes enlaces:

Actualización incremental para conjuntos de datos y datos en tiempo real en Power BI - Power BI | Mi...

Saludos
Gallén Luo
Si esta publicación ayuda, considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

Tengo otra pregunta para usted. En la documentación leí esto "Plegado de consultas : la actualización incremental está diseñada para fuentes de datos que admiten el plegado de consultas". Según lo entendí, el conector de objetos de salesforce no admite el plegado de consultas. Entonces, en teoría, ¿eso significa que la actualización incremental no funcionaría correctamente? ¿No sin poner todos los datos en azure sql server database o algo similar que admita el plegado de consultas?

Gracias. Voy a investigar esto y ver si el cliente tiene las licencias necesarias. La solución parece que debería funcionar, pero si no tienen la licencia adecuada, aún marcaré esto como la solución, ya que no es su culpa que no tengan la licencia adecuada.

Helpful resources

Announcements
Carousel_PBI_Wave1

2023 Release Wave 1 Plans

Power BI release plans for 2023 release wave 1 describes all new features releasing from April 2023 through September 2023.

Power BI Dev Camp Session 30

Ted's Dev Camp - January 26, 2023

This session will provide guidance and teach campers the skills required to build Power BI reports that support multiple languages.

Power BI Summit Carousel 2

Global Power BI Training

Make sure you register today for the Power BI Summit 2023. Don't miss all of the great sessions and speakers!

Thank you 2022 Review

2022 Monthly Feature Releases

We had a great 2022 with a ton of feature releases to help you drive a data culture.