Technology Blogs by SAP
Learn how to extend and personalize SAP applications. Follow the SAP technology blog for insights into SAP BTP, ABAP, SAP Analytics Cloud, SAP HANA, and more.
cancel
Showing results for 
Search instead for 
Did you mean: 
TiaXu
Product and Topic Expert
Product and Topic Expert
0 Kudos

Hyperscaler Option

2019年7月,我们目睹了SAP BTP战略的演进,强调构建具有差异化业务服务能力,并明确表示打算与超大规模云提供商合作,如Amazon、Microsoft,、AliCloud和GCP,提供开源数据库和数据存储等通用技术服务;而这些超大规模云提供商已经是市场领导者。

2020年2月,考虑到客户/合作伙伴关于BYOA(自带账户)方法面临的挑战的反馈,我们宣布了一项更新来调整支持服务策略,计划提供全面托管的支持服务:

  • PostgreSQL on SAP BTP, hyperscaler option
  • Redis on SAP BTP, hyperscaler option

更多详细信息,请阅读SAP BTP Discovery Center和服务文档SAP Help Portal:

 

PostgreSQL on SAP BTP, hyperscaler option

在全球,PostgreSQL on SAP BTP, hyperscaler option 是通过CPEA和PAYG的商业模式来为客户提供服务。在中国,则是通过Subscription 的订阅方式。无论如何,现在BTP中国环境上的PostgreSQL on SAP BTP, hyperscaler option服务已可面向客户提供!

以下是中国BTP上 PostgreSQL on SAP BTP, hyperscaler option 的物料 (SKUs):

服务计划描述
PostgreSQL on SAP BTP, hyperscaler option, 标准计算(standard compute )适用于小规模生产使用的PostgreSQL服务
PostgreSQL on SAP BTP, hyperscaler option,高级计算(premium compute)适用于大规模生产使用的PostgreSQL服务
PostgreSQL on SAP BTP, hyperscaler option,存储(storage)PostgreSQL服务的存储
PostgreSQL on SAP BTP, hyperscaler option,高可用存储(HA storage)PostgreSQL服务的高可用存储

计算

  • 标准计算(standard compute)
    • 1个CPU核心: 2GB内存的比例定义计算资源。
    • 为应用工作负载提供基准性能
    • 适用于开发和小规模生产场景。
    • 可以按2GB内存(RAM)的块大小使用。
    • 支持的块大小为1或2
  • 高级计算(premium compute)
    • 1个CPU核心: 4GB内存的比例定义计算资源。
    • 为应用工作负载提供高性能
    • 适用于中型到大型生产场景。
    • 可以按4GB内存(RAM)的块大小使用。
    • 支持的块大小为1、4、8或16

存储

  • 存储(storage)
    • 为PostgreSQL定义通用磁盘存储。
    • 用于单可用区(非高可用)存储场景。
    • 可以按5GB存储(磁盘)的块大小使用。
  • 高可用存储(HA storage)
    • 为具有高可用性(多可用区)的PostgreSQL定义通用磁盘存储,并考虑带宽。
    • 用于多可用区(高可用)存储场景。
    • 可以按5GB存储(磁盘)的块大小使用。

 

使用 PostgreSQL on SAP BTP, hyperscaler option 服务

资源 Sizing 建议

构建一个PostgreSQL on SAP BTP, hyperscaler option实例需要结合计算和存储的资源分配。

您不能单独使用计算或存储资源创建实例。

服务实例支持两种配置模式:

  • 在可用区(AZ)内创建的单节点PostgreSQL实例:
    服务价格 = x + y
    • 将收取x个计算块 - 可以是标准或高级
    • 将收取y个存储块
  • 具有主节点和从节点分布在两个可用区(AZ)之间的2节点PostgreSQL实例:
    服务价格 = 2x + z
    • 将收取2x个计算块 - 可以是标准或高级(x个用于主节点 + x个用于从节点)
    • 将收取z个HA存储块

示例:

  • 用于开发和测试:2个标准(4GB RAM)+ 4个存储(20GB)
  • 用于中等规模生产:4个高级(2个高级 * 2个AZ,16GB RAM)+ 45个HA存储(225GB)

更多详情请参阅:资源 Sizing

 

利用参数创建 PostgreSQL on SAP BTP, hyperscaler option 实例

确保您的实例有足够的配额分配后,您可以使用CF CLI或Cockpit创建实例。

以下是CF CLI的方式:

cf marketplace -e postgresql-db
cf create-service SERVICE PLAN SERVICE_INSTANCE [-c PARAMETERS_AS_JSON]

例如:

