0%

HANA数据库相关知识

HANA 支持的数据类型

  • Datetime types :DATE, TIME, SECONDDATE, TIMESTAMP
  • Numeric types:TINYINT, SMALLINT, INTEGER, BIGINT, SMALLDECIMAL, DECIMAL, REAL, DOUBLE
  • Boolean type:BOOLEAN
  • Character string types:VARCHAR, NVARCHAR, ALPHANUM, SHORTTEXT
  • Binary types:VARBINARY
  • Large Object types:BLOB, CLOB, NCLOB, TEXT
  • Multi-valued types:ARRAY
  • Spatial types:ST_GEOMETRY, ST_POINT

HANA 支持的索引

我在HANA INDEX篇里面做了专门概述。

HANA中的表

SAP HANA 数据库存在两种类型的表,存储按列或者按行的数据表。SAP对列表做了优化,列表是默认的表类型。下图展示了存储模型:
hana列表和行表的存储

HANA中表的内存管理

在正常情况下,SAP HANA数据库自动管理表在内存中的加载和卸载,目的是将所有相关数据保留在内存中.
SAP HANA数据库旨在将所有相关数据保留在内存中。当数据库启动时,标准行表被加载到内存中,并一直保持在运行状态。他们没有被卸载。另一方面,列表在首次访问时按需逐列加载。有时称为 延迟加载。这意味着不会加载从未使用的列,并且避免了内存浪费。
可以在M_CS_TABLES System View中查询表的内存加载状况,如下:

1
2
--LOADED 状态分为 FULL NO PARTIALLY
SELECT TABLE_NAME,LOADED FROM M_CS_TABLES;

HANA中创建表 Specifies that the table schema is flexible

Specifies that the table schema is flexible ———— 指定架构是灵活的 这是什么意思呢?
这意味着你可以定义一个包含一些列的表,然后在运行时添加更多的列,而无需要从新定义表结构。如下:

1
2
3
4
5
6
7
8
9
10
11

CREATE COLUMN TABLE Products(
PRODUCT_CODE VARCHAR(3),
PRODUCT_NAME NVARCHAR(20),
PRICE DECIMAL(5,2)
) WITH SCHEMA FLEXIBILITY;

INSERT INTO Products values ('001','Blag Stuff', 100.99);

--你的表中虽然没有COLOR这一列,但是如果指定了灵活架构,他会自动帮助你创建这一列
INSERT INTO Products (PRODUCT_CODE,PRODUCT_NAME,PRICE,COLOR) values (‘002′,'More Blag Stuff',100.99,'Black');

据我所知自动创建的列作为NVARCHAR(5000)存在,暂时无法更改默认值。只能通过执行语句ALTER TABLE Products ALTER (QUANTITY INT);来更改自动创建的列,我认为这个非常鸡肋。

HANA 客户端编程接口

常见数据库客户端连接

  • ODBC
  • JDBC
  • Python DB API
  • ADO.NET
  • Node.js
  • Go
  • Ruby

详细见文档

SAP HANA客户端界面编程参考(针对于Service)

SAP HANA客户端界面编程参考(针对于平台)

驱动下载

HANA 数据库连接驱动

HANA 常见问题

HANA支持 JSON 字段么?

HANA 不支持 JSON 字段。

但是 HANA 支持将JSON字符串存入 string 类型的字段中,可以通过JsonPath的形式实现查找。通过json_queryjson_tablejson_value 函数来实现Json查询。效率比较低,不支持索引

SAP NOTE

SAP Note众所周知是SAP给客户提供补丁的一个很重要而且很巧妙的方式。圈内叫做打Note。 为了解决某个错误,客户不需要升级整个系统,SAP NOTE 需要相关权限的账户才能查阅
地址:https://support.sap.com/en/my-support/knowledge-base.html 使用Note号进行搜索

HANA 相关文档以及网址

SAP HANA客户端界面编程参考(针对于Service)

SAP HANA客户端界面编程参考(针对于平台)

SAP HANA SQL and System View Reference

SAP 开发者工具平台

SAP HANA管理指南

博客园文章(可以参考)

HANA SQL

HANA SQLScript