首页 > web前端 > js教程 > 正文

优化性能:为数据透视表选择最佳数据源

WBOY
发布: 2024-09-04 14:31:32
原创
820 人浏览过

Optimize Performance: Choose the Best Data Source for Pivot Table

TL;DR: Syncfusion 数据透视表连接到多个数据源,使其成为数据分析的多功能工具。选择正确的数据源对于性能至关重要。本指南探讨了不同的选项,并提供了选择最佳选项的提示。

Syncfusion Pivot Table 是一个强大的数据分析和可视化工具。其突出的功能之一是能够连接到各种数据源,使其成为企业和开发人员的多功能选择。为数据透视表选择正确的数据源对于确保最佳性能和可用性至关重要。

让我们探索可以连接到 Syncfusion 数据透视表的不同数据源、它们的优点以及如何选择最适合您需求的数据源。

了解 Syncfusion 数据透视表

在深入研究数据源之前,有必要了解 Syncfusion 数据透视表是什么及其工作原理。 Syncfusion 数据透视表是适用于 ASP.NET MVC、ASP.NET Core、TypeScript、JavaScript、Angular、React、Vue 和 Blazor 平台的组件。它允许您创建用于数据分析的交互式表格,提供数据过滤、排序、分组和聚合等功能。

选择数据透视表数据源时要考虑的因素

让我们看看为数据透视表选择数据源时需要考虑的一些重要因素:

数据量和复杂性

数据的大小会影响性能。大型数据集可能需要更强大的数据库或优化的存储解决方案。例如,JSON 或 CSV 文件可能足以满足中小型数据集。对于较大的数据集,请考虑使用关系型和 NoSQL 数据库或 OLAP 系统。 OLAP系统为复杂数据分析和多维数据提供了必要的能力。对于更直接的分析,JSON 或 CSV 文件是实用的。

性能要求

考虑您的应用程序的性能要求。与基于文件的数据源相比,数据库通常为大规模数据操作提供更好的性能。然而,JSON 和 CSV 文件可能足以进行快速、直接的分析。

易于集成

评估数据源与 Syncfusion 数据透视表集成的难易程度。关系数据库和 JSON/XML 文件通常具有完善的集成方法,而某些 NoSQL 数据库和 RESTful API 可能需要额外的配置。

实时数据访问

如果您的应用需要实时数据访问,请使用具有实时功能的 RESTful API 或数据库。 Excel 和 CSV 等基于文件的数据源是静态的,需要手动更新。

安全性和合规性

确保您选择的数据源符合您组织的安全和隐私要求。数据库通常提供强大的安全功能,而基于文件的数据源可能需要额外的措施来保护敏感信息。

为数据透视表选择数据源的最佳实践

让我们看看为数据透视表选择数据源的一些最佳实践:

评估您的用例

了解您应用的具体需求并选择符合这些需求的数据源。考虑数据类型、所需操作和用户期望。考虑用于需要高可用性和可扩展性的 Web 应用程序的 NoSQL 数据库。对于使用结构化数据的传统业务应用程序来说,像 SQL Server 这样的关系数据库是一个不错的选择。

测试性能和可扩展性

进行性能测试以确保所选数据源能够处理预期负载。另外,请考虑未来的可扩展性需求并选择可以随您的应用程序一起扩展的解决方案。

确保数据质量

数据质量对于准确分析至关重要。选择允许您保持高数据质量标准的数据源,包括验证和错误检查。

数据集成规划

制定清晰的计划,将数据源与 Syncfusion 数据透视表集成。考虑使用中间件或 ETL(提取、转换、加载)工具来简化集成过程。 JSON 和 CSV 数据方便快速设置且易于使用。关系数据库和 OLAP 系统需要更多的设置和维护,但提供了更强大的功能。

Syncfusion 数据透视表如何与不同的数据源配合使用?