cf create-service postgresql-db standard devtoberfest-database -c '{"memory": 2, "storage": 20, "engine_version": "13", "multi_az": false}'

这需要以下资源分配:1个标准计算(standard compute,1x2GB ) + 4个存储单元(storage,4x5GB)的资源配额。

 

查看服务实例配置

cf service <service-instance-name>  //Note the service instance id
cf curl /v2/service_instances/<service-instance-id>/parameters

示例输出结果:

{
"memory": 2,
"storage": 20,
"engine_version": "13",
"multi_az": true,
"locale": "en_US",
"postgresql_extensions": [
  "ltree",
  "citext",
  "pg_stat_statements",
  "pgcrypto",
  "fuzzystrmatch",
  "hstore",
  "btree_gist",
  "btree_gin",
  "pg_trgm",
  "uuid-ossp"
]}

 

使用 PostgreSQL on SAP BTP, hyperscaler option 拓展API

通过支持服务扩展 API,客户将能够:

  • 为 PostgreSQL 实例创建监控管理员用户

    API:/postgresql-db/instances/:id/monitoring-admin,PUT

  • 获取所有已删除的 PostgreSQL 实例

    API:/postgresql-db/org/:orgId/space/:spaceId/deleted-instances,GET

  • 创建由超级扩展支持的数据库扩展

    API:/postgresql-db/instances/:id/extensions,PUT/DELETE

注意:中国环境提供的PostgreSQL的base URL是https://api-backing-services.cn40.data.cn40.platform.sapcloud.cn/

更多详细信息,请访问:使用 PostgreSQL,Hyperscaler Option 扩展API

 

从PostgreSQL服务实例中导出数据

cf enable-ssh YOUR-HOST-APP
cf create-service-key MY-DB EXTERNAL-ACCESS-KEY
cf service-key MY-DB EXTERNAL-ACCESS-KEY
cf ssh -L 63306:<hostname>:<port> YOUR-HOST-APP
psql -d <dbname> -U <username> -p 63306 -h localhost
pg_dump -p 63306 -U <username> <dbname> > /c/dataexport/mydata.sql
psql -p 63306 -U <username> -d <dbname> -c "COPY <tablename> TO stdout DELIMITER ',' CSV HEADER;" > /c/dataexport/<tablename>.csv

更多详细信息,请访问:从PostgreSQL服务实例中导出数据

 

备份和恢复

对于AWS上的PostgreSQL数据库实例:

  • 标准和高级服务计划实例每天都会进行完整的快照/备份数据。
  • 数据库事务日志(WAL日志)会持续地存档,以支持时点恢复(PITR)。
  • 备份保留期为14天。

恢复到指定时间:

cf create-service postgresql-db <service_plan> <service_instance_name> -c '{"source_instance_id": < >, "restore_time":< >}'

了解更多详细信息,请访问:PostgreSQL,hyperscaler option的恢复

 

运行和部署CAP应用并消费PostgreSQL

CAP 及其相关工具可自动将 CDS 模型转换为数据库支持的模式。 CAP 为 SAP HANA(云)、PostgreSQL、SQLite 和 H2 等各种数据库提供了原生支持。 要了解有关 CAP 数据库支持的更多信息,请查看:CAP – 数据库支持

  • 对于 Java,CAP Java SDK 在 PostgreSQL 15 上进行了测试,并支持大多数 CAP 功能。
  • 对于 Node.js,在cds 7之前,我们使用CAP 社区提供的适配器 cds-pg 并与 cds-dbm 结合来消费PostgreSQL。 自 cds 7 起,CAP Node.js 将通过新的数据库服务及其实现 @cap-js/postgres 来原生支持 PostgreSQL。 利用@cap-js/postgres 可在运行时将来自 CDS 模型的请求转换为 PostgreSQL,还可以分析数据库当前状态与 CDS 模型当前状态之间的差异,将更改部署到数据库,加载 CSV 文件等

了解更多详细信息,请访问:在 SAP BTP Cloud Foundry 上使用 PostgreSQL 运行和部署 SAP CAP(Node.js 或 Java)。

 

在非CAP应用程序中消费PostgreSQL

在没有CAP的情况下,您需要通过额外编写代码来连接PostgreSQL并管理数据库Schema。具体来说,您可以按照BYOA(自带账户)方法进行。您可以通过应用绑定和应用运行时环境变量来获得PostgreSQL实例的详细信息。

例如:

image-20230621134333772.png

相关信息来源

  • 有关SAP BTP上的PostgreSQL超级扩展选项服务的更多信息,请查看SAP Help Portal
  • 有关PostgreSQL定价、商业选项和区域的信息,请查看SAP Discovery Center