SAP CDS(Core Data Services)视图和SAP HANA视图都是用于数据提取和模型化的工具。它们的主要区别在于创建位置、语法、性能优化等方面。具体的区别和联系如下:
- 创建位置:SAP CDS视图是在ABAP层创建的,它们是ABAP字典的一部分。另一方面,SAP HANA视图是在数据库层创建的,它们存在于HANA数据库中。
- 语法:SAP CDS视图使用ABAP的扩展SQL语法,而SAP HANA视图使用SQL/SQL脚本。
- 性能优化:SAP CDS视图在ABAP服务器上进行优化,而SAP HANA视图在HANA数据库上进行优化。因此,SAP HANA视图可以利用HANA数据库的全部功能,如并行处理和列式存储,而SAP CDS视图则依赖ABAP服务器的优化。
- 使用场景:通常,如果要访问ABAP服务器的业务逻辑或者要在ABAP环境中使用视图,那么应使用SAP CDS视图。如果要使用HANA数据库的高级功能,如文本搜索、空间搜索或者预测分析,那么应使用SAP HANA视图。
举例来说,假设您有一张销售订单表,并且您想创建一个视图来显示每个销售代表的总销售额。如果您在ABAP环境中工作并且想要在ABAP报告中使用这个视图,那么您可能会创建一个SAP CDS视图,如下所示:
@AbapCatalog.sqlViewName: 'ZV_SALES'
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: 'Sales view'
define view Z_Sales as select from sepm_i_salesorder as so
inner join sepm_i_businesspartner as bp on so.partner_guid = bp.partner_guid
{
so.sales_order_id,
bp.first_name,
bp.last_name,
sum(so.gross_amount_in_trans_currency) as total_sales
} group by so.sales_order_id, bp.first_name, bp.last_name
另一方面,如果您想在SAP HANA Studio中使用视图,并且希望利用HANA数据库的高级功能,那么您可能会创建一个SAP HANA视图,如下所示:
CREATE VIEW "SALES" AS
SELECT "SALES_ORDER"."SALES_ORDER_ID",
"BIZ_PARTNER"."FIRST_NAME",
"BIZ_PARTNER"."LAST_NAME",
SUM("SALES_ORDER"."GROSS_AMOUNT_IN_TRANS_CURRENCY") AS "TOTAL_SALES"
FROM "SEPM_I_SALESORDER" AS "SALES_ORDER"
JOIN "SEPM_I_BUSINESSPARTNER" AS "BIZ_PARTNER"
ON "SALES_ORDER"."PARTNER_GUID" = "BIZ_PARTNER"."PARTNER_GUID"
GROUP BY "SALES_ORDER"."SALES_ORDER_ID", "BIZ_PARTNER"."FIRST_NAME", "BIZ_PARTNER"."LAST_NAME"
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。