灵活而强大的数据绑定功能促进了 Syncfusion 数据透视表处理各种数据源的能力。它支持多种数据源,包括:

  • JSON 数据:JSON 轻量级且易于使用,非常适合中小型数据集。
  • OLAP(在线分析处理):适合大型数据集和复杂的数据分析。
  • 关系数据库:MySQL、SQL Server 和 PostgreSQL 等 SQL 数据库提供强大的数据存储和查询功能。
  • NoSQL 数据库: NoSQL 数据库(如 MongoDB)为非结构化数据提供灵活的模式设计。
  • Web 服务:Web 服务,例如 RESTful API 和 OData 服务,有助于实时数据集成和动态更新。
  • CSV 文件:对于较小的数据集和快速设置来说很简单。

JSON数据

JSON(JavaScript 对象表示法)是一种轻量级数据交换格式。 Syncfusion 数据透视表可以轻松使用 JSON 数据,这对于通常从 API 中以 JSON 格式获取数据的 Web 应用程序特别有用。

优点

  • 易于使用:JSON 易于读取、编写和解析,使其成为 Web 应用程序的流行选择。
  • 灵活性:JSON 可以处理各种数据结构,包括嵌套对象和数组。

  • 轻量级:JSON 很紧凑,减少了通过网络传输的数据。

注意事项

  • 性能:处理 JSON 中的大型数据集可能效率低下且缓慢。

  • 可扩展性有限:JSON 不适合大型或复杂的数据集。

何时使用

  • 中小型数据集。
  • 优先考虑易用性和快速设置的应用程序。

  • 原型设计和测试。

这是将 JSON 数据与我们的数据透视表集成的代码示例。

通过本地绑定JSON数据

var localData = [
    { Product: 'Bike', Country: 'USA', Sales: 100 },
    { Product: 'Car', Country: 'Canada', Sales: 200 }
];

var pivotTableObj = new ej.pivotview.PivotView({
    dataSourceSettings: {
        dataSource: localData,
        rows: [{ name: 'Product' }],
        columns: [{ name: 'Country' }],
        values: [{ name: 'Sales' }],
        filters: []
    }
});
pivotTableObj.appendTo('#PivotTable');
登录后复制

通过远程(外部)链接绑定 JSON 数据

var pivotGridObj = new ej.pivotview.PivotView({
    dataSourceSettings: {
        url: 'https://cdn.syncfusion.com/data/sales-analysis.json',
        expandAll: false,
        rows: [
            { name: 'EnerType', caption: 'Energy Type' }
        ],
        columns: [
            { name: 'EneSource', caption: 'Energy Source' }
        ],
        values: [
            { name: 'PowUnits', caption: 'Units (GWh)' },
            { name: 'ProCost', caption: 'Cost (MM)' }
        ],
        filters: []
    }
});
pivotGridObj.appendTo('#PivotTable');
登录后复制

CSV 文件

逗号分隔值 (CSV) 文件是导出和导入数据的标准格式。 Syncfusion Pivot Table 可以解析 CSV 文件并将其用作数据源,从而可以方便地分析电子表格或其他表格数据源中的数据。

优点

  • 简单性:易于创建、阅读和操作。
  • 可移植性:CSV 文件得到广泛支持且易于共享。
  • 快速设置:非常适合快速设置和小型数据集。

注意事项

  • 性能:不适合大型数据集或复杂查询。
  • 功能有限:缺乏高级功能和数据类型。

何时使用

  • 用于快速分析或原型设计的小数据集。
  • 数据迁移或导入/导出场景。
  • 简单的应用程序,数据操作需求最少。

这是将 CSV 数据与数据透视表集成的代码示例。

通过本地绑定CSV数据

var csvdata =
  'Region,Country,Item Type,Sales Channel,Total Revenue,Total Cost,Total Profit\r\nMiddle East and North Africa,Libya,Cosmetics,Offline,3692591.20,2224085.18,1468506.02\r\nNorth America,Canada,Vegetables,Online,464953.08,274426.74,190526.34\r\nMiddle East and North Africa,Libya,Baby Food,Offline,387259.76,241840.14,145419.62\r\nAsia,Japan,Cereal,Offline,683335.40,389039.42,294295.98';
