Skip to main content

NineData Community Edition

This article provides a detailed introduction to the NineData Community Edition, including its product positioning and a multi-dimensional comparison with the enterprise edition, helping you quickly understand the community edition.

What is NineData Community Edition?

NineData Community Edition is a permanently free, one-click installation data management solution launched by Jiuzhang Arithmetic, designed specifically for developers, startup teams, educational institutions, and individual users. It includes three core features of NineData: database DevOps, data replication, and database comparison.

  • Database DevOps: Database DevOps features powerful capabilities such as data source management, data querying, SQL standards, SQL review, and approval processes, helping users quickly complete various environmental data management tasks and supporting corporate digital transformation.

  • Data Replication: NineData data replication supports offline and real-time data replication between multiple homogeneous and heterogeneous data sources. It is suitable for various business scenarios such as data migration, database scaling, database version upgrades, disaster recovery, multi-active in different locations, and data integration for data warehouses and data lakes.

  • Database Comparison: NineData database comparison feature supports consistency comparison between two data sources, and in cases of inconsistency, it can automatically generate change SQL to achieve consistency in data and structure.

NineData Community Edition is a completely offline running localized deployment version, which does not require connection to any cloud services or access to the NineData website. All data and operations are 100% retained in your local environment. It is particularly suitable for intranet environments that cannot access the internet, perfectly matching small-scale enterprises, individual projects, or learning and testing scenarios.

In terms of deployment, NineData Community Edition is based on Docker technology, and users can complete the installation on their local computers with a simple command, allowing anyone to quickly complete the deployment.

Core Values

Permanently Free, Efficient and Easy to Use

The community edition is free to use, with a 10-minute deployment and online operation throughout the process.

Support for Cloud Virtual Machines or Local Deployment

It can be deployed in the cloud or on a local private network, meeting the data compliance requirements for sensitive business.

Data Management is Safer and More Efficient

With 15 years of experience, the professional database DevOps solution makes R&D and DBA collaboration more efficient and data safer.

High-Performance Real-Time Data Migration and Synchronization

Based on self-developed CDC technology, it professionally addresses database migration, synchronization, disaster recovery, and other business needs, supporting real-time data replication of tens of thousands of TPS per second.

Community Edition vs Enterprise Edition (formerly NineData Dedicated Cluster)

Comparison DimensionCommunity EditionEnterprise Edition
Core PositioningDevelopers/Startup Teams/Individual DevelopersMedium and Large Enterprises/Production Environment
Deployment MethodDocker Single Machine DeploymentDocker Single Machine Deployment/Distributed Cluster
Database DevOps10 data sources (functions consistent with the professional version)Dynamic expansion according to license (unlimited)
Data Replication10 tasks (including 2 incremental tasks)Dynamic expansion according to license (unlimited)
Data ComparisonUp to 10 tasksNo limit
Deployment Complexity⭐⭐⭐⭐⭐ Single command deployment⭐⭐⭐⭐ Capable of scaling up and down, adding nodes, etc.
Resource ConsumptionSingle MachineCluster (cross-room disaster recovery + multi-active in different locations)
Technical SupportDocuments + WeChat Group7x24 dedicated technical support + SLA service guarantee
CostPermanently FreePay as you go

NineData Community Edition vs. Mainstream Tools Full-Dimensional Comparison

