TL;DR: Syncfusion 数据透视表连接到多个数据源,使其成为数据分析的多功能工具。选择正确的数据源对于性能至关重要。本指南探讨了不同的选项,并提供了选择最佳选项的提示。
Syncfusion Pivot Table 是一个强大的数据分析和可视化工具。其突出的功能之一是能够连接到各种数据源,使其成为企业和开发人员的多功能选择。为数据透视表选择正确的数据源对于确保最佳性能和可用性至关重要。
让我们探索可以连接到 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 数据透视表处理各种数据源的能力。它支持多种数据源,包括:
JSON(JavaScript 对象表示法)是一种轻量级数据交换格式。 Syncfusion 数据透视表可以轻松使用 JSON 数据,这对于通常从 API 中以 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) 文件是导出和导入数据的标准格式。 Syncfusion Pivot Table 可以解析 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 多维数据集允许进行复杂的数据分析,通常用于商业智能应用程序。 Syncfusion Pivot Table 支持 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 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.
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.
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.
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');
For more details, refer to the following references:
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!
以上是优化性能:为数据透视表选择最佳数据源的详细内容。更多信息请关注PHP中文网其他相关文章!