var pivotObj = new ej.pivotview.PivotView({
  dataSourceSettings: {
    dataSource: getCSVData(),
    type: 'CSV',
    expandAll: false,
    formatSettings: [
      { name: 'Total Cost', format: 'C0' },
      { name: 'Total Revenue', format: 'C0' },
      { name: 'Total Profit', format: 'C0' },
    ],
    drilledMembers: [{ name: 'Item Type', items: ['Baby Food'] }],
    rows: [{ name: 'Country' }, { name: 'Region' }],
    columns: [{ name: 'Sales Channel' }, { name: 'Item Type' }],
    values: [
      { name: 'Total Profit' },
      { name: 'Total Cost' },
      { name: 'Total Revenue' },
    ],
    filters: [],
  },
  height: 290,
  width: '100%',
});
pivotObj.appendTo('#PivotTable');
function getCSVData() {
  var dataSource = [];
  var jsonObject = csvdata.split(/\r?\n|\r/);
  for (var i = 0; i < jsonObject.length; i++) {
    dataSource.push(jsonObject[i].split(','));
  }
  return dataSource;
}
登录后复制

通过远程(外部)链接绑定 CSV 数据

var pivotObj = new ej.pivotview.PivotView({
    dataSourceSettings: {
        url: 'https://bi.syncfusion.com/productservice/api/sales',
        type: 'CSV',
        expandAll: false,
        enableSorting: true,
        formatSettings: [{ name: 'Total Cost', format: 'C0' }, { name: 'Total Revenue', format: 'C0' }, { name: 'Total Profit', format: 'C0' }],
        drilledMembers: [{ name: 'Item Type', items: ['Baby Food'] }],
        rows: [
            { name: 'Region' },
            { name: 'Country' }
        ],
        columns: [
            { name: 'Item Type' },
            { name: 'Sales Channel' }
        ],
        values: [
            { name: 'Total Cost' },
            { name: 'Total Revenue' },
            { name: 'Total Profit' }
        ],
        filters: []
    },
    height: 300,
    width: '100%'
});
pivotObj.appendTo('#PivotTable');
登录后复制

OLAP(在线分析处理)数据

OLAP 多维数据集允许进行复杂的数据分析,通常用于商业智能应用程序。 Syncfusion Pivot Table 支持 OLAP 数据源,通过丰富的分层数据结构实现多维数据分析。由于预先聚合的数据,OLAP 数据源通常可以提供更快的查询响应。

优点

  • 性能:OLAP 专为快速查询和数据分析而设计,即使对于大型数据集也是如此。
  • 复杂分析:支持复杂计算、聚合、多维度数据分析。
  • 可扩展性:OLAP系统可以轻松处理海量数据集。

注意事项

  • 复杂性:设置和维护 OLAP 系统可能很复杂并且需要专业知识。
  • 成本:OLAP 解决方案的实施和维护成本可能很高。

何时使用

  • 具有复杂分析要求的大型数据集。
  • 商业智能和数据仓库应用程序。
  • 需要高性能和可扩展性的场景。

这是将 OLAP 数据与数据透视表集成的代码示例。

