• Stars
    star
    212
  • Rank 179,232 (Top 4 %)
  • Language
    Java
  • License
    Apache License 2.0
  • Created 9 months ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

OceanBase Developer Center(ODC), An open-source, enterprise-grade database tool for collaborative development

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

  • Utilizing modern web architecture, ODC provides unparalleled accessibility to your databases, allowing you to perform SQL development tasks on the go, right from your web browser.
  • ODC boasts a comprehensive and user-friendly SQL development environment that encompasses all the features you'd expect from desktop development tools, and even offers support for PL debugging. image

Guard Every Change in Your SQL Development Journey

  • Throughout the entire SQL development process, ODC is your steadfast companion, offering risk control at every turn. From visual object management to SQL queries, data editing, and import/export tasks, ODC comes equipped with built-in risk management tools.
  • ODC introduces project-based collaboration and change approval workflows, complemented by SQL validation rules, SQL window guidelines, and risk level identification. image

Automated Data Lifecycle Management

  • ODC facilitates data retention policies, enabling you to effortlessly purge or archive data based on specified time frames, and build a hot-cold data separation system tailored to your needs in just 5 minutes.
  • Beyond time-based data handling, ODC supports batch processing based on partitioning, allowing you to efficiently manage large datasets.
  • With ODC's SQL scheduled tasks, completing computational tasks becomes a breeze, rendering traditional CRONTAB systems obsolete. image

Sensitive Data Protection in Every Scenario

  • ODC's data desensitization capabilities extend to both static and dynamic scenarios, ensuring that sensitive information remains safeguarded during schema changes, SQL queries, result set exports, and data extractions.
  • Security administrators can configure sensitive data rules and desensitization algorithms, ensuring that both DBAs and developers are unable to access sensitive data. image

Seamless Integration Without Additional Code Development

  • Integrate ODC seamlessly into your current database development workflow without the need for disruptive changes.
  • From Single Sign-On (SSO) to approval integration, SQL review integration, bastion host integration, and audit integration, ODC offers a comprehensive suite of features that cater to enterprise control needs. image

🚀 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:

  • Desktop Version: Effortless Individual Development

    The Desktop version is designed for personal development scenarios, offering an efficient and user-friendly SQL development tool. Supported operating systems include Windows and MacOS.

  • Web Version: Unleash Collaborative Power

    The Web version caters to multi-person collaborative development scenarios, encompassing collaborative development, risk control, data security, and more. It serves as an integrated platform for database development, management, and control. The Web version provides various installation mediums, such as rpm and Docker images, supporting x86 and ARM architectures. It also encapsulates all the features of SQL development in the Desktop version.

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:

  • Docker is installed and the service is up and running. It is recommended to use the latest version of Docker.
  • The deployment machine for ODC has at least 2 available CPU cores and 4 GB of RAM.
  • The MetaDB requires a minimum specification of 1 vCPU and 4 GB of RAM.

