ALIBABA CLOUD → STACKIT · WIDE-COLUMN ARCHITECTURE
Alibaba Cloud Tablestore and HBase on STACKIT
STACKIT has no managed wide-column store, and the run says so for both services. Tablestore and ApsaraDB for HBase are classified REDESIGN with the same two targets: a wide-column store you run yourself on SKE, or MongoDB Flex after a redesign of the data model. This page sets the two side by side, shows what the Tablestore and HBase settings mean for that choice, and states what the run leaves for you to decide.
A Tablestore instance, its table and an HBase cluster, assessed
A telemetry estate written for this page, assessed by StackToIT on 4 November 2026. Left: the three data resources of the input. Right: an excerpt of assessment.json with the values the run wrote. assessment.json is written as a single line, so the pane shows selected fields of each unit, indented and nested as in the file, with the values unchanged.
resource "alicloud_ots_instance" "devices" {
name = "device-state"
description = "Device state and recent readings"
accessed_by = "Vpc"
instance_type = "HighPerformance"
}
resource "alicloud_ots_table" "readings" {
instance_name = alicloud_ots_instance.devices.name
table_name = "readings"
time_to_live = -1
max_version = 1
primary_key {
name = "device_id"
type = "String"
}
primary_key {
name = "ts"
type = "Integer"
}
}
resource "alicloud_hbase_instance" "history" {
name = "telemetry-history"
engine_version = "2.0"
master_instance_type = "hbase.sn2.2xlarge"
core_instance_type = "hbase.sn2.2xlarge"
core_instance_quantity = 3
core_disk_type = "cloud_ssd"
core_disk_size = 400
vswitch_id = alicloud_vswitch.data.id
vpc_id = alicloud_vpc.main.id
zone_id = "eu-central-1a"
pay_type = "PostPaid"
}[
{
"id": "alicloud_ots_instance.devices",
"result": {
"class": "REDESIGN",
"confidence": "MEDIUM",
"target": {
"service": "a self-managed wide-column store on SKE, or MongoDB Flex after a data-model redesign"
},
"reason": "STACKIT has no managed wide-column store. Run one yourself on SKE, or redesign the data model for MongoDB Flex."
}
},
{
"id": "alicloud_ots_table.readings",
"result": {
"class": "MANUAL_REVIEW",
"confidence": "LOW",
"reason": "alicloud_ots_table is not in the knowledge base catalogue; an architect has to decide the target. Nothing of this resource is assessed or drafted (unknown source type)."
}
},
{
"id": "alicloud_hbase_instance.history",
"result": {
"class": "REDESIGN",
"confidence": "LOW",
"target": {
"service": "a self-managed wide-column store on SKE, or MongoDB Flex after a data-model redesign"
},
"reason": "STACKIT has no managed wide-column store. Run one yourself on SKE, or redesign the data model for MongoDB Flex."
}
}
]Two instances, one verdict
The Tablestore instance is REDESIGN with MEDIUM confidence, the HBase instance REDESIGN with LOW. Both name the same two targets.
The table is not in the catalogue
alicloud_ots_table is classified MANUAL_REVIEW with LOW confidence because StackToIT does not catalogue this resource type yet. Its primary key, version and expiry settings are yours to read from the input.
Owners
The run puts both instances in one work package for the Data Architect. The table sits in a separate package whose owner is NOT_STATED, so assign it.
The options and what each costs
| Option | What it means | Trade-off |
|---|---|---|
| Self-managed wide-column store on SKE | The target the run names first. You deploy and operate a wide-column store on your SKE cluster. | Keeps the wide-column model and the row-key design. You run storage, upgrades, backups and monitoring. |
| MongoDB Flex after redesign | The second target the run names. A managed document database with replica sets and sharded clusters. | Managed operation. Row keys, versions and column families become a document model and indexes, and application code changes. |
| Split by access pattern | An option for the architect, not a run result: current state by key on MongoDB Flex, large history on a store you run. | Two systems to own, each fitted to its access pattern. Only sensible if the pattern split is real in your workload. |
The run does not choose between the first two. Its classification is REDESIGN because neither target is a drop-in replacement.
What the source settings mean for the choice
Primary key and partition key
A Tablestore primary key has one to four columns, rows are sorted by it, and the first column is the partition key. The example table uses device_id and ts, so a key that starts with the device is the natural start of a MongoDB index or a row key design.
Versions and expiry
The table sets max_version to 1 and time_to_live to -1. One version and no expiry are the simplest case to redesign; a table with several versions per cell needs a deliberate answer in a document model.
A size limit to carry
Tablestore advises keeping all rows of one partition key value under 10 GB in total. If you are close to that, the key design is part of the redesign.
HBase API in your code
Tablestore offers an HBase client that wraps the HBase client and supports only one column family per table, default f. Applications that already use HBase calls keep that API surface, which favours the wide-column route.
ApsaraDB for HBase
The service has its own SDK on the same major version line as open-source HBase, with the open-source dependency replaced in the build file. Moving back to an open-source HBase client is the inverse swap; this is an architect's suggestion, not run output, so test it.
Document model
MongoDB Flex offers replica sets for availability and sharded clusters that split data across several entities for performance. Expiry and the access pattern are then expressed in MongoDB itself, which is general practice to verify per workload.
How to decide
1. Find how the data is accessed
Read the application code: Tablestore SDK, Tablestore HBase client or ApsaraDB for HBase client. That decides how much code changes under each option.
2. Measure size and growth
The Terraform states an HBase cluster of three core nodes with 400 GB of disk each and a Tablestore instance without sizes. Real volume comes from your account, not from the run.
3. Choose the operating model
A store on SKE is yours to run. MongoDB Flex is managed. Name the owner before you pick.
4. Plan the copy
The run chooses no data-movement mechanism. Alibaba Cloud documents Data Integration for HBase to Tablestore; for the move to STACKIT the method is yours to pick from size and tolerated downtime.
5. Rehearse with a copy
Load a sample into the target, run the read paths of the application and compare results before any cut-over.
Questions data teams ask
Does STACKIT offer a managed HBase or Tablestore?
The run states that STACKIT has no managed wide-column store. You either run one yourself on SKE or redesign the data model for MongoDB Flex.
Why is the Tablestore table MANUAL_REVIEW?
StackToIT does not catalogue the table resource type yet, so nothing of it is assessed. The run asks an architect to decide the target and lists no setting as carried.
Does the run plan the data copy?
No. Its data movement file reports NOT APPLICABLE for this estate, saying the source holds no database, cache or similar store. That text does not count wide-column instances, so read it as no mechanism chosen, not as no data to move.
Can the HBase application stay unchanged?
It can keep the HBase API if you pick a wide-column store you run yourself, though connection settings and the client dependency change. With MongoDB Flex the data access code is rewritten.
Sources
Your next move: STACKIT.
Tell us about your estate. We show you what StackToIT delivers for it: target architecture, Terraform artifacts and a structured migration plan.