Comparison ItemsNineData Community EditionArcheryYearningNavicatFlywayLiquibase
Basic CapabilitiesUpdate Iteration FrequencyHigh (Continuous delivery, weekly iteration)Medium (Quarterly updates, driven by the open-source community)Medium (Irregular updates, dependent on community contributions)Medium (Annual major versions, quarterly minor updates)Medium (Regular feature enhancements, about once every half year)Medium (Regular maintenance, quarterly updates)
Deployment ModeDocker DeploymentDocker DeploymentDocker DeploymentDesktop ApplicationCLI Integrated with JavaCLI Integrated with Java
Supported Data SourcesDomestic databases, data warehouses, multi-cloud databases (such as AWS, Alibaba Cloud, etc.), MySQL, PG, Oracle, SQL Server, Db2, etc.MySQL, PG, Redis, etc.MySQL, PGMySQL, PG, Oracle, SQL Server, etc.MySQL, PG, Oracle, and other mainstream databasesMainstream databases (similar to Flyway)
Login MethodAccount password/third-party login/SSO(LDAP)Web account/LDAP/OAuthWeb account/LDAPLocal account/LicenseNo (Command Line)No (Command Line/Code)
SQL IDESupported LanguagesChinese and EnglishPrimarily ChineseChineseMultiple languagesEnglishEnglish
SQL WindowSupported (Strong)SupportedSupportedSupported (Strong)XX
Object Visual ManagementSupportedPartial support (table structure)LimitedSupported (Graphical)XX
Query Result Set OperationsExport, EditExport, EditExportExport, Edit, ChartsXX
Session IsolationSupportedSupportedSupportedSupportedXX
SQL Review and ReleaseSQL Change ReleaseWork Order + Automated ProcessWork Order Approval + ExecutionWork Order ApprovalDirect ExecutionDirect Execution of Migration ScriptsDirect Execution of Scripts
Change Automatic BackupSupportedSupportedSupportedManual BackupXX
Approval ProcessMulti-level approval, can be connected to external approval processesMulti-level approvalSimple approvalXXX
Online DDLNatively SupportedDependent on tools such as PT-OSCDependent on external toolsXXX
Online DMLSupportedXXXXX
Built-in SQL Standards200+ built-in rules for various database types / customSome rules for MySQLSome rules for MySQLXXX
Mobile ApprovalSupportedXXXXX
Release Process OrchestrationSupportedXXXXX
SQL Code ReviewStrong (Automated Review)Average (Custom Rules)Average (Built-in Rules)XXX
Data SecuritySensitive Data ProtectionIntelligent data classification and grading, complete data anonymization + encryptionSupport manual settings, but can be easily bypassedSupport manual settings, but can be easily bypassedXXX
Permission Authorization ModeRBAC + ABAC, administrator authorization + active applicationRBAC, administrator authorization + active applicationRBAC, administrator authorizationXXX
Permission ModelFine-grained permissions (database/table/sensitive column/module/operation)Project-level isolationUser-level permissionsLocal permissionsXX
Operation AuditFull-link auditComplete logsBasic logsXXX
Advanced Data ProcessingData ImportMulti-format import, syntax-level controllableSupport for CSV/SQLSupport for CSVMultiple formats (Excel, CSV, etc.)Through migration scriptsThrough scripts
Data ExportMulti-format export, file encryption, watermark protectionSupport for CSVSupport for CSVMultiple formats exportXX
Data Archiving and CleaningAutomatic archiving (MySQL, PG)Manual (MySQL)XManualXX
Data Tracking and RollbackAutomatic parsing of Binlog to generate in reverseXXXXX
Data GenerationSupported, simulation template customizationXXSupport for test data generationXX
Performance DiagnosisSlow SQL Performance AnalysisIn-depth analysis + optimization suggestions (MySQL, PG, Oracle, Db2)Support (MySQL)Basic analysisXX
Session ManagementView/Kill sessionsView/Kill sessionsView sessionsView/Kill sessionsXX

Deployment Method

Prerequisites

  • Docker is installed on the server.
  • The server architecture is Intel x86_64, with a minimum specification of 4-core CPU, 16 GB RAM, and 200 GB disk space.