(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:

  • Report bugs through Issues.
  • Participate in or initiate discussions via Discussion.
  • Contribute bug fixes or new features through Pull requests.
  • Share ODC to your friends and colleagues, and help expand the ODC community's influence.

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 2023 roadmap.

Focus Area Q1 Q2 Q3 Q4
SQL Development OceanBase 4.0/4.1 SSL connection
Enhanced performance for large-scale table/column scenarios
Enhanced PL execution and debugging support
Database trace
PL/SQLDeveloper compatibility
Oracle-compatible time and numeric formats
Support for MySQL data sources
Common operation command assistant
Desktop resource optimization
Oracle data source support
Parallel execution plan visualization
OceanBase AP functionality adaptation
Change Risk Control Custom roles Project-based control collaboration
SQL checks and guidelines
Risk level identification
Automatic rollback scripts for data changes
Lock-free schema changes
Best practice templates for SQL checks
Flow-based SQL checks
Schema comparison and synchronization
Data Lifecycle SQL scheduled tasks
Automated partition management
Data archiving/cleaning
Support for OceanBase MySQL mode
Lock-free data changes
Data archiving/cleaning
Support for MySQL and OceanBase Oracle modes
Row-level recycle bin
Logical backup and restore
Cloud storage backup and restore support
Security and Compliance Dynamic data anonymization
Expanded operation audit coverage
Database/table-level access control
Automatic identification of sensitive columns
Sensitive data protection compliance certification
Database SQL auditing
Collaborative Efficiency Automatic authorization rules
Batch user/connection configuration
SSO integration
External approval integration
SQL review integration
Open API
Bastion host integration
Database grouping and logical databases
Multi-table support for test data generation
Global metadata indexing for multiple data sources

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.

More Repositories

1

oceanbase

OceanBase is an enterprise distributed relational database with high availability, high performance, horizontal scalability, and compatibility with SQL standards.
C++
7,077
star
2

miniob

MiniOB is a compact database that assists developers in understanding the fundamental workings of a database.
C++
2,677
star
3

obproxy

A proxy server for OceanBase Database.
C++
110
star
4

obdeploy

A deployer and package manager for OceanBase open-source software.
Python
64
star
5

obclient

A MariaDB-based command line tool to connect to OceanBase Database.
C++
50
star
6

ob-operator

Kubernetes operator for OceanBase
Go
33
star
7

oceanbase-design

An enterprise-class design system based on Ant Design and extending it.
TypeScript
27
star
8

oblogproxy

A proxy service of incremental log of OceanBase
C++
27
star
9

obconnector-j

OceanBase Client for Java is a JDBC 4.2 compatible driver, used to connect applications developed in Java to OceanBase Database Server.
Java
26
star
10

obconnector-c

OceanBase Client for C. A driver to connect applications developed in C language to OceanBase Database.
C
22
star
11

obkv-table-client-java

OBKV Table Client is Java Library that can be used to access table data from OceanBase storage layer.
Java
19
star
12

obkv-table-client-rs

OBKV Table Client is Rust Library that can be used to access table data from OceanBase storage layer. Its access method is different from JDBC, it skips the SQL parsing layer, so it has significant performance advantage.
Rust
16
star
13

odc-client

OceanBase Developer Center Client
TypeScript
16
star
14

obagent

An agent client that provides operation and data collecting interface for OceanBase
Go
15
star
15

obkv-table-client-go

Go
13
star
16

oceanbase-doc

12
star
17

oblogclient

A Java library to get commit log data from OceanBase.
Java
11
star
18

obkv-hbase-client-java

OBKV HBase Client is Java Library that can be used to access data from OceanBase by HBase-0.94 API.
Java
11
star
19

kernel-quickstart

9
star
20

ob-samples

Java
8
star
21

oceanbase-diagnostic-tool

OceanBase Diagnostic Tool is designed to help OceanBase users quickly gather necessary information and analyze the cause of the problem.
Python
8
star
22

oblogmsg

LogMessage is one of the output format of database incremental data
C++
8
star
23

obspark

Spark plugin for OceanBase
6
star
24

kernel-advanced

4
star
25

flink-connector-oceanbase

Apache Flink Connector for OceanBase.
Java
4
star
26

ob-connector-odbc

C
4
star
27

sql-lifecycle-management

SQL-Lifecycle-Management is an intelligent diagnosis and optimization product focusing on the SQL field.
Python
3
star
28

ob-deps

Shell
3
star
29

tutorials-doc

3
star
30

oceanbase-proxy-doc

2
star
31

ocp-doc

OceanBase Control Platform(OCP) Document
2
star
32

.github

Community health files for the @oceanbase organization.
2
star
33

odc-doc

2
star
34

benchmarksql

Java
2
star
35

LCL

It's source code of the LCL algorithm, which is a Lock Chain Length-based Distributed Algorithm for Deadlock Detection and Resolution.
C++
2
star
36

oceanbase-connector-c-doc

1
star
37

code-guide-doc

1
star
38

obdumper-loader-doc

1
star
39

oms-doc

1
star
40

devcon

HCL
1
star