Trafodion 的数据加载主要包括两种方法,即 Trickle Load(持续加载) 和 Bulk Load(批量加载)。
下表介绍了两种加载方法的区别,
类型 | 描述 | 方法/工具 |
Trickle Load | 数据量较小 立即插入 | ODB 工具(性能通常较第三方ETL工具更好) ETL 工具如kettle、Informatica等 自主开发的ODBC/JDBC应用 |
Bulk Load | 数据量较大 阶段性数据并且是批量加载的方式 | Bulk Loader |
从SQL插入语句实现方式来看,
Trickle Load 又包括以下三种方式,
- INSERT
- UPSERT
- UPSERT USING LOAD
而Bulk Load主要的SQL命令为,
- LOAD
以上4种SQL实现加载方式区别如下表,
特征 | INSERT | UPSERT | UPSERT USING LOAD | LOAD |
事务 | 是 | 是 | 不是,使用HBase的WAL来恢复 | 不是,使用快照(SNAPSHOT)来恢复 |
操作方法 | 通过CheckAndPut调用走标准HBase写路径 | 通过Put调用走标准HBase写路径 | 通过Put调用走标准HBase写路径 | 使用HBase bulk load写路径并直接创建HFiles |
唯一性约束 | 强制 | 不强制,有相同键值的覆盖之前的行 | 不强制,有相同键值的覆盖之前的行 | 部分强制 |
索引 | 可以用在有索引的表上 | 可以用在有索引的表上 | 当用在有索引的表上时,会回到UPSET | 可以用在有索引的表,索引会不起作用 |
最大Size | 10k*n 行,n代表节点数 | 10k*n 行,n代表节点数 | 5million*n 行,n代表节点数 | 2 billion*n行,n代表节点数 |
最小Size | 1行 | 1行 | 1行 | 1million*n行 |
速度 | 最慢 | 比INSERT快 | 比UPSERT快 | 最快 |