var pivotTableObj = new ej.pivotview.PivotView({
    dataSourceSettings: {
            catalog: 'Adventure Works DW 2008 SE',
            cube: 'Adventure Works',
            providerType: 'SSAS',
            enableSorting: true,
            url: 'https://bi.syncfusion.com/olap/msmdpump.dll',
            localeIdentifier: 1033,
            rows: [{ name: '[Customer].[Customer Geography]'],
            columns: [{ name: '[Product].[Product Categories]'},
                { name: '[Measures]'}],
            values: [{ name: '[Measures].[Customer Count]'},
                { name: '[Measures].[Internet Sales Amount]']
    }
});
pivotTableObj.appendTo('#PivotTable');
登录后复制

Relational databases

Relational databases are one of the most common data sources for our Pivot Table. They store data in tables, making it easy to retrieve and manipulate data using SQL queries. Popular relational databases include MySQL, PostgreSQL, SQL Server, and Oracle.

Advantages

  • Structured data: Data is organized in a tabular format, ideal for Pivot Tables.
  • Scalability: Suitable for handling large volumes of data.
  • ACID compliance: Ensures data integrity and consistency.

Considerations

  • Complexity: Requires knowledge of SQL for data retrieval.
  • Performance: This may require optimization for large datasets.

When to use

  • Medium to large datasets.
  • Apps requiring robust data storage and complex queries.
  • Scenarios where data integrity and relationships are essential.

NoSQL databases

NoSQL databases such as MongoDB offer a flexible schema and are designed to handle unstructured data, making them a good choice for certain types of data analysis.

Advantages

  • Flexibility: Schema-less design allows for easy modification of data structures.
  • Scalability: Excellent for handling large-scale, distributed data.

Considerations

  • Query complexity: Can be more complex to query than relational databases.
  • Consistency: May sacrifice consistency for availability and partition tolerance (CAP theorem).
  • Connectivity: We may require specific connectors or APIs for integration.

Web Services or remote data

Data can be fetched from remote servers using web services or APIs. Syncfusion Pivot Table can connect to remote data sources via RESTful services, making it ideal for apps that analyze data from various endpoints. It involves retrieving data from remote servers or databases.

Advantages

  • Real-time data: Enables real-time data integration and dynamic updates.
  • Scalability: Can handle large and distributed datasets.
  • Flexibility: Easily integrate with various services and APIs.

Considerations

  • Complexity: Requires developing and maintaining RESTful APIs.
  • Latency: Network latency can impact performance.

When to use

  • Apps needing real-time data updates.
  • Integrating data from multiple sources or external APIs.
  • Scenarios requiring high flexibility and scalability.

Here’s a code example for connecting an API service to our Pivot Table.

var data = new ej.data.DataManager({
    url: 'https://bi.syncfusion.com/northwindservice/api/orders',
    adaptor: new ej.data.WebApiAdaptor(),
    crossDomain: true,
  });
  data.defaultQuery = new ej.data.Query().take(8);

  var pivotTableObj = new ej.pivotview.PivotView({
    dataSourceSettings: {
      dataSource: data,
      expandAll: true,
      filters: [],
      columns: [{ name: 'ProductName' }],
      rows: [{ name: 'ShipCountry' }, { name: 'ShipCity' }],
      formatSettings: [{ name: 'UnitPrice', format: 'C0' }],
      values: [{ name: 'Quantity' }, { name: 'UnitPrice' }],
    },
    height: 350,
    width: '100%',
    gridSettings: { columnWidth: 120 },
  });
  pivotTableObj.appendTo('#PivotTable');
登录后复制

References

For more details, refer to the following references:

  • Connecting to PostgreSQL in Pivot Table
  • Connecting to Microsoft SQL Server in Pivot Table
  • Connecting to Oracle in Pivot Table
  • Connecting to Elasticsearch in Pivot Table
  • Connecting to Snowflake in Pivot Table
  • Server-Side Pivot Engine in Pivot Table

Conclusion

Thanks for reading! In this blog, we’ve explored the various options, benefits, and best practices for choosing the right data source for the Syncfusion Pivot Table, ensuring optimal performance and usability.

If you’re already a Syncfusion user, the latest version of Essential Studio is available on the License and Downloads page. We offer our new users a 30-day free trial to explore all our components’ features and capabilities.

If you need further assistance, contact us via our support forum, support portal, or feedback portal. We’re always here to help you!

Related blogs

  • Easily Group Data into Ranges in Web Applications Using Pivot Table
  • Optimize Memory Management in JavaScript Pivot Table: Best Practices and Tips
  • Easily Perform CRUD Actions in Blazor Pivot Table with SQL Database & Entity Framework
  • Efficient Report Management: Save and Load Reports in Vue Pivot Table with SQL Server and Node.js Express Server

以上是优化性能:为数据透视表选择最佳数据源的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:dev.to
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!