AnalyticDB for MySQL is a fully managed data warehouse service built on a data lakehouse architecture. It processes petabytes of structured, semi-structured, and unstructured data in real time, updates data within milliseconds, and responds to queries within sub-seconds.
The service is highly compatible with MySQL, so it integrates with your existing clients, drivers, business intelligence (BI) tools, and scheduling workflows without changes.
What you can do with AnalyticDB for MySQL
AnalyticDB for MySQL supports four major workloads. Each workload is self-contained — use one or combine them in a single cluster.
Multi-source data integration
Ingest structured, semi-structured, and unstructured data from over a dozen source types, including relational databases, NoSQL databases, cloud storage, log systems, and message queues. All data lands in a unified lakehouse that feeds your analytics and batch pipelines. For the full source list, see Data import.
Real-time analytics
Synchronize data from operational databases and streaming sources — including PolarDB, ApsaraDB RDS, ApsaraMQ for Kafka, and Simple Log Service — in real time. Data becomes queryable milliseconds after it is written, with strong consistency guaranteed.
Batch ETL processing
Extract data from sources, transform and cleanse it, and load it into AnalyticDB for MySQL on a schedule. Scheduling tools including Data Management (DMS), DataWorks, Airflow, DolphinScheduler, and Azkaban integrate directly with the cluster.
Spark-based data analysis
Run complex analytics and machine learning directly on lakehouse data using the built-in Spark compute engine. Use Spark SQL for structured queries, Spark JAR packages for custom batch jobs, or PySpark for preprocessing and ML pipelines.
Key capabilities
Supported data sources
AnalyticDB for MySQL ingests data from relational databases, NoSQL stores, big data platforms, object storage, log systems, message queues, and on-premises files.
| Type | Data source |
|---|---|
| Relational database | ApsaraDB RDS for MySQL, ApsaraDB RDS for SQL Server, PolarDB for MySQL, PolarDB-X, self-managed MySQL database, self-managed Oracle database |
| Non-relational database | ApsaraDB for MongoDB, Lindorm, self-managed HBase database |
| Big data | MaxCompute, Flink, Hive |
| Storage | Object Storage Service (OSS), AWS S3, Azure Blob Storage, Google Cloud Storage, Tablestore, HDFS |
| Log | Simple Log Service, Logstash |
| Message queue | Kafka |
| On-premises file | Text file |
For setup instructions, see Data import.
Ecosystem compatibility
AnalyticDB for MySQL is compatible with MySQL, so it works with most clients, drivers, BI tools, and scheduling tools that support MySQL — with no additional configuration.
| Category | Tools |
|---|---|
| Client | DBeaver, DBVisualizer, Navicat, SQL WorkBench/J, MySQL command-line client |
| Driver | Java: Java Database Connectivity (JDBC) and Druid connection pool · Python: MySQLdb · PHP: MySQLi and PDO · C#: MySql.Data · Go: go-sql-driver/mysql · Node.js: MySQL |
| BI tool | FineBI, FineReport, Power BI, Tableau, Quick BI, DataV, , , QlikView, Smartbi, Superset, Metabase, Redash |
| Scheduling tool | DMS: Job scheduling · DataWorks: XIHE SQL jobs and Spark jobs · Airflow: XIHE SQL jobs and Spark jobs · DolphinScheduler: XIHE SQL jobs and Spark jobs · Azkaban: XIHE SQL jobs and Spark jobs |
High performance
AnalyticDB for MySQL handles complex queries in seconds or milliseconds — delivering up to 10x the performance of relational databases for analytical workloads. Data becomes queryable milliseconds after being written, with strong consistency guaranteed.
Elastic scaling
AnalyticDB for MySQL uses a storage-compute decoupled architecture, so compute and storage scale independently.
Compute: Scale manually within predefined specifications, or configure automatic elastic scaling to handle business fluctuations. See Scale a cluster.
Storage: Scales automatically based on data volume, billed on a pay-as-you-go basis. Store historical data in OSS to reduce costs.
Security and compliance
AnalyticDB for MySQL covers permissions, network access, encryption, auditing, and backup — the full security surface for enterprise workloads.
| Category | Feature | Description |
|---|---|---|
| Permission management | Resource Access Management (RAM) | Grant RAM users scoped access to create, manage, and delete clusters. |
| Permission management | Database permission management | Assign permissions at the global, database, table, or column level. |
| Data security | IP address whitelists | Block all inbound connections by default; allowlist only the IPs that need access. |
| Data security | SSL encryption | Encrypt connections at the transport layer using certificates issued by certificate authorities (CAs). |
| Data security | Disk encryption | Encrypt data at the block storage level so that it cannot be decrypted even if data leaks occur. |
| Audit | SQL audit | Log all DML and DDL operations in real time to detect anomalies and diagnose performance issues. |
| Backup and restoration | Periodic backup | Back up cluster data automatically on a configurable schedule. |
| Backup and restoration | Data restoration | Restore data from backup sets to a new cluster. |
| Monitoring and alerting | Cluster monitoring | View CPU utilization, compute memory usage, disk usage, and response time in the console or via API. |
| Monitoring and alerting | Spark monitoring | View Spark job metrics in the CloudMonitor console or via API. |
| Monitoring and alerting | Alerting | Configure alert rules so that the right contacts are notified when a threshold is breached. |
For the full feature list, see Features and capabilities.
Pricing
Fees consist of reserved resource fees, elastic resource fees, data storage fees, cache storage fees, and backup storage fees.
For billable items, see Billable items of Enterprise Edition and Basic Edition.
This topic uses an Enterprise Edition cluster in the Chinese mainland region as an example to show the unit price for each billable item of AnalyticDB for MySQL.
ImportantPrices vary by region. For the prices in each region, see Pricing of Enterprise Edition and Basic Edition.
Prices are subject to change. The prices in this topic are for reference only. The actual prices on the purchase page prevail.
Category
Billable item
Unit price for Enterprise Edition in the Chinese mainland region
Reserved resources
Reserved resources per node
Subscription:
USD 21.54/ACU/month
Pay-as-you-go:
USD 0.04615/ACU/hour
Elastic resources
Elastic ACUs
USD 0.04615/ACU/hour
Spot instance resources
USD 0.032305/ACU/hour
Remote data build
USD 0.003/GB
Storage
Hot data storage
USD 0.00022/GB/hour
Cold data storage
USD 0.000028/GB/hour
Cache
Cloud disk cache
USD 0.00021/GB/hour
Data lake query acceleration
USD 0.00031/GB/hour
Backup storage
Data backup storage
USD 0.000038/GB/hour
This topic uses an Enterprise Edition cluster in the Chinese mainland region as an example to show the unit price for each billable item of AnalyticDB for MySQL.
ImportantPrices vary by region. For the prices in each region, see Pricing of Enterprise Edition and Basic Edition.
Prices are subject to change. The prices in this topic are for reference only. The actual prices on the purchase page prevail.
Category
Billable item
Unit price for Enterprise Edition in the Chinese mainland region
Reserved resources
Reserved resources per node
Subscription:
USD 21.54/ACU/month
Pay-as-you-go:
USD 0.04615/ACU/hour
Elastic resources
Elastic ACUs
USD 0.04615/ACU/hour
Spot instance resources
USD 0.032305/ACU/hour
Remote data build
USD 0.003/GB
Storage
Hot data storage
USD 0.00022/GB/hour
Cold data storage
USD 0.000028/GB/hour
Cache
Cloud disk cache
USD 0.00021/GB/hour
Data lake query acceleration
USD 0.00031/GB/hour
Backup storage
Data backup storage
USD 0.000038/GB/hour
For prices, see Pricing for Enterprise Edition and Basic Edition.
Editions
AnalyticDB for MySQL is available in two editions with the same feature set but different storage architectures.
| Edition | Architecture | Nodes | Best for |
|---|---|---|---|
| Enterprise Edition | Multi-replica | Reserved nodes in multiples of 3 | Production environments |
| Basic Edition | Single-replica | One reserved node | Learning and testing |
To get started, create an Enterprise Edition or Basic Edition cluster.
Get started
New to AnalyticDB for MySQL? Start with creating a cluster, then follow the role-based guides below.
Database administrators
Manage accounts and permissions — Set up database users and control what each account can access.
Configure IP address whitelists — Restrict which clients can connect to the cluster.
Monitor cluster performance and workloads — Track CPU, memory, disk, and query response time.
Configure SQL audit — Log DML and DDL operations for compliance and anomaly detection.
Configure backup cycle and frequency — Schedule automatic backups to prevent data loss.
Data development engineers
Create databases and tables — Define the schema for your data warehouse.
Import data from warehouses or lakes — Migrate or synchronize data into the cluster. See also data lake ingestion.
Connect via application code — Use the JDBC, Python, Go, or other drivers to run queries from your services.
Design table schemas for query performance — Optimize partitioning and indexing for your workload.
Run Spark SQL or Spark applications (Spark apps) — Cleanse, transform, and compute data at scale.
Data analysts
Connect with a client — Use DBeaver, Navicat, or another MySQL-compatible client.
Build dashboards with BI tools — Connect Tableau, Power BI, Quick BI, or another supported BI tool.
Query data with SELECT statements — Run analytical queries on petabyte-scale datasets.
Use built-in functions — Apply aggregation, string, math, and other functions in your queries.
Run full-text search — Perform fuzzy match and similarity search across text data.
Optimize query performance — Diagnose slow queries and apply tuning recommendations.
Algorithm engineers
Preprocess data with PySpark — Cleanse, transform, join, and union large datasets for ML pipelines.
Run machine learning prediction with SQL — Invoke ML models and surface predictions directly in SQL queries.