salesforce----------大数据处理与优化【Large Data Volumes】--上

大数据量的部署large data volume

   Salesforce可以使客户很容易的扩展他们的应用程序从很少到很多数据量,这样的扩展经常会自动发生,但是会随着数据集变得越来越大,同时必要的操作时间也会越来越长.这些方法是通过在架构设计和部署数据框架和操作,能够减少或增加几个数量级别的操作次数.

以下的操作会受架构和设计的影响:

•加载或大量记录更新,直接或者集成;

•通过报表(report),查询(query),或者视图(view)来提取数据

优化这些流程的主要方法有:

•跟随行业标准的做法去用于调节数据库的应用程序架构的变化和操作

•推迟或绕过业务规则和共享处理

•选择最高效的操作来完成任务

 

基础概念:

本节概述了两个关键的概念,多租户和搜索架构在salesforce中是什么样的;

•提供其应用到客户的情况和组织

•保持包含支持自定义的安全,自我和高性能

•跟踪和存储应用程序数据

•索引的数据来优化搜索

 

多租户和元数据概述

多租户的意思是向多个组织提供一个应用程序。比如在一个公司里的多个部门和组织,使用的是一个硬件堆。替代向不同的组织提供不同的完整的硬件集合和软件资源。Salesforce在单个实例和多个组织部署之间插入了一个软件层。使得这个软件层对于这些组织是有效的,

并且只能看到这些组织拥有的数据和架构。

为了确保租户特定的自定义不违反其他住户的安全或影响其性能,Salesforce的使用运行时引擎产生的这些自定义应用程序组件。(也就是说这些自定义的应用程序组件都会在通过runtime engine在运行时被生成),通过维护底层应用程序架构和不同租户使用者定义的那些应用程序的界限,Salesforce保护每个租户的数据和操作的完整性。

当组织创建自定义对象的时候,该平台会跟踪关于这些对象和他们的字段,关系,或者其他对象特征的元数据(metadate)。Salesforce存储这些应用程序数据为虚拟表在一些大型的关系型数据库表中(被租户分隔并且作为堆存储)。Salesforce平台的引擎然后会在运行时考虑对应的元数据,具现化这些虚拟表的数据。

代替试图去管理一个庞大的,为了不同的应用程序和租户而经常千变万化的实体数据库集,salesforce平台用一个元数据,数据,透视表的集合去存储模型管理虚拟数据库结构。因此,如果你申请的基础上的数据和您的组织架构传统的性能调整技术,你可能看不到你预期的实际,底层数据结构的影响。因此,如果基于你的组织的数据和架构,你申请试用传统的性能调整技术,你可能看不到那些实际的,底层的数据结构的造成的影响。

 

搜索架构(Search Architecture

搜索就是基于任意形式的文本去查询记录。Salesforce搜索架构是基于他自己拥有的数据存储,是对这种文本检索的优化:

Salesforce提供了好多检索功能:

The sidebar

Advanced and global searches

Find boxes and lookup fields

Suggested Solutions and Knowledge Base

Web-to-Lead and Web-to-Case

Duplicate lead processing

Salesforce Object Search Language (SOSL) for Apex and the API

 

为要搜索的数据,它必须首先被编入索引。

使用搜索索引服务器,那些生成并且异步执行的新创建或者修改的数据的队列项目的索引会被创建。这些服务器通常在13分钟之内处理的不到9000条记录的队列。如果多于9000条记录被等待编译为索引,这些服务器会在一个较低的优先级进行批量索引,因此处理可能需要更长的时间。只到记录编入索引以后,他们才能在检索中显示出来。这种延迟可能是由于有大量的新的或者修改的记录数量而出现很长时间。

Salesforce的执行索引搜索是通过第一次搜索索引相应的记录,然后根据访问权限,搜索限制和其他过滤器缩小的结果。此过程将创建一个结果集,它通常包含最相关的结果。

在结果集达到预定大小以后,其余的记录将被丢弃。结果集然后被用来从数据库中查询那些用户能够看到的字段的记录。

 

 

查询优化器( Force.com Query Optimizer)

由于Salesforce的多租户架构采用的是不同寻常的方式底层数据库架构,该数据库系统的优化器不能有效地优化了Salesforce查询。

Force.com查询优化器可以帮助数据库系统的优化产生了Salesforce的查询有效的执行计划,它是在提供Salesforce中高效的数据访问的一个主要因素。

Force.com的查询优化:

1.    确定最好的索引【用哪一个去驱动查询,如果可能的话,基于在查询的过滤器】

2.    确定最好的表去驱动查询【如果没有好的索引是有效的】

3.    如何排序剩余的表来最大限度的降低成本

4.    按需要建立有效的连接路径注入自定义外键值表

5.    对于余下的联接,包括共享的执行计划加入,以尽量减少数据库的输入/输出(I / O)等影响执行计划

6.    更新的统计数据

 

数据库统计信息(Database Statistics

现代的数据库统计存储在它里面的数据的类型和量,并且他们用这些信息去执行查询优化.由于salesforce采用的是多租户框架,所以这个平台必须保持他们自己的统计情报集去帮助数据库知道访问数据的最好的方法。结果,当大量数据使用API被创建,被更新或者被删除的时候,数据库必须在应用程序有效访问数据之前统计信息。目前,这个信息收集过程会在每晚运行。

你可能感兴趣的:(Large,Data,Volumes,salesforce,Search,Architecture,runtime,engine,Database,Statistics)