Operation Steps

  1. Log in to the command line window of the server and execute the following command:

    docker run -p 9999:9999 --privileged -v /opt/ninedata:/u01 --name ninedata -d swr.cn-east-3.myhuaweicloud.com/ninedata/ninedata:latest

    Parameter Description

    • -p 9999:9999: NineData provides services through port 9999, and this parameter maps the container's 9999 port to the server to ensure that the client browser can directly access the NineData service.
    • --privileged: Grants the container system permissions to run and access.
    • -v /opt/ninedata:/u01: Mounts the server's /opt/ninedata directory to the container's /u01 directory for data storage.
    • --name ninedata: Sets the container name to ninedata, which can be changed to any other container name.
    • -d swr.cn-east-3.myhuaweicloud.com/ninedata/ninedata:latest: The image address of NineData, used to pull the NineData image file.
    tip

    NineData provides multi-regional image downloads, and you can choose the nearest one to replace the image address behind the -d in the command above for faster download speeds.

    • North China - Beijing: swr.cn-north-4.myhuaweicloud.com/ninedata/ninedata:latest

    • East China - Shanghai: swr.cn-east-3.myhuaweicloud.com/ninedata/ninedata:latest

    • South China - Guangzhou: swr.cn-south-1.myhuaweicloud.com/ninedata/ninedata:latest

    • Official NineData Docker Hub address: ninedata/ninedata:latest

    1. After the container starts, NineData services will automatically deploy and initialize the services within the container, which is expected to take about 5 to 10 minutes. You can check the initialization progress with the command docker logs -f ninedata, and wait for the following prompt to appear on the screen, indicating that the NineData service has started successfully.

      image-20250310171459303

      tip

      If you specified a different container name in step 1, you need to replace ninedata in the above command with your actual container name.

    2. Enter the connection address of NineData in the browser to open the login page of the NineData console. The default port number for NineData services is 9999, and the initial administrator account and password are both admin. After the first login, the page will pop up a password change window, please change the administrator password immediately.

      image-20250310171539071

    Frequently Asked Questions

    • Q: Why can't I select the desired data source when creating a replication task?

      • Reason: The Community Edition currently only supports three replication pipelines:
        1. MySQL → MySQL
        2. PostgreSQL → PostgreSQL
        3. MySQL → Doris Additional pipelines will be rolled out in future updates.
    • Q: The browser suddenly cannot open the Community Edition NineData console and displays a 504 error. What is the reason?

      • Possible cause: This may be due to insufficient server disk space.
      • Solution: Appropriately expand the disk space and execute docker restart <container ID>. Wait approximately 10 minutes for the restart to complete.
    • Q: After executing docker logs -f ninedata, the screen displays the message You can view detailed logs in the /u01/server.log, then freezes. What is the reason?

      • Possible cause: This deployment might not be the first attempt. Residual files from a previous deployment may exist in the directory storing NineData files, such as the /opt/ninedata directory.
      • Solution: Clean up the previous deployment directory and re-execute the deployment steps according to this documentation.
    • Q: The NineData container fails to start. The server.log shows the error "Failed to start ContainerManager" err="cannot enter cgroupv2 \"/sys/fs/cgroup/kubepods\" with domain controllers -- it is in an invalid state". What is the reason?

      • Possible cause: Newer Linux distributions enable CGroup v2 by default. If Docker attempts to create a child CGroup, it will trigger an invalid state error, causing the container to fail to start.

      • Solution: Add the --cgroupns=host parameter to the Docker run command to share the host’s CGroup namespace. For example:

        docker run --cgroupns=host -p 9999:9999 --privileged -v /opt/ninedata:/u01 --name ninedata -d swr.cn-east-3.myhuaweicloud.com/ninedata/ninedata:latest 
    • Q: Why does the NineData container fail to start with the error "kube-proxy exited: iptables is not available on this host" in server.log?

      • Possible Cause: Permission or container configuration issues. The container might not be running in privileged mode or lacks access to the host's /lib/modules directory, preventing it from managing iptables rules.

      • Solution: Run the container in privileged mode and grant NET_ADMIN capability. Example command:

        docker run --cap-add NET_ADMIN --privileged -v /opt/ninedata:/u01 --name ninedata -d swr.cn-east-3.myhuaweicloud.com/ninedata/ninedata:latest