oceanbase / odc

OceanBase Developer Center(ODC), An open-source, enterprise-grade database tool for collaborative development
https://github.com/oceanbase/odc
Apache License 2.0
504 stars 46 forks source link
collaboration data-security database developer-tools doris mysql oceanbase oracle sql tool

image.png

English | 中文

OceanBase Developer Center (ODC)

OceanBase Developer Center, or ODC for short, is an open-source, all-encompassing tool for collaborative database development and data management across various scenarios. By streamlining collaborative efforts, ODC addresses the challenges of risk management during database changes, efficient data management, and data security concerns. image

🤔 What ODC Offers and Why Choose ODC?

Effortless SQL Development, Anytime, Anywhere

Guard Every Change in Your SQL Development Journey

Automated Data Lifecycle Management

Sensitive Data Protection in Every Scenario

Seamless Integration Without Additional Code Development

🚀 Installation and Deployment

ODC comes in two distinct forms: the dynamic Web version and the efficient Desktop version. Let's take a closer look at these offerings:

Deploying the Web Version

Please note that the deployment steps outlined in this section are meant for experiencing the functionality. For production environment deployment, please refer to the Deployment Guide.

Before You Start

The ODC Web version is packaged as a Docker image and relies on an OceanBase MySQL tenant as MetaDB. If you have not had a MetaDB, please follow (Optional) Step 1: Create a MetaDB below for instructions.

Before you start, ensure that your environment meets the following requirements:

(Optional) Step 1: Create a MetaDB

Use the sample script below to create a MetaDB if you do not already have one. To create a MetaDB, it would require an OceanBase cluster and a test tenant, which the script would also complete for you. The creation process may take about 2 minutes.

Please note that the deployment machine for the OceanBase cluster should have at least 4 vCPUs and 8 GB of RAM.

This script is for demo purposes only. If you have already had a MetaDB, please skip this step.

# Start an OceanBase cluster, which would automatically create a test tenant.
docker run -p 2881:2881 --name oceanbase-ce -d oceanbase/oceanbase-ce

# Connect to the test tenant within the cluster.
docker exec -it oceanbase-ce ob-mysql root

# Create a database user 'odc' and schema 'odc_metadb' within the tenant. Replace <password> with the actual password of your choice.
CREATE USER odc IDENTIFIED BY '<password>';
CREATE DATABASE odc_metadb;
GRANT ALL ON odc_metadb.* TO odc;

Step 2: Launch the ODC Server

Use the script below to launch the ODC Docker container.

# Launch ODC Server. The following example limits the container to 2 CPU cores and 4 GB of memory.

# Replace <your_metadb_password> with the actual password of your MetaDB. If you have followed Step 1 above to create the MetaDB, then replace <your_metadb_password> with the password you set in Step 1.

# Set the initial password for your admin account of ODC using the parameter <your_admin_password>. This password would be the one you use to log into the ODC Web. The password must satisfy the following requirements:
# - At least 2 digits
# - At least 2 lowercase letters
# - At least 2 uppercase letters
# - At least 2 special characters, allowed special characters includes ._+@#$%
# - No spaces or other special characters
# - 8~32 characters in length

# The process to launch ODC may take about 2 minutes.

 docker run -d -it --name odc --network host \
 --cpu-period 100000 --cpu-quota 200000 --memory=4G \
 -e "DATABASE_HOST=127.0.0.1" -e "DATABASE_PORT=2881" -e "DATABASE_NAME=odc_metadb" \
 -e "DATABASE_USERNAME=odc@test" -e 'DATABASE_PASSWORD=<your_metadb_password>' \
 -e 'ODC_ADMIN_INITIAL_PASSWORD=<your_admin_password>' \
 -e "ODC_SERVER_PORT=8989" \
 oceanbase/odc:latest

What to do next

After deploying ODC Web, you can follow our Quick Start guide to start your journey with ODC.

Installing the Desktop Version

The Desktop version harnesses Electron technology to transform the web application into a desktop application, offering compatibility with multiple desktop operating systems. Installing the desktop application is straightforward: simply download the version-specific installer and double-click to initiate the installation process.

ODC Desktop version employs the h2database embedded database as MetaDB, eliminating the need for MetaDB database configuration.

Here are the download links for ODC Desktop version installers:

What to do next

After installing the Desktop version, you can follow our Quick Start guide to start your journey with ODC.

🤝 Join the Contributing Community

ODC envisions an open community, collaboratively crafting a database development and control management tool. We welcome your contributions in any form:

For detailed guidelines on contributing, please refer to the Contribution Guide. For comprehensive guidance on different types of code changes via pull requests, consult the Pull requests.

🛤️ Roadmap Ahead

Here's a glimpse into ODC's 2024 roadmap.

Focus Area Q1 Q2 Q3 Q4
HTAP Collaborative Development
  • Support Doris data source
  • Support Oracle data source
  • Support homogeneous database schema comparison/synchronization
  • Built-in common code snippets
  • Support natural language conversion to SQL
  • Support real-time query and analysis
  • Support result set conversion to chart
  • Support global database object retrieval and positioning
  • Provide dbt-oceanbase plug-in
  • Support Git repository integration
  • Support dbt development integration
  • Support natural language conversion to chart
  • Support sharing scripts and code snippets within projects
  • Support AI task orchestration
  • Support DAG task orchestration
  • Support lightweight report management
  • Support heterogeneous database schema comparison/synchronization
Change and Risk Control
  • Support database-level access control
  • Support sending alerts on task exceptions
  • Support automatic identification of offline DDL changes
  • Support logical database DDL changes
  • Support online schema changes
  • Support multi-database (pipeline) changes
  • Support assigning database administrator
  • Support table-level access control
  • Add global project administrator
  • Support logical database DML/DQL
  • Support configuring SQL check based on templates
  • Support sensitive column access application
  • Provide change rollback capability based on row-level recycle bin
  • Support automatic identification of sensitive data
  • Support state-based schema changes
  • Include command line window actions in operational auditing
Data Lifecycle Management
  • Data archiving/cleanup supports SQL preview
  • Data archiving/cleanup supports unique index tables
  • Data archiving supports source and target tables to be in the same database
  • Partitioning plan supports OB Oracle data source
  • Data archiving source query performance optimization
  • Support for archiving from OB to Files/OSS/S3
  • Homogeneous data archiving supports DDL incremental change synchronization
  • Support for archiving from OB to COS/OBS
  • Support heterogeneous database archiving table structure synchronization
  • Support for archiving associated (foreign key) table scenarios
  • Risk prompts for data archiving/cleanup
  • Data archiving/cleanup supports logical database
  • Data archiving/cleanup supports Oracle data source
Ease of Use
  • Optimize SQL development page interaction
  • Optimize database search capability
  • Desktop version supports custom JVM parameters
  • Support custom configuration items (including shortcuts, etc.)
  • UI theme renewal
  • New project control concept guidance
  • Optimize ticket management page interaction
  • Enhance code auto-completion capability
  • Optimize PL development experience
  • Optimize wide table scenario page interaction
  • Desktop version startup speed optimized to within 20s
  • Provide SQL formatting capability based on templates
  • Optimize operation record page interaction

License

ODC is licensed under the Apache-2.0 license.

Help and Support

We welcome you to raise any questions or provide feedback through GitHub Issues. If you have trouble accessing GitHub, you can also join our DingTalk Group to seek assistance there.