{
    "componentChunkName": "component---src-templates-case-study-detail-ts",
    "path": "/case-studies/11",
    "result": {"pageContext":{"next":{"id":22,"attributes":{"feature":false,"title":"F6 Automobile Technology’s Multimillion Rows of Data Sharding Strategy Based on  Apache ShardingSphere","content":"[F6 Automobile Technology](https://www.f6car.com/) is an Internet platform company focusing on the informatization of the automotive aftermarket. It helps automotive repair companies (clients) build their smart management systems to digitally transform the auto aftermarket.\n\nThe data of different auto repair companies will certainly be isolated from each other, so theoretically the data can be stored in different tables of different databases. However, fast-growing enterprises face increasing data volume challenges: sometimes total data volume in a single table may approach 10 million or even 100 million entries.\n\nThis issue definitely challenges business growth. Moreover, growing enterprises are now also planning to split their systems into many microservices based on domains or business types, and accordingly, different databases are vertically required for different business cases.\n\n## Why Did We Need Data Sharding?\n\nRelational databases are bottlenecks when it comes to storage capacity, connection count, and processing capabilities.\n\nFirst, we always prioritize database performance. When the data volume of a single table reaches tens of millions, and there are a relatively large number of query dimensions, system performance would still prove unsatisfactory even if we added more slave databases and optimize indexes. This meant it was time for us to consider data sharding.\n\nThe purpose of data sharding is to reduce database load stress and query time. Additionally, since a single database often has a limited number of connections, when Queries Per Second (QPS) indicator of the database is too high, database sharding is certainly needed to share connection stress.\n\nSecond, to ensure availability was another important reason. If unfortunately, an accident occurs in a single database, we’d likely lose all data and further affect all services. Database sharding can minimize risk and the negative impact on business services. Generally, when the data volume of a table is greater than 2GB or the number of data rows is greater than 10 million, not to mention that the data is also growing rapidly, we’d better use data sharding.\n\n## What’s Data Sharding?\n\nThere are four common types of data sharding in the industry:\n\nVertical table sharding: split big tables into small ones, field-based, which means less frequently used or relatively long fields are split into extended tables.\n\nVertical database sharding: business-based database sharding is used to solve performance bottlenecks of a single database.\n\nHorizontal table sharding: distribute tables’ data rows into different tables according to some rules in order to decrease the data volume of single tables and optimize query performance. In terms of the database layer, it still faces bottlenecks.\n\nHorizontal data sharding: based on horizontal table sharding, distribute data into different databases to effectively improve performance, lower stress of stand-alone machine and single databases, and break the shackles of I/O, connections, and hardware resources.\n\n## Excellent Data Sharding Solutions\n\n**1. [Apache ShardingSphere-JDBC](https://shardingsphere.apache.org/document/current/en/quick-start/shardingsphere-jdbc-quick-start/)**\n\n**Pros：**\n\n- Supported by an active open source community. Now, Apache ShardingSphere 5.0 version has been released and the development iteration speed is fast.\n- Proven efficacy by many successful enterprise application cases: big companies such as JD Technology and Dangdang.com have applied ShardingSphere.\n- Easy deployment: Sharding-JDBC can be quickly integrated into any project without extra services deployed.\n- Excellent compatibility: it can route to a single data node and perfectly support SQL.\n- Excellent performance and low loss: test results can be found on the Apache ShardingSphere website.\n\n**Cons:**\n\nPotential increase in operations and maintenance costs, and troublesome field changes and index creation after data sharding. To fix the issue, users need to deploy Sharding-Proxy that supports heterogeneous languages and is more friendly to DBAs.\n\nSo far, the project doesn’t support data shards dynamic migration yet. Therefore, feature implementation is required.\n\n**2. MyCat**\n\n**Pros:**\n\n- MyCat is a middleware placed between applications and databases to handle data processing and interactions. It cannot be perceived during development, and integrating MyCat does not cost much.\n- Use JDBC to connect databases such as Oracle, DB2, SQL Server, and MySQL.\n- Support multiple languages plus easy deployment and implementation across different platforms.\n- High availability and auto-switch triggered by a crash.\n\n**Cons:**\n\n- High operations and maintenance costs: to use MyCat, it’s required to configure a series of parameters plus HA load balancer.\n- Users have to independently deploy the service, which may increase system risks.\n\nOf course, there are similar solutions such as Cobar, Zebra, MTDDL, and TiDB but honestly, we didn’t spend much time researching other solutions, because we decided to use ShardingSphere as we felt it meets the company’s needs.\n\n## F6 Automobile Technology’s Overall Plan\n\nBased on our company’s business model, we chose Client ID as Sharding Key to ensure that work order data of one client is stored in the same single table of the same client-specific database. Therefore, performance loss caused by multi-table correlated queries is avoided; plus later, even if multi-databases sharding is required, cross-database transactions and cross-database JOIN can be avoided.\n\nAmong client ID databases, the type BIGINT(20) applies UID (Unique Identification Number, or we call it “gene” ) to ensure potential database scaling in the future; the last two digits of a client ID are its UID, so according to the double scaling rule, the maximum reaches 64 databases. The values of left bits can be used for table sharding, which can be split into 32 sharding tables.\n\nTake 10545055917999668983 as the client ID example and the rules are shown as follows:\n\n```\n105450559179996689 83\nTable sharding uid value % 32 database sharding uid value % 1\n```\nThe last two digits (i.e. 83) are used for database sharding, of which temporary data is only sharded into the library f6xxx, so the remainder is 0. Later, increasing data volume can be expanded to multiple libraries. The remaining value 105450559179996689 is used for table sharding. At first time, it is divided into 32 single tables so the modulo remainders correspond to the specific sharding table subscripts are 0~31.\n\n![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rdc5apgqko2381hhrvxw.png)\n \nGiven that the business system is growing and we adopt rapid iteration method to develop features step by step, we plan to shard tables first and then do database sharding.\n\nData sharding has a great impact on the system, so we need greyscale release— if unfortunately, an issue occurs, the system can quickly start roll-back, to ensure a functioning business system. The implementation details are given below:\n\n**Table Sharding**\n\n1. Switch from JDBC to Sharding-JDBC to connect data sources\n2. Decouple the write databases, and then migrate codes\n3. Synchronize historical data and incremental data\n4. Switch sharding tables\n\n**Database Sharding**\n\n1. Migrate the read-only databases\n2. Data migration\n3. Switch read-only databases\n4. Switch write-only databases\n\n## Table Sharding Details\n\n**_Number of Sharding Tables_**\n\nIn the industry, the data of a single table should usually be limited to 5 million rows, and the number of sharding tables should be a power of two to make them scalable. The exact number of sharding tables is calculated based on business development speed and future data increase as well as the future data archiving plan. After sharding table count and sharding algorithms are defined, it’s OK to assess the current data volume in each sharding table.\n\n**_Preparation_**\n\n**- Replace the database & auto table ID generator**\n\nAfter table sharding, we could no longer use the auto database ID generator anymore, so we had to find a feasible solution. We had two plans:\n\nPlan 1: Use other keys such as snowflake\n\nPlan 2: Implement an incremental component (database or Redis) all by ourselves\n\n![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qc0qn1rn3d2261fn12ys.png)\n \nAfter comparing the two solutions and the business condition, we decided to choose Plan 2 and concurrently, provided a new comprehensive table-level ID generator solution.\n\n**- Check whether all requests are carried with shard keys**\n\nNow, the microservice traffic entrances include:\n\n- HTTP\n- Dubbo\n- XXLJOB scheduled job\n- Message Queue (MQ)\n\nAfter table sharding, to quickly locate data shards, all requests must carry their shard keys.\n\n**- Decoupling**\n\n1. Decouple business systems of each domain and use interfaces to interact with read and write data.\n\n2. Remove Direct Table JOIN and use interfaces instead.\n\nThe biggest problem brought by the decoupling is the distributed transaction problem: how to ensure data consistency. Usually, developers introduce distributed transaction components to ensure transaction consistency or they use compensation or other mechanisms to ensure final data consistency.\n\n_**Grayscale Release Plan**_\n\nIn order to ensure quick roll-back when problems caused by new feature releases occur, all online modifications are released step by step based on clients. Our grayscale release plan is shown as follows:\n\n**Plan 1:** Maintain two sets of Mapper interfaces: one uses Sharding-JDBC data sources to connect to databases while the other uses JDBC data sources to connect to databases. At the service layer, it’s necessary to select one of the two interfaces based on the decision workflow diagram below:\n\n![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/eivsoq9mms92ess7g0m1.png)\n \nHowever, the solution causes another problem: all codes visiting the Mapper layer have an `if else` branch, resulting in major business code changes, potential code intrusion, and harder code maintenance. Therefore, we found another solution and we call it Plan 2.\n\n**Plan 2 — Adaptive Mapper Selection Plan:** one set of Mapper interface is with two data sources and two sets of implementations. Based on the grayscale configuration, different client requests will go through different Mapper implementations, and one service corresponds to two data sources and two sets of transaction managers, and based on the grayscale configuration, different clients’ requests go to different transaction managers. Accordingly, we leverage multiple Mapper scanners of MyBatis to generate multiple mapperInterfaces, and concurrently generate a mapperInterface for wrapping. The wrapper class supports hintManagerto automatically select mappers; the transaction manager is similar to wrapper class generation. The wrapper class supports hintManager to automatically select various transaction managers to manage transactions. This solution actually avoids intrusion because for codes of the service layer, there is only one Mapper interface.\n\n![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/obzvh9hgdwke71zbnpur.png)\n \n**_Data Source Connection Switch_**\n\nApache ShardingSphere already lists some grammars currently not supported by Sharding-JDBC on its website, but we still found the following problematic SQL statements that Sharding-JDBC parser cannot handle:\n\n- A subquery without a shard key.\n- Not support` Insert` statements whose values include cast ifnull now and other functions.\n- Not support` ON DUPLICATE KEY UPDATE`.\n- By default, select for update goes to the slave database (the issue has fixed since 4.0.0.RC3).\n- Sharding-JDBC does not support the statement ResultSet.first () of MySqlMapper with Optimistic Concurrency Control used to query vision.\n- No such statement for batch updates.\n- Even if `UNION ALL` does not support the grayscale release plan, we only need to copy a set of mapper.xml, and modify it based on the syntax of Sharding-JDBC before release.\n\n![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/33j5pacig5eg1afdq4vs.png)\n\n**_Historical Data Sync_**\n\n[DataX](https://www.alibabacloud.com/help/en/doc-detail/126635.html) is Alibaba Group’s offline data synchronization tool that can effectively sync heterogeneous data sources such as MySQL, Oracle, SqlServer, Postgre SQL, HDFS, Hive, ADS, HBase, TableStore(OTS), MaxCompute(ODPS) and DRDS.\n\nThe data synchronization framework DataX can abstract the synchronization of different data sources as a Reader Plugin that reads data from the data source, and then as a Writer Plugin that writes data to the target. In theory, the DataX framework can support data synchronization of all data source types. Additionally, the DataX plugin ecosystem can allow every newly-added data source to immediately interact with the old data sources.\n\n![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fzcjfuckkoo0ho77w1w4.png)\n\n**_Verify Data Synchronization_**\n\n- Use timed tasks to compare the number of data of the original table and of the sharding table.\n- Use timed tasks to compare the values of key fields.\n\n**_Read/write Splitting and Table Sharding_**\n\nBefore read/write splitting, we needed to configure incremental data synchronization first.\n\n**-Incremental Data Synchronization**\n\nWe used another open source distributed database sync project named Otter to synchronize incremental data. Based on database incremental log parsing, otter can synchronize data of MySQL/Oracle databases of the local computer room or the remote computer room. To use Otter, we needed to pay extra attention to the following tips:\n\n- For MySQL databases, users must have binlog enabled, and set its mode as ROW.\n- The user must have the query permission of binlog so they need to apply for that as an otter user.\n- Now, the binlog of DMS database is stored for only 3 days. In Otter, users can define the starting position of binlog synchronization and the starting point of incremental synchronization by themselves: first, select slave-testDb on the SQL platform, and use the SQL statement “show master status” to query.\n\n> Note: the execution results of show master statusof master and slave may be different, so if you set it, you need to get the execution result of the master database. We think this function is really useful because when Otter’s data synchronization fails, we can reset points and synchronize again from the beginning.\n\n- When Otter is disabled, it will automatically record the last point of synchronization, and continue to synchronize data from this point next time.\n- Otter allows developers to define their own processing process. For example, we can configure data routing rules and control the direction of client data synchronization data from subtable to parent table or vice versa.\n- Disabling Otter will not invalidate the cache defined in the user-defined Otter processing process. To fix it, the solution is to modify the code comment and save it.\n\n- **Read/write Splitting Plan**\n\nOur greyscale switch plan is shown below:\n\n![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/r2ftt2x3pv1xwrbom1m6.png)\n\nWe chose the grayscale release solution, which means it was necessary to ensure real-time data updates in both subtables and parent tables. Therefore, all data was synchronized in two directions: for clients with grayscale release being on, reads and writes went to subtables and the data was synchronized to parent tables in real time via Otter, while for clients with grayscale release being off, reads and writes went to parent tables and the data is synchronized to subtables in real time via Otter.\n\n![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ic3nh61yipayjvsf259t.png)\n\n##  Database Sharding Details\n**_Preparations_**\n\n**- Primary Key**\nPrimary key should be auto increment type (sharding tables should be global auto increment) or access the only primary key numbering service (server_id independent of DB). Table auto increment primary key generation or uuid_short generated key require switching.\n\n**- Storage Procedure, Functions, Trigger and EVENT**\nTry to remove them first if present; if they cannot be removed, create them in advance in new databases.\n\n**- Data Synchronization**\nData synchronization uses DTS or sqldump (historical data) + otter (incremental data) for synchronization.\n\n**- Database Change Procedure**\nTo avoid potential performance and compatibility problems, database change plan must follow two criterion:\n\n- Greyscale switching: traffic is gradually switching to RDS (Alibaba Cloud Relational Database Service, a.k.a. RDS), allowing obervance of database performance at any time.\n- Quick Rollback: achieving quick reversion when problems occur with little impact on user experience.\n\n**Status Quo:** four application instances +one master db and two slave db\n\n![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8l2szt3kc9ygpcu1o65k.png)\n\n**Step 1:** add a new application instance and switch it to RDS, write into or pass dms master database, and the data in dms master database will be synced to rds in real time\n\n![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pv6r9qptfy7lsfpmsfzj.png)\n\n**Step 2:**add three more application instances, and cut 50% of the data to write into rds database \n\n![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cybdga96h0wnj5byix4r.png)\n \n**Step 3:** remove the four original instance traffic, and read them into rds instances while writing still goes into dms master database\n\n![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/e12d8o29ugwuz0l1xzcp.png)\n \n**Step 4:** switch the master database into rds, and rds data will be reversely synced to dms master database to make it easier for the quick rollback of the data\n\n![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9c4v451ofi535xwx28nl.png)\n\n**Step 5:** Completion\n\n ![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/57jimac2lhn2gflcbdup.png)\n\nEach step mentioned above can be quickly rolled back through traffic switching so as to ensure the availability and stability of system.\n \n**Sharding & Scaling**\n\nWhen the performance of a single database reaches a plateau, we can scale out the database by modifying sharding database routing algorithms and migrating data.\n\n![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0rpthxwsficzwqfe2zn7.png)\n\nWhen the capacity of a single table reaches its maximum size, we can scale out the table by modifying sharding table routing algorithms and migrating data.\n\n ![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/86tuypkympqtcez27m4w.png)\n \n\n## FAQ\n**_Q: Sometimes, Otter receives binlog data but the data cannot be found in the database?_**\n\n**A:**To make our MySQL compatible with replicas of other non-transactional engines, we added binlog at the server layer. Binlog can record all engine modification operations, so it can support replication function for all engines. The problem is a potential inconsistency between redo log and binlog but MySQL uses its internal XA mechanism to fix the issue.\n\n**Step 1:**Not perform operations on InnoDB prepare, write/sync redo log and binlog.\n\n**Step 2:** First, write/sync Binlog and then InnoDB commit (commit in memory).\n\nOf course, group commit has been added since version 5.6. The development improves I/O performance to some degree, but it doesn’t change the execution order.\n\nAfter write/sync Binlog is done, the binlog has been written, so MySQL considers that the transaction has been committed and persisted (now, the binlog is ready to be sent to subscribers). Even if a database crashes, the transaction can still be recovered correctly after MySQL reboot. However, before this step, any operation failure may cause transaction rollback.\n\nInnoDB commit is centered on memory commit such as killing locks, read views related to multiversion concurrency control release. MySQL believes that no errors occur in this step — once an error really occurs, the database will crash — MySQL itself cannot handle the crash. This step does not have any logic that causes transaction rollback. In terms of program operations, only after this step is completed, the changes caused by the transaction can be shown through the API or queries at the client-side.\n\nThe reason why the problem may occur is that the binlog is sent first, and then db commit is done. We use query retries to fix this issue.\n\n**_Q： When it comes to multi-table queries, sometimes, why some tables cannot get data?_**\n\n**A:**The master/slave routing strategy of Sharding-JDBC is shown below:\n\nMaster databases are chosen in the following scenarios:\n\n- SQL statements that include lock such as select for update ( of Version 4.0.0.RC3);\n- Not SELECT statements;\n- Threads that have already gone to master databases;\n- Codes specify the requests for master databases.\n\nAlgorithms used to choose from multiple slave databases:\n\n- Polling Strategy\n- Load Balancer Strategy\n\nThe default is the polling strategy. However, one query may go to different slave databases, or it may go to the master library and slave databases, which occurs when there is time inconsistency between master-slave database latency or multi-slave latency.\n\n**_Q: How can we remove network traffic?_**\n**A:**\n\n- http: use nginx to remove upstream;\n- dubbo: leverage its qos module to execute offline/online command;\n- xxljob: manually enter execution IP of the executor to specify instances;\n- MQ: use the API provided by Alibaba Cloud to enable or disable consumer bean.\n\n## Apache ShardingSphere Open Source Project Links:\n\n[ShardingSphere Github](https://github.com/apache/shardingsphere)\n[ShardingSphere Twitter](https://twitter.com/ShardingSphere)\n[ShardingSphere Slack Channel](https://apacheshardingsphere.slack.com/ssb/redirect)\n","date":"2022-01-24","author":"SphereEx","excerpt":"F6 Automobile Technology is an Internet platform for the automotive aftermarket. It switched to sharding and chose ShardingSphere for its multimillion rows of data. ","metaDescription":"F6 Automobile Technology is an Internet platform company focusing on the informatization of the automotive aftermarket.","createdAt":"2022-09-26T07:41:17.269Z","updatedAt":"2022-09-27T07:00:17.977Z","publishedAt":"2022-09-27T07:00:17.973Z","locale":"en","caseStudiesType":{"data":{"id":9,"attributes":{"name":"Internet","createdAt":"2022-09-26T10:34:03.086Z","updatedAt":"2022-09-27T06:59:34.838Z","publishedAt":"2022-09-27T06:59:34.836Z","locale":"en"}}},"cover":{"data":{"id":342,"attributes":{"name":"F6 automobile.png","alternativeText":"F6 automobile.png","caption":"F6 automobile.png","width":720,"height":443,"formats":{"thumbnail":{"name":"thumbnail_F6 automobile.png","hash":"thumbnail_F6_automobile_c02eaa72b3","ext":".png","mime":"image/png","width":245,"height":151,"size":17.64,"path":null,"url":"https://official-media.sphere-ex.com/thumbnail_F6_automobile_c02eaa72b3.png"},"small":{"name":"small_F6 automobile.png","hash":"small_F6_automobile_c02eaa72b3","ext":".png","mime":"image/png","width":500,"height":308,"size":42.94,"path":null,"url":"https://official-media.sphere-ex.com/small_F6_automobile_c02eaa72b3.png"}},"hash":"F6_automobile_c02eaa72b3","ext":".png","mime":"image/png","size":67.32,"url":"https://official-media.sphere-ex.com/F6_automobile_c02eaa72b3.png","previewUrl":null,"provider":"strapi-provider-upload-s3-compat","provider_metadata":null,"createdAt":"2022-09-26T07:41:48.589Z","updatedAt":"2022-09-26T07:41:48.589Z"}}},"metaLogo":{"data":{"id":356,"attributes":{"name":"F6 logo.png","alternativeText":"F6 logo.png","caption":"F6 logo.png","width":1200,"height":600,"formats":{"thumbnail":{"name":"thumbnail_F6 logo.png","hash":"thumbnail_F6_logo_6330d93329","ext":".png","mime":"image/png","width":245,"height":123,"size":4.96,"path":null,"url":"https://official-media.sphere-ex.com/thumbnail_F6_logo_6330d93329.png"},"large":{"name":"large_F6 logo.png","hash":"large_F6_logo_6330d93329","ext":".png","mime":"image/png","width":1000,"height":500,"size":35.19,"path":null,"url":"https://official-media.sphere-ex.com/large_F6_logo_6330d93329.png"},"medium":{"name":"medium_F6 logo.png","hash":"medium_F6_logo_6330d93329","ext":".png","mime":"image/png","width":750,"height":375,"size":22.18,"path":null,"url":"https://official-media.sphere-ex.com/medium_F6_logo_6330d93329.png"},"small":{"name":"small_F6 logo.png","hash":"small_F6_logo_6330d93329","ext":".png","mime":"image/png","width":500,"height":250,"size":12.46,"path":null,"url":"https://official-media.sphere-ex.com/small_F6_logo_6330d93329.png"}},"hash":"F6_logo_6330d93329","ext":".png","mime":"image/png","size":32.65,"url":"https://official-media.sphere-ex.com/F6_logo_6330d93329.png","previewUrl":null,"provider":"strapi-provider-upload-s3-compat","provider_metadata":null,"createdAt":"2022-09-26T08:51:46.576Z","updatedAt":"2022-09-26T08:51:46.576Z"}}},"localizations":{"data":[]}}},"prev":{"id":14,"attributes":{"feature":false,"title":"Asia’s E-Commerce Giant Dangdang Increases Order Processing Speed by 30% — Saves Over Ten Million in Technology Budget with  Apache ShardingSphere","content":">Apache ShardingSphere is an easy-to-use and stable product, making Dangdang’s warehouse management system (WMS) even more powerful. Integrated with WMS, ShardingSphere plays a vital role in reforming the supply chain system.\n>-- Li Yong, Head of WMS Technology, Dangdang\n\nFollowing Apache ShardingSphere 5.0.0 GA release in November 2021, the 5.1.0 version was released last month. Having gone through over two years of polishing, ShardingSphere’s plugin-oriented ecosystem is beginning to take shape, and the project embarks on the evolution from a simple data sharding middleware to a mature distributed database ecosystem driven by the concept of Database Plus.\n\nDangdang, established at the end of 1999, has become a leading e-commerce platform selling books of any kind, and by integrating new Internet technologies with the traditional book industry. Dangdang was founded during the surge in China’s Internet industry in the early 2000s.\n\nLater, the e-commerce industry became exremely competitive in the country, and the market saturated. Facing fierce market competition, e-commerce platforms had to adapt to remain competitive.\n\nIn response, Dangdang not only adjusted its business strategies and management approaches, but also upgraded its technology architecture. Dangdang didn’t have its warehouse management and transportation system at that time. However, with growing business volume and technological capabilities, Dangdang needed to rebuild its warehouse management system and transportation management system (TMS) to better satisfy its business needs. For instance, in terms of hardware, it replaced mini-computer with x86, while its old centralized system was transformed to a distributed system with more flexibility.\n\nOne of the biggest challenges was massive warehousing data storage. The engineers wanted to adopt the data sharding technology that was often chosen by other big Internet companies. Disappointingly, they failed to find a mature and versatile open source database middleware in the marketplace, and therefore,started to develop a new data sharding product. That’s the origin of Sharding-JDBC. The product was created to bring more possibilities to data services.\n\nDangdang released its new WMS five years ago, which meant that it completed its intelligent warehousing transformation. Since then, with Apache ShardingSphere, the WMS has enabled Dangdang to hold large online shopping events every year such as Dangdang’s April Reading Festival, Double-Eleven Online Shopping Festival (aka Singles Day), and Mid-Year Shopping Festival, and to manage over a dozen of smart warehouses.\n\n## Business Challenges\n\nWhen Dangdang adopted a third-party WMS, the database in use was Oracle based on IBM minicomputers.\n\nHowever, considering the increasing business volume and warehouse order requests, especially during the online shopping festivals, the traditional centralized database architecture of the old WMS became inadequate because the computing and storage capabilities were limited. Additionally, the scale-up solution couldn’t support the system during online shopping festivals, and therefore the developers must do scale-up and adjust the business layer several times to alleviate the storage and computing limits and avoid production risks.\n\n- **Limited computing and storage capabilities**\n\nA centralized architecture is less scalable, making database computing and storage capabilities become the bottleneck.\n\n- **Expensive development and maintenance cost**\n\nBecause of poor scalability, developers have to make concessions and scale-up, which increases system development and maintenance costs.\n\n- **Exclusiveness**\n\nIf the architecture is not open enough, the system is less flexible, with fewer functions, and difficult to be transformed. The current architecture makes it difficult to quickly adopt new business services such as cloud native ones, SQL audit, data encryption, and distributed governance.\n\n## The Solution\n\nBased on the situation described above, Dangdang’s tech team proposed a warehouse management system solution: in terms of hardware, IBM minicomputer would be replaced with all-purpose x86, and MySQL would replace Oracle.\n\nHowever, at that time, there wasn’t a versatile and mature enough open source database middleware living up to Dangdang’s expectations, so they created one and named it Sharding-JDBC.\n\nShardingSphere-JDBC is positioned as a lightweight Java framework that provides additional services at the Java Database Connectivity (JDBC) layer. It is lightweight, efficient, easy to use, and compatible.\n\nWith ShardingSphere providing services in the form of the .jar files package, users can connect the client directly to the database without additional deployment and dependencies. It can be seen as an enhanced JDBC driver, fully compatible with JDBC and all ORM frameworks.\n\n- Compatible with JDBC and any JDBC-based ORM framework such as JPA, Hibernate, Mybatis, Spring JDBC Template.\n\n- Supports all third-party database connection pools such as DBCP, C3P0, BoneCP, HikariCP, etc.\n\n- Supports all databases implementing JDBC standards. Currently, ShardingSphere-JDBC supports MySQL, PostgreSQL, Oracle, SQL Server, and any database that can be accessed via JDBC.\n\n![1.jpeg](https://official-media.sphere-ex.com/1_3d03cbca69.jpeg)\nThe ShardingSphere-JDBC Topography\n\nCurrently, Apache ShardingSphere consists of three products, i.e. JDBC, Proxy, and Sidecar (TODO). ShardingSphere-JDBC and ShardingSphere-Proxy can be deployed independently or together.\n\nIt is ShardingSphere-JDBC that is used in Dangdang’s warehouse management system.\n\n\n>So how is ShardingSphere-JDBC exactly utilized?\n\nIn the warehouse management system, each warehouse positioned in a physical city is referred to as a unit with its corresponding business system and databases. Each warehouse has three sets of MySQL primary-secondary clusters to load the warehousing data of the designated city. So far, Dangdang has more than ten self-built warehouses all over China, mostly in cities where customers place a large number of orders. This self-built warehouse model is flexible for warehouse management and helps reduce storage costs in the long run.\n\nIn terms of architecture, the WMS uses ShardingSphere-JDBC to do database sharding according to their business types, and each cluster stores specified business data. The three MySQL clusters of a single warehouse are divided into three types as follows:\n\n-** Basic:** stores user, area, and menu data.\n- **Business:** stores order and package data.\n- **Inventory:** stores stock and working data.\n\nBefore the release, the system was initialized based on the basic data of a warehouse, such as storage locations.\n\nNext, by deploying the distributed database middleware, Dangdang successfully solved a series of problems such as limited storage and computing capabilities, high costs, and lack of flexibility.\n\n![1.jpeg](https://official-media.sphere-ex.com/1_b7199ae49f.jpeg)\nTopography of Dangdang’s Warehouse Management System (of a Single Warehouse)\n\n## User Advantages\n\nApache ShardingSphere played a significant role in helping Dangdang develop its WMS. There are five main benefits:\n\n- **Extraordinary performance**\n\nThe ShardingSphere-JDBC lightweight framework makes its performance close to a native JDBC. Apart from its great database sharding capability, it helps database performance be taken to the extreme, which allows the WMS to work at full capacity.\n\n- **Keep the system stable**\n\nWMS has been functioning well since its release in 2016.\n\n- **Low risk & zero invasion**\n\nThe underlying system of Dangdang has been evolving since 2000. Thanks to its zero-intrusion nature, Apache ShardingSphere can be compatible with others with small modifications to meet Dangdang’s business requirements.\n\n- **Allow developers to focus on the business side**\n\nThe developer team does not need to worry about sharding any more and can concentrate on developing the system to meet business needs.\n\n- **Cost effective and efficient**\n\nSince ShardingSphere is known for its high compatibility, to satisfy increasing business needs, developers don’t have to reconstruct or upgrade the system, minimizing the migration cost.\n\nWarehousing order processing speed is increased by 30% and accordingly, tens of millions of manpower costs are reduced due to the smart warehouses and the auto storage location matching technology.\n\n**Apache ShardingSphere’s Roadmap**\n\nSome said that ShardingSphere is a product created by Dangdang. To be precise, ShardingSphere was derived from the company and it also donated ShardingSphere to the Apache Software Foundation (ASF) on November 10, 2018.\n\nAfter 17-months in the ASF incubator, Apache ShardingSphere successfully graduated on April 15, 2020, as a Top-Level Apache Project.\n\nRecently, to celebrate the third anniversary of ShardingSphere entering Apache Software Foundation(ASF), the community released ShardingSphere 5.0.0. Below is a brief review of Apache ShardingSphere.\n\n- In 2014, Dangdang introduced a centralized development framework targeting at its e-commerce platform called dd-frame. It was created to unify the development framework, standardize its technical components, and achieve efficient cross-team communication by separating business code from technical code. In this way, engineers can devote all their efforts to the business side. The relational database module named dd-rdb in the framework was developed to handle data access and implement the data sharding function. It was the precursor of Sharding-JDBC, as well as a major part of dd-frame 2.x.\n\n- In 2015, Dangdang decided to rebuild its WMS and TMS. As it needed a data sharding plan, the team launched the project in September. In December, 2015, Sharding-JDBC 1.0.0 was released and used within Dangdang.\n\n- In early 2016, Sharding-JDBC was separated from dd-rdb and became open source. The product is an enhanced JDBC driver providing service in .jar files.\n\n- At the end of 2017, Version 2.0.0 was released with the new data governance function.\n\n- In 2018, ShardingSphere was enrolled into Apache Incubator. The release of Version 3.0.0 was a notable turnaround: Sharding-Proxy was released as an independent service. It supported heterogeneous languages, and the project was renamed from Sharding-JDBC to ShardingSphere. It’s in 2018 that the community decided to build the criteria and ecosystem above databases.\n\n- In 2019, Version 4.0.0 was released capable of supporting more database products.\n\n- In 2020, ShardingSphere graduated as a Top-Level Project of the ASF.\n\n- On November 10, 2021, Version 5.0.0 GA was released as a third-anniversity celebration with the whole Apache ShardingSphere community, and the distributed database industry.\n\n![1.jpeg](https://official-media.sphere-ex.com/1_83a06f3e37.jpeg)\nApache ShardingSphere—Roadmap\n\nSince Version 5.0.0, Apache ShardingSphere has embarked on its new journey: with the plugin oriented architect at its core, it evloved from a data sharding application to a comprehensive and enhanced data governance tool applicable to various complex application scenarios. Concurrently, Apache ShardingSphere also has more features, and big data solutions.\n\n## Conclusion\n\nDigitization motivated Dangdang to achieve high-quality development and fulfill its mission. ShardingSphere is glad to support Dangdang’s WMS with its cutting-edging data services.\n\nHaving gone through two years‘ development, Apache ShardingSphere 5.0.0 GA has been released. The pluggable ecosystem marks an evolution from a data sharding middleware tool to a pioneer in the industry following the “Database Plus” concept.","date":"2022-03-11","author":"SphereEx","excerpt":"Apache ShardingSphere is easy-to-use and stable, making Dangdang’s warehouse management system (WMS) even more powerful.","metaDescription":"Dangdang is a B2C-based e-commerce company in China offering a large selection of products both online and offline.","createdAt":"2022-04-29T10:52:10.330Z","updatedAt":"2022-09-28T02:42:43.896Z","publishedAt":"2022-04-29T10:52:12.009Z","locale":"en","caseStudiesType":{"data":{"id":9,"attributes":{"name":"Internet","createdAt":"2022-09-26T10:34:03.086Z","updatedAt":"2022-09-27T06:59:34.838Z","publishedAt":"2022-09-27T06:59:34.836Z","locale":"en"}}},"cover":{"data":{"id":340,"attributes":{"name":"dangdang1.jpeg","alternativeText":"dangdang1.jpeg","caption":"dangdang1.jpeg","width":720,"height":466,"formats":{"thumbnail":{"name":"thumbnail_dangdang1.jpeg","hash":"thumbnail_dangdang1_27d7d16721","ext":".jpeg","mime":"image/jpeg","width":241,"height":156,"size":25.62,"path":null,"url":"https://official-media.sphere-ex.com/thumbnail_dangdang1_27d7d16721.jpeg"},"small":{"name":"small_dangdang1.jpeg","hash":"small_dangdang1_27d7d16721","ext":".jpeg","mime":"image/jpeg","width":500,"height":324,"size":91.72,"path":null,"url":"https://official-media.sphere-ex.com/small_dangdang1_27d7d16721.jpeg"}},"hash":"dangdang1_27d7d16721","ext":".jpeg","mime":"image/jpeg","size":153.14,"url":"https://official-media.sphere-ex.com/dangdang1_27d7d16721.jpeg","previewUrl":null,"provider":"strapi-provider-upload-s3-compat","provider_metadata":null,"createdAt":"2022-09-26T07:12:49.980Z","updatedAt":"2022-09-26T07:12:49.980Z"}}},"metaLogo":{"data":{"id":351,"attributes":{"name":"dangdang logo.jpg","alternativeText":"dangdang logo.jpg","caption":"dangdang logo.jpg","width":500,"height":256,"formats":{"thumbnail":{"name":"thumbnail_dangdang logo.jpg","hash":"thumbnail_dangdang_logo_539787f05a","ext":".jpg","mime":"image/jpeg","width":245,"height":125,"size":5.42,"path":null,"url":"https://sphereex-media-1305704183.cos.ap-beijing.myqcloud.com/thumbnail_dangdang_logo_539787f05a.jpg"}},"hash":"dangdang_logo_539787f05a","ext":".jpg","mime":"image/jpeg","size":12.11,"url":"https://sphereex-media-1305704183.cos.ap-beijing.myqcloud.com/dangdang_logo_539787f05a.jpg","previewUrl":null,"provider":"strapi-provider-upload-s3-compat","provider_metadata":null,"createdAt":"2022-09-26T08:37:49.195Z","updatedAt":"2022-10-12T05:57:41.631Z"}}},"localizations":{"data":[{"id":13,"attributes":{"feature":true,"title":"ShardingSphere 助力当当 WMS：订单效率提升 30%、节约成本上千万","content":">Apache ShardingSphere 简单易用且成熟稳定，当当自研 WMS 如虎添翼，在供应链系统改革中起到了至关重要的作用，是我们的杀手锏。\n——李勇，当当 WMS 技术负责人\n\n>Apache ShardingSphere 5.0.0 GA 已于 2021 年 11 月发布，5.1.0 版本也于上周发布。历经两年的迭代与打磨，可插拔生态趋近成熟，标志着 Apache ShardingSphere 从分库分表中间件蜕变为以 Database Plus 为理念的分布式数据库生态系统。\n\n近年来，随着“建设社会主义文化强国”政策的持续落实，全民阅读在移动互联快速发展中得到大力倡导，阅读给当代人提供了丰富的精神食粮。当当成立于 1999 年底，作为新技术与传统行业的结合体，当当融合了互联网新技术和传统图书行业，二十余年深耕图书领域助力全民阅读。\n\n当当在刚成立的几年，也是中国互联网腾飞的阶段，电商逐渐多元化发展的趋势迎来了行业野蛮生长期，各电商平台的发展如逆水行舟，不进则退。当当对战略和管理等方面进行调整的同时，也对技术架构层进行了硬核升级。\n\n当当成立之初的仓储物流系统并非自研，随着业务体量、技术实力等多方面的变化，为了满足业务快速发展需要，当当决定重构 WMS（Warehouse Management System）和 TMS（Transportation Management System）。硬件层使用 x86 取代小机，数据层由传统集中式转型为更灵活的分布式架构。如何解决海量仓储货品信息问题，是重构待解决的核心问题之一。互联网技术栈比较常用的分库分表被率先尝试使用，但由于当时开源数据库中间件的成熟度及功能方面不满足预期，当当决定自研分库分表产品，Sharding-JDBC 就这样应运而生，为“连接”带来更多可能。\n\n**自研 WMS 的上线完成了仓储层智能改革，五年、十余仓，Apache ShardingSphere 同 WMS 完美支撑了数个“读书节”、“618”和“11.11”等大型促销活动。**\n\n\n## 业务挑战\n\n当当在自研 WMS 之前使用的是第三方仓储管理系统，其数据库是基于 IBM 小机的 Oracle，结合当当业务体量以及电商仓储物流在促销期间密集请求的业务特点，传统集中式数据库架构给 WMS 带来了极大的挑战。\n\n在业务快速发展的冲击下，数据库计算和存储能力的上限越发明显，Scale-up 方案难以满足超级促销期间的业务需求，技术团队需要对业务层多次做拆分调整来缓解“存算”瓶颈，产能存在受限的风险。\n\n- 计算、存储能力双受限\n\n传统集中式架构扩展能力相对较差，数据库的计算和存储能力成为明显瓶颈；\n\n- 业务开发维护成本高昂\n\n在扩展能力相对差的基础上，业务侧需要不断的去让步做拆分，开发和维护成本持续攀升；\n\n- 系统架构开放度不足\n\n系统架构开放度不足将会使系统面临灵活度欠佳、功能缺失以及转型难度高等问题，基于现有架构难以快速响应新业务的开展及相关政策的调整，如云原生、SQL 审计、数据脱敏以及分布式治理等多方面需求。\n\n\n## 解决方案\n\n当当技术部结合现状及未来发展等多维度的调研，最终确定了自研 WMS 的方案。在硬件方面全面采用通用的 x86 设备替换 IBM 小型机，数据库层面引入开源数据库 MySQL 来替换 Oracle。当时已有多个开源数据库中间件，但成熟度和功能方面与预期不符，因此选择了自研数据库中间件，Sharding-JDBC 闪亮登场。\n\nShardingSphere-JDBC 定位为轻量级 Java 框架，在 Java 的 JDBC 层提供额外服务。具备轻量、高效、易用以及高兼容等特点。它使用客户端直连数据库，以 jar 包形式提供服务，无需额外部署和依赖，可理解为增强版的 JDBC 驱动，完全兼容 JDBC 和各种 ORM 框架。\n\n- 适用于任何基于 JDBC 的 ORM 框架，如：JPA、Hibernate、Mybatis、Spring JDBC Template 或直接使用 JDBC；     \n\n- 支持任何第三方的数据库连接池，如：DBCP、C3P0、BoneCP、HikariCP 等；\n\n- 支持任意实现 JDBC 规范的数据库，目前支持 MySQL、PostgreSQL、Oracle、SQL Server 以及任何可使用 JDBC 访问的数据库。\n\n![当当1.png](https://official-media.sphere-ex.com/1_16c3bbe14b.png)\n\nShardingSphere-JDBC 方案\n\n目前 Apache ShardingSphere 由 JDBC、Proxy 和 Sidecar（规划中）这 3 款既能够独立部署，又支持混合部署配合使用的产品组成，在当当自研 WMS 中使用的是 ShardingSphere-JDBC。\n\n那么 ShardingSphere-JDBC 在 WMS 中具体是如何应用的呢？\n\n在 WMS 系统中，城市的“仓”就是仓储系统的管理单位，每个仓有对应的业务系统和数据库，单个仓使用 3 套 MySQL 主从集群承载指定城市仓库的数据。目前，当当在全国各地设有十余个自建的仓库，主要分布在订单量较大的城市，这种自建仓库模式在具备灵活管理等特性的同时，也可以降低企业的长期仓储成本。\n\n在架构规划上，WMS 通过 ShardingSphere-JDBC 按业务类型进行分库， 每套集群负责存储指定的业务数据，单个仓的 3 套 MySQL 集群分工如下：\n\n- 基础库集群：User，Area，Menu；\n\n- 业务库集群：Order，Package；\n\n- 库存库集群：Stock，Working。\n\n上线前，系统会根据仓库的基础数据进行初始化，如货位等信息，这里不做深入讨论。\n\n分布式数据库中间件的架构解决了 WMS 存算受限、开发维护成本高以及系统灵活度不足的问题，以成熟的底座和熟悉的技术栈去承载业务，架构相对透明化，兼容度良好且没有入侵性。\n\n![当当2.png](https://official-media.sphere-ex.com/2_783843d774.png)\n\n当当 WMS 系统拓扑图（单仓）\n\n\n## 用户收益\n\n在当当自研 WMS 的过程中发挥了非常重要的作用，带来了五方面的收益如下：\n\n1、性能极致\n\nShardingSphere-JDBC 轻量级的框架使其性能接近原生 JDBC，提供分库能力的同时性能可发挥极致，WMS 产能不再有受限的风险；\n\n2、系统稳定\n\n自 2016 年 WMS 上线至今，数年来系统一直稳定运行；\n\n3、低风险、零侵入\n\n当当底层系统为 2000 年演进而来，Apache ShardingSphere 凭借自身零侵入性的特点，用很小的改动就即完成了兼容适配，满足了业务需求；\n\n4、专注业务开发\n\n研发团队无需再关心业务拆分的工作，可将更多的精力聚焦于业务需求；\n\n5、降本增效\n\n高兼容的特点可以在无需大量的重构和改造前提下满足业务增长的需求，改造迁移成本低；     \n\n通过仓店智能化、入库商品自动匹配最优货位的设计，仓店订单效率提升了 30%，人力成本节约上千万。\n\n\n## Apache ShardingSphere 的前世今生\n\n有人说 ShardingSphere 是当当的产品，其实更准确的说：ShardingSphere 起源于当当，在 2018 年 11 月 10 日捐赠给 Apache，经 17 个月的孵化于 2020 年 4 月 15 毕业，是 2020 年度第一个从 Apache 孵化器毕业的顶级项目。\n\n前段时间，在 ShardingSphere 进入 Apache 基金会三周年的纪念日（2021/11/10）里，社区发布了期待已久的 5.0 正式版，借着这个机会，一起回顾 Apache ShardingSphere 的前世今生。\n\n- 2014 年，当当针对电商平台推出了统一开发框架 dd-frame，目的是通过分离业务和技术代码，实现开发框架统一化、技术组件标准化以及跨组沟通高效化，使研发人员的精力最大化的聚焦在业务开发上。开发框架中名为 dd-rdb 的关系型数据库模块专门用于负责数据访问，可实现简单的分库分表功能，它就是 Sharding-JDBC 的前身，也是 dd-frame 2.x 中重点规划的部分。     \n \n- 2015 年，当当决定重构 WMS 和 TMS，设计上需要引用分库分表方案，天时地利人和，当当架构部在 9 月正式启动了项目，同年 12 月份 Sharding-JDBC 1.0.0 在当当内部发布，正式开启了 ShardingSphere 的征途。\n \n- 2016 年初，Sharding-JDBC 从 dd-rdb 中剥离，向社区开源，产品形态是增强版 JDBC 驱动，以 jar 包形式提供服务。\n \n- 2017 年底，发布 2.0.0 版本，打开了数据库治理功能。\n\n- 2018 年，进入 Apache 软件基金会。3.0.0 版本是一个华丽的转身，独立服务形态的 Sharding-Proxy 面世，实现了异构开发语言的需求，同时项目名称从 Sharding-JDBC 更名为 ShardingSphere，迈出了构建数据库上层标准和生态的第一步。     \n \n- 2019 年，发布 4.0.0 版本，可支持更多的数据库产品。\n \n- 2020 年，毕业成为 Apache 软件基金会的顶级项目。    \n\n- 2021 年 11 月 10 日，发布 5.0.0 GA 版，作为加入 Apache 软件基金会三周年纪念日的礼物，呈现给社区及整个分布式数据库和安全生态领域。     \n\n![当当3.png](https://official-media.sphere-ex.com/3_ae2b522cd5.png)\n Apache ShardingSphere - RoadMap\n\n从 5.0.0 版本开始，Apache ShardingSphere 正式开启了以可插拔架构为核心的全新阶段，实现了由过去数据分片单一应用场景到现在复杂应用环境下综合数据治理的身份转变与能力提升。在新版本中，Apache ShardingSphere 具备了更多新特性，并拥有了更加成熟的大数据解决方案。\n\n首先，基于可插拔架构对内核进行了全面改造，内核中的各个功能可以任意组合并叠加使用。其次，为了提升 SQL 分布式查询能力，5.0.0 GA 版打造了全新的 Federation 执行引擎，来满足用户复杂的业务场景。此外，5.0.0 GA 版在内核功能 API 层面也进行了大量优化，旨在降低用户使用这些功能的成本。\n\n## 写在结尾\n\n全链条数字化驱动着当当高质量发展，让全民阅读触手可及。在必不可少的自研 WMS 一环中，ShardingSphere 在数据层提供了强力支撑。\n\nApache ShardingSphere 历经两年的迭代与打磨，5.0.0 GA 版本已面世。趋近成熟的可插拔生态，标志着 Apache ShardingSphere 从分库分表中间件工具蜕变为以 Database Plus 理念为新航标。重塑分布式可插拔体系，助力整个数据库行业带来新风向和更有价值的解决方案。\n\n更多内容欢迎点击阅读原文链接访问中文社区 OpenSEC（Open SphereEx Community），一起畅聊开源。\n\n","date":"2022-04-29","author":"SphereEx","excerpt":"历经两年的迭代与打磨，可插拔生态趋近成熟，标志着 Apache ShardingSphere 从分库分表中间件蜕变为以 Database Plus 为理念的分布式数据库生态系统。","metaDescription":null,"createdAt":"2022-04-29T08:49:24.970Z","updatedAt":"2022-11-02T05:36:20.351Z","publishedAt":"2022-04-29T08:49:28.304Z","locale":"zh"}}]}}},"article":{"id":11,"attributes":{"feature":false,"title":"The SphereEx-Console Enterprise Grade Data Governance Platform is Officially Released","content":">On January 27th, SphereEx officially launched SphereEx-Console, a data monitoring and management platform. It provides a one-stop solution incorporating Apache ShardingSphere and SphereEx as the core, a powerful user interface to manage data clusters, and a platform to simplify user configuration.\n>\n>By simplifying operation & deployment processes, reducing entry barriers and data management challenges, SphereEx-Console improves enterprise operations and maintenance efficiency. \n\n\nExpanding data volumes and increasingly demanding agility requirements from front-end businesses have created significant challenges for enterprises in the finance, government and traditional manufacturing sectors. \n\nImproving underlying data architectures' adaptability, and upgrading it to a distributed ecosystem represent some of the new requirements - however, traditional centralized databases are inherently inadequate in terms of massive data carrying capacity. \n\nAs a result, distributed databases have emerged in recent years to meet this demand. Nevertheless, the complexity of distributed architectures poses great challenges to users. Simplifying users' experience has become a key database industry driver.\n\nAs a popular open source project, Apache ShardingSphere has successfully been implemented in multiple production scenarios, with an increasing number of enterprises adopting the Database Plus approach to transition from traditional relational databases to distributed databases. \n\nBased on Apache ShardingSphere a data platform on top of the existing databases is built, enabling distributed data capability to be deployed in the middle layer without requiring adjustments to the underlying data architecture. This approach allows enterprises to smoothly transition to distributed and cloud based platforms.\n\nThe SphereEx Enterprise Data Service Platform was created by leveraging ShardingSphere's open source kernel, and enhancing it with enterprise grade features. It provides improved data service capabilities, such as data sharding, data security etc.\n\n**SphereEx-Console is a powerful dashboard applied to the management and control of the SphereEx Enterprise Data Service Platform. It provides a one-stop solution with a user-friendly experience packaging resources, instances and plugins.**\n\nIt provides a visual approach to manage data clusters with Apache ShardingSphere and SphereEx as the core, while offering a platform to simplify user configuration, and ultimately improve enterprise operations & maintenance efficiency.\n\n## What is SphereEx-Console?\n\nThe SphereEx Enterprise Data Service Platform was created by leveraging ShardnginSphere's open source kernel, and enhancing it with enterprise grade features. It provides improved data service capabilities, such as data sharding, data security etc.\n\nSphereEx-Console is a powerful dashboard applied to the management and control of the SphereEx Enterprise Data Service Platform. It provides a one-stop solution with a user-friendly experience packaging multiple functions such as resource layer, instance layer and application layer.\n\nThe SphereEx-Console is used to manage the operation and maintenance of SphereEx Enterprise Data Service Platform. It supports operation, maintenance and development scenarios in Internet, finance and government industries.\n\nAs a SphereEx business data services cluster platform with ShardingSphere at its core, the SphereEx-Console visual data control platform provides a one-stop solution with a user friendly interface instead of complex code input, packaged with various features for the resource, instance and application layers. \n\n![Diagram Console EN.png](https://official-media.sphere-ex.com/Diagram_Console_EN_5f98720b3f.png)\n\n\n### SphereEx-Console Advantages\n\n**Easy to Use**\n\nIt improves the user experience and eliminates configuration errors. Users are not required to operate the SphereEx Enterprise Data Service Platform through configuration commands, greatly improving user experience. \n\n**Comprehensive**\n\nIt provides a unified solution for the management and control of the SphereEx Enterprise Data Service Platform - from basic resources to plugin capabilities.\n\n**Visual Monitoring**\n\nWith its data monitoring & management dashboard, SphereEx Enterprise Data Service Platform's clusters, instances and hosts monitoring data are visible online and in real time.\n\n### Industry Leading\n\nThe release of SphereEx-Console is an essential milestone for SphereEx's data management ecosystem. It improves and evolves Apache ShardingSphere in areas such as management difficulty and user interface. \n\nThe user interface greatly reduces enterprise operations & maintenance teams' learning costs, while the unified data management platform greatly improves operations and maintenance efficiency.\n\nAs a business founded the open source project Apache ShardingSphere's core team, SphereEx continues to enhance data governance as well as management & control capabilities. We are committed to providing users with a comprehensive Apache ShardingSphere application ecosystem and SphereEx enterprise grade capabilities.\n\n[Click here for more details!](https://sphere-ex.com/en/products/console/)","date":"2022-01-26","author":"SphereEx","excerpt":"Enhancing Enterprise Data Governance Capabilities","metaDescription":null,"createdAt":"2022-03-11T09:38:54.812Z","updatedAt":"2022-09-27T08:42:51.504Z","publishedAt":"2022-03-11T09:59:17.395Z","locale":"en","caseStudiesType":{"data":null},"cover":{"data":{"id":178,"attributes":{"name":"SphereEx-Console.png","alternativeText":"SphereEx-Console.png","caption":"SphereEx-Console.png","width":3751,"height":1596,"formats":{"thumbnail":{"name":"thumbnail_SphereEx-Console.png","hash":"thumbnail_Sphere_Ex_Console_46205ff4d3","ext":".png","mime":"image/png","width":245,"height":104,"size":26.2,"path":null,"url":"https://official-media.sphere-ex.com/thumbnail_Sphere_Ex_Console_46205ff4d3.png"},"large":{"name":"large_SphereEx-Console.png","hash":"large_Sphere_Ex_Console_46205ff4d3","ext":".png","mime":"image/png","width":1000,"height":425,"size":183.98,"path":null,"url":"https://official-media.sphere-ex.com/large_Sphere_Ex_Console_46205ff4d3.png"},"medium":{"name":"medium_SphereEx-Console.png","hash":"medium_Sphere_Ex_Console_46205ff4d3","ext":".png","mime":"image/png","width":750,"height":319,"size":129.65,"path":null,"url":"https://official-media.sphere-ex.com/medium_Sphere_Ex_Console_46205ff4d3.png"},"small":{"name":"small_SphereEx-Console.png","hash":"small_Sphere_Ex_Console_46205ff4d3","ext":".png","mime":"image/png","width":500,"height":213,"size":72.9,"path":null,"url":"https://official-media.sphere-ex.com/small_Sphere_Ex_Console_46205ff4d3.png"}},"hash":"Sphere_Ex_Console_46205ff4d3","ext":".png","mime":"image/png","size":345.31,"url":"https://official-media.sphere-ex.com/Sphere_Ex_Console_46205ff4d3.png","previewUrl":null,"provider":"dine-strapi-provider-upload-aws-s3","provider_metadata":null,"createdAt":"2022-03-11T09:32:09.548Z","updatedAt":"2022-03-11T09:32:09.548Z"}}},"metaLogo":{"data":null},"localizations":{"data":[{"id":12,"attributes":{"feature":true,"title":"增强企业数据服务及管控能力｜SphereEx-Console 可视化数据管控平台正式发布","content":">**1 月 27 日，SphereEx 正式推出可视化数据服务管控平台：SphereEx-Console。**\n>\n>作为一款以管理 ShardingSphere 为核心的 SphereEx 商业数据服务集群平台，SphereEx-Console 以平台的形式简化用户配置，极大简化用户操作和部署流程，进而降低新手入门门槛和企业管控难度，进一步提升企业运维效率。\n\n随着数据体量增长以及前端业务敏捷性的要求，金融、政府、传统制造等领域均面临着提升底层数据架构适配性、面向分布式生态进行架构升级。但传统集中式数据库在海量数据承载能力方面存在先天性不足，于是近些年来分布式数据库不断涌现，很好地满足这一诉求。但我们也看到，分布式架构天然的复杂性，对使用者提出了更高的要求，如何在新架构下简化用户体验，便捷普惠地享受到新架构带来的优势，成为各家重点考虑的因素。\n\n作为近些年火热的开源项目，Apache ShardingSphere 的应用范围越来越广，越来越多的企业选择采用 “数据库 + ShardingSphere” 的方式来实现传统关系型数据库到分布式数据库的转型过渡。以 Apache ShardingSphere 为基础，在原有数据库之上构建一套数据中间平台，将分布式数据服务增强能力部署在中间层，而不需对底层数据架构做出调整，进而帮助企业以更加平滑的方式获得分布式以及云上迁移能力。\n\n因此，为进一步降低用户应用门槛，拓宽 Apache ShardingSphere 的使用范围，**SphereEx 在开源内核 Apache ShardingSphere 的基础上推出 SphereEx-Console 可视化数据管控平台。** 作为一款以管理 ShardingSphere 为核心的 SphereEx 商业数据服务集群平台，SphereEx-Console 以平台的形式简化用户配置，极大简化用户操作和部署流程，进而降低新手入门门槛和企业管控难度，进一步提升企业运维效率。\n\n## 什么是 SphereEx-Console\n\n**SphereEx 控制台主要用于对 SphereEx 数据平台的运维管控，在互联网、金融、政务行业均能够支持运维和开发人员常见的操作场景。**\n\n作为一款以管理 ShardingSphere 为核心的 SphereEx 商业数据服务集群平台，SphereEx-Console 可视化数据管控平台以简便易用的操作界面代替相对复杂代码输入方式，结合内部针对资源、实例、插件等多种功能封装，为用户带来一站式的使用体验。\n\n![1.png](https://official-media.sphere-ex.com/1_5bd2d7ea7f.png)\n\n### 产品优势\n\n**功能易用**\n\n提高了用户体验，避免了配置错误，用户不需要通过配置和命令操作 SphereEx 企业数据服务平台，易用性得到极大提升，实现了平台使用的“零”瓶颈。\n\n**功能全面**\n\n完善开源版本的管理能力，提供了对 SphereEx 企业数据服务平台从基础资源到插件能力的管控，形成了对周边插件实现统一管控的解决方案。\n\n**功能可视**\n\n原生提供可视化的监控数据面板，可以实时在线查看 SphereEx 企业数据服务平台的集群、实例、主机的监控数据。\n\n\n### 行业价值\n\n**本次 SphereEx-Console 的发布，是 SphereEx 在数据管理生态下一次关键尝试，弥补了 Apache ShardingSphere 过去在管理易用性、可视化界面等维度的不足。** SphereEx-Console 以可视的操作界面，极大降低了企业运维人员的学习成本；统一的数据管控平台，也极大提升了企业的运维管理效率。\n\n作为一家以开源项目 Apache ShardingSphere 为基本的商业化公司，SphereEx 将持续增强自身在数据治理、管控等方面的能力，配以周边完善的生态基础，为用户提供更加全面和完善的 Apache ShardingSphere 应用生态以及 SphereEx 产品矩阵能力。\n\n**[点击了解详情](https://sphere-ex.com/zh/products/console/)**","date":"2022-01-26","author":"SphereEx","excerpt":"提供企业级的平台管控能力","metaDescription":null,"createdAt":"2022-03-11T09:39:49.579Z","updatedAt":"2022-03-11T09:55:15.098Z","publishedAt":"2022-03-11T09:40:24.284Z","locale":"zh"}}]}}}}},
    "staticQueryHashes": []}