<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>ShardingSphere</title>
    <link>https://shardingsphere.apache.org/document/1.4.1/en/</link>
    <description>Recent content on ShardingSphere</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    
	<atom:link href="https://shardingsphere.apache.org/document/1.4.1/en/index.xml" rel="self" type="application/rss+xml" />
    
    
    <item>
      <title>Authority</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-proxy/yaml-config/authentication/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-proxy/yaml-config/authentication/</guid>
      <description>It is used to set up initial user to login compute node, and authority data of storage node.
Configuration Item Explanation rules: - !AUTHORITY users: - # Username, authorized host and password for compute node. Format: &amp;lt;username&amp;gt;@&amp;lt;hostname&amp;gt;:&amp;lt;password&amp;gt;, hostname is % or empty string means do not care about authorized host provider: type: # authority provider for storage node, the default value is ALL_PRIVILEGES_PERMITTED Example ALL_PRIVILEGES_PERMITTED rules: - !AUTHORITY users: - root@localhost:root - my_user@:pwd provider: type: ALL_PRIVILEGES_PERMITTED SCHEMA_PRIVILEGES_PERMITTED rules: - !</description>
    </item>
    
    <item>
      <title>Build</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-scaling/build/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-scaling/build/</guid>
      <description>Build&amp;amp;Deployment  Execute the following command to compile and generate the ShardingSphere-Proxy binary package:  git clone --depth 1 https://github.com/apache/shardingsphere.git cd shardingsphere mvn clean install -Dmaven.javadoc.skip=true -Dcheckstyle.skip=true -Drat.skip=true -Djacoco.skip=true -DskipITs -DskipTests -Prelease The binary packages:
 /shardingsphere-distribution/shardingsphere-proxy-distribution/target/apache-shardingsphere-${latest.release.version}-shardingsphere-proxy-bin.tar.gz  Or get binary package from download page.
 Scaling is an experimental feature, if scaling job fail, you could try nightly version, click here to download nightly build.
  Unzip the proxy distribution package, modify the configuration file conf/config-sharding.</description>
    </item>
    
    <item>
      <title>Core Concept</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/features/encrypt/concept/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/features/encrypt/concept/</guid>
      <description>Logic Column Column name used to encryption, it is the logical column identification in SQL. It includes cipher column(required), query assistant column(optional) and plain column(optional).
Cipher Column Encrypted data column.
Query Assistant Column Column used to assistant for query. For non-idempotent encryption algorithms with higher security level, irreversible idempotent columns provided for query.
Plain Column Column used to persist plain column, for service provided during data encrypting. Should remove them after data clean.</description>
    </item>
    
    <item>
      <title>Core Concept</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/features/ha/concept/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/features/ha/concept/</guid>
      <description>high Availability Type Apache ShardingSphere does not provide high availability solution of database, it reuses 3rd party high availability solution and auto-detect switch of primary and replica databases. Specifically, the ability of Apache ShardingSphere provided is database discovery, detect the primary and replica databases automatically, and updates the connection of compute nodes to the databases.
Dynamic Readwrite-Splitting When high availability and readwrite-splitting are used together, there is unnecessary to configure specific primary and replica databases for readwrite-splitting.</description>
    </item>
    
    <item>
      <title>Core Concept</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/features/management/concept/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/features/management/concept/</guid>
      <description>Circuit Breaker Fuse connection between Apache ShardingSphere and the database. When an Apache ShardingSphere node exceeds the max load, stop the node&amp;rsquo;s access to the database, so that the database can ensure sufficient resources to provide services for other Apache ShardingSphere nodes.
Request Limit In the face of overload requests, open request limiting to protect some requests can still respond quickly.</description>
    </item>
    
    <item>
      <title>Core Concept</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/features/observability/concept/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/features/observability/concept/</guid>
      <description>Agent Based on bytecode enhance and plug-in design to provide tracing, metrics and logging features. Enable the plugin in agent to collect data and send data to the integrated 3rd APM system.
APM APM is the abbreviation for application performance monitoring. It works for performance diagnosis of distributed systems, including chain demonstration, service topology analysis and so on.
Tracing Tracing data between distributed services or internal processes will be collected by agent.</description>
    </item>
    
    <item>
      <title>Core Concept</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/features/readwrite-splitting/concept/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/features/readwrite-splitting/concept/</guid>
      <description>Primary Database It refers to the database used in data insertion, update and deletion. It only supports single primary database for now.
Replica Database It refers to the database used in data query. It supports multiple replica databases.
Primary Replica Replication It refers to the operation to asynchronously replicate data from the primary database to the replica database. Because of the asynchrony of primary-replica synchronization, there may be short-time data inconsistency between them.</description>
    </item>
    
    <item>
      <title>Core Concept</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/features/scaling/concept/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/features/scaling/concept/</guid>
      <description>Scaling Job It refers one complete process of scaling data from old rule to new rule.
Inventory Data It refers all existing data stored in data nodes before the scaling job started.
Incremental Data It refers the new data generated by application during scaling job.</description>
    </item>
    
    <item>
      <title>Core Concept</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/features/shadow/concept/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/features/shadow/concept/</guid>
      <description>Production Database The database used for production data.
Shadow Database The database for pressure testing data isolation.
Shadow Algorithm The shadow algorithms are closely related to business, there are 2 types of shadow algorithms provided.
 Column based shadow algorithm  Recognize data from SQL and route to shadow databases. Suitable for test data driven scenario.
 Hint based shadow algorithm  Recognize comment from SQL and route to shadow databases.</description>
    </item>
    
    <item>
      <title>CREATE SHARDING TABLE RULE</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/reference/distsql/syntax/rdl/rule-definition/create-sharding-table-rule/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/reference/distsql/syntax/rdl/rule-definition/create-sharding-table-rule/</guid>
      <description>Description The CREATE SHARDING TABLE RULE syntax is used to add sharding table rule for the currently selected schema
Syntax CreateShardingTableRule ::= &amp;#39;CREATE&amp;#39; &amp;#39;SHARDING&amp;#39; &amp;#39;TABLE&amp;#39; &amp;#39;RULE&amp;#39; ( tableDefinition | autoTableDefinition ) ( &amp;#39;,&amp;#39; ( tableDefinition | autoTableDefinition ) )* tableDefinition ::= tableName &amp;#39;(&amp;#39; &amp;#39;DATANODES&amp;#39; &amp;#39;(&amp;#39; dataNode ( &amp;#39;,&amp;#39; dataNode )* &amp;#39;)&amp;#39; ( &amp;#39;,&amp;#39; &amp;#39;DATABASE_STRATEGY&amp;#39; &amp;#39;(&amp;#39; strategyDefinition &amp;#39;)&amp;#39; )? ( &amp;#39;,&amp;#39; &amp;#39;TABLE_STRATEGY&amp;#39; &amp;#39;(&amp;#39; strategyDefinition &amp;#39;)&amp;#39; )? ( &amp;#39;,&amp;#39; &amp;#39;KEY_GENERATE_STRATEGY&amp;#39; &amp;#39;(&amp;#39; keyGenerateStrategyDefinition &amp;#39;)&amp;#39; )?</description>
    </item>
    
    <item>
      <title>Hint</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/special-api/sharding/hint/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/special-api/sharding/hint/</guid>
      <description>Introduction Apache ShardingSphere uses ThreadLocal to manage sharding key value or hint route. Users can add sharding values to HintManager, and those values only take effect within the current thread.
Apache ShardingSphere is able to add special comments in SQL to hint route too.
Usage of hint:
 Sharding columns are not in SQL and table definition, but in external business logic. Some operations forced to do in the primary database.</description>
    </item>
    
    <item>
      <title>Local Transaction</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/features/transaction/use-norms/local-transaction/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/features/transaction/use-norms/local-transaction/</guid>
      <description>Supported  Support none-cross-database transactions. For example, sharding table or sharding database with its route result in same database; Support cross-database transactions caused by logic exceptions. For example, update two databases in transaction with exception thrown, data can rollback in both databases.  Unsupported  Do not support the cross-database transactions caused by network or hardware crash. For example, when update two databases in transaction, if one database crashes before commit, then only the data of the other database can commit.</description>
    </item>
    
    <item>
      <title>Metadata Repository</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/builtin-algorithm/metadata-repository/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/builtin-algorithm/metadata-repository/</guid>
      <description>File Repository Type: File
Mode: Standalone
Attributes:
   Name Type Description Default Value     path String Path for metadata persist .shardingsphere    ZooKeeper Repository Type: ZooKeeper
Mode: Cluster
Attributes:
   Name Type Description Default Value     retryIntervalMilliseconds int Milliseconds of retry interval 500   maxRetries int Max retries of client connection 3   timeToLiveSeconds int Seconds of ephemeral data live 60   operationTimeoutMilliseconds int Milliseconds of operation timeout 500   digest String Password of login     Etcd Repository Type: Etcd</description>
    </item>
    
    <item>
      <title>Mode</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/dev-manual/mode/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/dev-manual/mode/</guid>
      <description>StandalonePersistRepository    SPI Name Description     StandalonePersistRepository Standalone mode Configuration persistence       Implementation Class Description     FileRepository File persistence   H2Repository H2 persistence    ClusterPersistRepository    SPI Name Description     ClusterPersistRepository Registry center repository       Implementation Class Description     CuratorZookeeperRepository ZooKeeper registry center repository   EtcdRepository Etcd registry center repository    GovernanceWatcher    SPI Name Description     GovernanceWatcher Governance watcher       Implementation Class Description     ComputeNodeStateChangedWatcher Compute node changed watcher   GlobalAckChangedWatcher Global ack changed watcher   GlobalLocksChangedWatcher Global locks changed watcher   GlobalRuleChangedWatcher Global rule changed watcher   MetaDataChangedWatcher Meta data changed watcher   PropertiesChangedWatcher Properties changed watcher   StorageNodeStateChangedWatcher Storage node changed watcher    </description>
    </item>
    
    <item>
      <title>Mode Configuration</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/java-api/mode/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/java-api/mode/</guid>
      <description>Root Configuration Class name: org.apache.shardingsphere.infra.config.mode.ModeConfiguration
Attributes:
   Name DataType Description Default Value     type String Type of mode configuration
Values could be: Memory, Standalone, Cluster Memory   repository PersistRepositoryConfiguration Persist repository configuration
Memory type does not need persist, could be null
Standalone type uses StandalonePersistRepositoryConfiguration
Cluster type uses ClusterPersistRepositoryConfiguration    overwrite boolean Whether overwrite persistent configuration with local configuration false    Standalone Persist Configuration Class name: org.</description>
    </item>
    
    <item>
      <title>Mode Configuration</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/spring-boot-starter/mode/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/spring-boot-starter/mode/</guid>
      <description>Default is Memory mode.
Configuration Item Explanation spring.shardingsphere.mode.type= # Type of mode configuration. Values could be: Memory, Standalone, Cluster spring.shardingsphere.mode.repository= # Persist repository configuration. Memory type does not need persist spring.shardingsphere.mode.overwrite= # Whether overwrite persistent configuration with local configuration Memory Mode spring.shardingsphere.mode.type=Memory Standalone Mode spring.shardingsphere.mode.type=Standalone spring.shardingsphere.mode.repository.type= # Type of persist repository spring.shardingsphere.mode.repository.props.&amp;lt;key&amp;gt;= # Properties of persist repository spring.shardingsphere.mode.overwrite= # Whether overwrite persistent configuration with local configuration Cluster Mode spring.shardingsphere.mode.type=Cluster spring.shardingsphere.mode.repository.type= # Type of persist repository spring.</description>
    </item>
    
    <item>
      <title>Mode Configuration</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/spring-namespace/mode/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/spring-namespace/mode/</guid>
      <description>Configuration Item Explanation Namespace: http://shardingsphere.apache.org/schema/shardingsphere/datasource/datasource-5.1.1.xsd
&amp;lt;shardingsphere:mode /&amp;gt;
   Name Type Description Default Value     type Attribute Type of mode configuration. Values could be: Memory, Standalone, Cluster    repository-ref (?) Attribute Persist repository configuration. Memory type does not need persist    overwrite (?) Attribute Whether overwrite persistent configuration with local configuration false    Memory Mode It is the default value.</description>
    </item>
    
    <item>
      <title>Mode Configuration</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/yaml-config/mode/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/yaml-config/mode/</guid>
      <description>Configuration Item Explanation mode (?): # Default value is Memory type: # Type of mode configuration. Values could be: Memory, Standalone, Cluster repository (?): # Persist repository configuration. Memory type does not need persist overwrite: # Whether overwrite persistent configuration with local configuration Memory Mode mode: type: Memory Standalone Mode mode: type: Standalone repository: type: # Type of persist repository props: # Properties of persist repository foo_key: foo_value bar_key: bar_value overwrite: # Whether overwrite persistent configuration with local configuration Cluster Mode mode: type: Cluster repository: type: # Type of persist repository props: # Properties of persist repository namespace: # Namespace of registry center server-lists: # Server lists of registry center foo_key: foo_value bar_key: bar_value overwrite: # Whether overwrite persistent configuration with local configuration Please refer to Builtin Persist Repository List for more details about type of repository.</description>
    </item>
    
    <item>
      <title>MySQL</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/features/db-compatibility/feature-support/mysql/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/features/db-compatibility/feature-support/mysql/</guid>
      <description>The unsupported SQL list for MySQL are as follows:
User &amp;amp; Role    SQL     CREATE USER &amp;lsquo;finley&amp;rsquo;@&amp;lsquo;localhost&amp;rsquo; IDENTIFIED BY &amp;lsquo;password&amp;rsquo;   ALTER USER &amp;lsquo;finley&amp;rsquo;@&amp;lsquo;localhost&amp;rsquo; IDENTIFIED BY &amp;lsquo;new_password&amp;rsquo;   DROP USER &amp;lsquo;finley&amp;rsquo;@&amp;lsquo;localhost&amp;rsquo;;   CREATE ROLE &amp;lsquo;app_read&amp;rsquo;   DROP ROLE &amp;lsquo;app_read&amp;rsquo;   SHOW CREATE USER finley   SET PASSWORD = &amp;lsquo;auth_string&amp;rsquo;   SET ROLE DEFAULT;    Authorization    SQL     GRANT ALL ON db1.</description>
    </item>
    
    <item>
      <title>MySQL</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/features/db-compatibility/sql-parser/mysql/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/features/db-compatibility/sql-parser/mysql/</guid>
      <description>The unsupported SQL list for MySQL are as follows:
   SQL     CLONE LOCAL DATA DIRECTORY = &amp;lsquo;clone_dir&amp;rsquo;   INSTALL COMPONENT &amp;lsquo;file://component1&amp;rsquo;, &amp;lsquo;file://component2&amp;rsquo;   UNINSTALL COMPONENT &amp;lsquo;file://component1&amp;rsquo;, &amp;lsquo;file://component2&amp;rsquo;   REPAIR TABLE t_order   OPTIMIZE TABLE t_order   CHECKSUM TABLE t_order   CHECK TABLE t_order   SET RESOURCE GROUP group_name   DROP RESOURCE GROUP group_name   CREATE RESOURCE GROUP group_name TYPE = SYSTEM   ALTER RESOURCE GROUP rg1 VCPU = 0-63    </description>
    </item>
    
    <item>
      <title>Parse Engine</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/reference/sharding/parse/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/reference/sharding/parse/</guid>
      <description>Compared to other programming languages, SQL is relatively simple, but it is still a complete set of programming language, so there is no essential difference between parsing SQL grammar and parsing other languages (Java, C and Go, etc.).
Abstract Syntax Tree The parsing process can be divided into lexical parsing and syntactic parsing. Lexical parser is used to divide SQL into indivisible atomic signs, i.e., Token. According to the dictionary provided by different database dialect, it is categorized into keyword, expression, literal value and operator.</description>
    </item>
    
    <item>
      <title>Performance Test</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/reference/test/performance-test/performance-test/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/reference/test/performance-test/performance-test/</guid>
      <description>Target The performance of ShardingSphere-JDBC, ShardingSphere-Proxy and MySQL would be compared here. INSERT &amp;amp; UPDATE &amp;amp; DELETE which regarded as a set of associated operation and SELECT which focus on sharding optimization are used to evaluate performance for the basic scenarios (single route, readwrite-splitting &amp;amp; encrypt &amp;amp; sharding, full route). While another set of associated operation, INSERT &amp;amp; SELECT &amp;amp; DELETE, is used to evaluate performance for readwrite-splitting. To achieve the result better, these tests are performed with jmeter which based on a certain amount of data with 20 concurrent threads for 30 minutes, and one MySQL has been deployed on one machine, while the scenario of MySQL used for comparison is deployed on one machine with one instance.</description>
    </item>
    
    <item>
      <title>Resource Definition</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-proxy/distsql/syntax/rdl/resource-definition/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-proxy/distsql/syntax/rdl/resource-definition/</guid>
      <description>Syntax ADD RESOURCE dataSource [, dataSource] ... ALTER RESOURCE dataSource [, dataSource] ... DROP RESOURCE dataSourceName [, dataSourceName] ... [ignore single tables] dataSource: simpleSource | urlSource simpleSource: dataSourceName(HOST=hostname,PORT=port,DB=dbName,USER=user [,PASSWORD=password] [,PROPERTIES(poolProperty [,poolProperty] ...)]) urlSource: dataSourceName(URL=url,USER=user [,PASSWORD=password] [,PROPERTIES(poolProperty [,poolProperty]) ...]) poolProperty: &amp;#34;key&amp;#34;= (&amp;#34;value&amp;#34; | value)  Before adding resources, please confirm that a distributed database has been created, and execute the use command to successfully select a database Confirm that the added resource can be connected normally, otherwise it will not be added successfully Duplicate dataSourceName is not allowed to be added In the definition of a dataSource, the syntax of simpleSource and urlSource cannot be mixed poolProperty is used to customize connection pool properties, key must be the same as the connection pool property name, value supports int and String types ALTER RESOURCE is not allowed to change the real data source associated with this resource ALTER RESOURCE will switch the connection pool.</description>
    </item>
    
    <item>
      <title>Resource Query</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-proxy/distsql/syntax/rql/resource-query/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-proxy/distsql/syntax/rql/resource-query/</guid>
      <description>Syntax SHOW SCHEMA RESOURCES [FROM schemaName] Return Value Description    Column Description     name Data source name   type Data source type   host Data source host   port Data source port   db Database name   attribute Data source attribute    Example mysql&amp;gt; show schema resources; +------+-------+-----------+------+------+-------------------------------------------------------------------------------------------------------------------------------------------------------------+ | name | type | host | port | db | attribute | +------+-------+-----------+------+------+-------------------------------------------------------------------------------------------------------------------------------------------------------------+ | ds_0 | MySQL | 127.</description>
    </item>
    
    <item>
      <title>Sharding</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/java-api/rules/sharding/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/java-api/rules/sharding/</guid>
      <description>Root Configuration Class name: org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration
Attributes:
   Name DataType Description Default Value     tables (+) Collection&amp;lt;ShardingTableRuleConfiguration&amp;gt; Sharding table rules -   autoTables (+) Collection&amp;lt;ShardingAutoTableRuleConfiguration&amp;gt; Sharding automatic table rules -   bindingTableGroups (*) Collection&amp;lt;String&amp;gt; Binding table rules Empty   broadcastTables (*) Collection&amp;lt;String&amp;gt; Broadcast table rules Empty   defaultDatabaseShardingStrategy (?) ShardingStrategyConfiguration Default database sharding strategy Not sharding   defaultTableShardingStrategy (?) ShardingStrategyConfiguration Default table sharding strategy Not sharding   defaultKeyGenerateStrategy (?</description>
    </item>
    
    <item>
      <title>Sharding</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/spring-boot-starter/rules/sharding/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/spring-boot-starter/rules/sharding/</guid>
      <description>Configuration Item Explanation spring.shardingsphere.datasource.names= # Omit the data source configuration, please refer to the usage # Standard sharding table configuration spring.shardingsphere.rules.sharding.tables.&amp;lt;table-name&amp;gt;.actual-data-nodes= # Describe data source names and actual tables, delimiter as point, multiple data nodes separated with comma, support inline expression. Absent means sharding databases only. # Databases sharding strategy, use default databases sharding strategy if absent. sharding strategy below can choose only one. # For single sharding column scenario spring.</description>
    </item>
    
    <item>
      <title>Sharding</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/spring-namespace/rules/sharding/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/spring-namespace/rules/sharding/</guid>
      <description>Configuration Item Explanation Namespace: http://shardingsphere.apache.org/schema/shardingsphere/sharding/sharding-5.1.1.xsd
&amp;lt;sharding:rule /&amp;gt;
   Name Type Description     id Attribute Spring Bean Id   table-rules (?) Tag Sharding table rule configuration   auto-table-rules (?) Tag Automatic sharding table rule configuration   binding-table-rules (?) Tag Binding table rule configuration   broadcast-table-rules (?) Tag Broadcast table rule configuration   default-database-strategy-ref (?) Attribute Default database strategy name   default-table-strategy-ref (?</description>
    </item>
    
    <item>
      <title>Sharding</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/yaml-config/rules/sharding/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/yaml-config/rules/sharding/</guid>
      <description>Configuration Item Explanation rules: - !SHARDING tables: # Sharding table configuration &amp;lt;logic-table-name&amp;gt; (+): # Logic table name actualDataNodes (?): # Describe data source names and actual tables (refer to Inline syntax rules) databaseStrategy (?): # Databases sharding strategy, use default databases sharding strategy if absent. sharding strategy below can choose only one. standard: # For single sharding column scenario shardingColumn: # Sharding column name shardingAlgorithmName: # Sharding algorithm name complex: # For multiple sharding columns scenario shardingColumns: # Sharding column names, multiple columns separated with comma shardingAlgorithmName: # Sharding algorithm name hint: # Sharding by hint shardingAlgorithmName: # Sharding algorithm name none: # Do not sharding tableStrategy: # Tables sharding strategy, same as database sharding strategy keyGenerateStrategy: # Key generator strategy column: # Column name of key generator keyGeneratorName: # Key generator name autoTables: # Auto Sharding table configuration t_order_auto: # Logic table name actualDataSources (?</description>
    </item>
    
    <item>
      <title>Sharding</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-proxy/distsql/syntax/rdl/rule-definition/sharding/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-proxy/distsql/syntax/rdl/rule-definition/sharding/</guid>
      <description>Syntax Sharding Table Rule CREATE SHARDING TABLE RULE shardingTableRuleDefinition [, shardingTableRuleDefinition] ... ALTER SHARDING TABLE RULE shardingTableRuleDefinition [, shardingTableRuleDefinition] ... DROP SHARDING TABLE RULE tableName [, tableName] ... CREATE DEFAULT SHARDING shardingScope STRATEGY (shardingStrategy) ALTER DEFAULT SHARDING shardingScope STRATEGY (shardingStrategy) DROP DEFAULT SHARDING shardingScope STRATEGY; CREATE SHARDING ALGORITHM shardingAlgorithmDefinition [, shardingAlgorithmDefinition] ... ALTER SHARDING ALGORITHM shardingAlgorithmDefinition [, shardingAlgorithmDefinition] ... DROP SHARDING ALGORITHM algorithmName [, algorithmName] ... CREATE SHARDING KEY GENERATOR keyGeneratorDefinition [, keyGeneratorDefinition] .</description>
    </item>
    
    <item>
      <title>Sharding</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-proxy/distsql/syntax/rql/rule-query/sharding/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-proxy/distsql/syntax/rql/rule-query/sharding/</guid>
      <description>Syntax Sharding Table Rule SHOW SHARDING TABLE tableRule | RULES [FROM schemaName] SHOW SHARDING ALGORITHMS [FROM schemaName] SHOW UNUSED SHARDING ALGORITHMS [FROM schemaName] SHOW SHARDING KEY GENERATORS [FROM schemaName] SHOW UNUSED SHARDING KEY GENERATORS [FROM schemaName] SHOW SHARDING TABLE RULES USED KEY GENERATOR keyGeneratorName [FROM schemaName] SHOW DEFAULT SHARDING STRATEGY SHOW SHARDING TABLE NODES; tableRule: RULE tableName  Support query all data fragmentation rules and specified table query Support query all sharding algorithms  Sharding Binding Table Rule SHOW SHARDING BINDING TABLE RULES [FROM schemaName] Sharding Broadcast Table Rule SHOW SHARDING BROADCAST TABLE RULES [FROM schemaName] Sharding Scaling Rule SHOW SHARDING SCALING RULES [FROM schemaName] Return Value Description Sharding Table Rule    Column Description     table Logical table name   actual_data_nodes Actual data node   actual_data_sources Actual data source (Displayed when creating rules by RDL)   database_strategy_type Database sharding strategy type   database_sharding_column Database sharding column   database_sharding_algorithm_type Database sharding algorithm type   database_sharding_algorithm_props Database sharding algorithm properties   table_strategy_type Table sharding strategy type   table_sharding_column Table sharding column   table_sharding_algorithm_type Table sharding algorithm type   table_sharding_algorithm_props Table sharding algorithm properties   key_generate_column Sharding key generator column   key_generator_type Sharding key generator type   key_generator_props Sharding key generator properties    Sharding Algorithms    Column Description     name Sharding algorithm name   type Sharding algorithm type   props Sharding algorithm properties    Unused Sharding Algorithms    Column Description     name Sharding algorithm name   type Sharding algorithm type   props Sharding algorithm properties    Sharding key generators    Column Description     name Sharding key generator name   type Sharding key generator type   props Sharding key generator properties    Unused Sharding Key Generators    Column Description     name Sharding key generator name   type Sharding key generator type   props Sharding key generator properties    Default Sharding Strategy    Column Description     name Strategy name   type Sharding strategy type   sharding_column Sharding column   sharding_algorithm_name Sharding algorithm name   sharding_algorithm_type Sharding algorithm type   sharding_algorithm_props Sharding algorithm properties    Sharding Table Nodes    Column Description     name Sharding rule name   nodes Sharding nodes    Sharding Binding Table Rule    Column Description     sharding_binding_tables sharding Binding Table list    Sharding Broadcast Table Rule    Column Description     sharding_broadcast_tables sharding Broadcast Table list    Sharding Scaling Rule    Column Description     name name of sharding scaling rule   input data read configuration   output data write configuration   stream_channel algorithm of stream channel   completion_detector algorithm of completion detecting   data_consistency_checker algorithm of data consistency checking    Example Sharding Table Rule SHOW SHARDING TABLE RULES</description>
    </item>
    
    <item>
      <title>Sharding</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-proxy/distsql/usage/sharding-rule/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-proxy/distsql/usage/sharding-rule/</guid>
      <description>Resource Operation  Configure data source information  ADD RESOURCE ds_0 ( HOST=127.0.0.1, PORT=3306, DB=ds_1, USER=root, PASSWORD=root ); ADD RESOURCE ds_1 ( HOST=127.0.0.1, PORT=3306, DB=ds_2, USER=root, PASSWORD=root ); Rule Operation  Create sharding rule  CREATE SHARDING TABLE RULE t_order( RESOURCES(ds_0,ds_1), SHARDING_COLUMN=order_id, TYPE(NAME=hash_mod,PROPERTIES(&amp;#34;sharding-count&amp;#34;=4)), KEY_GENERATE_STRATEGY(COLUMN=order_id,TYPE(NAME=snowflake)) );  Create sharding table  CREATE TABLE `t_order` ( `order_id` int NOT NULL, `user_id` int NOT NULL, `status` varchar(45) DEFAULT NULL, PRIMARY KEY (`order_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4  Drop sharding table  DROP TABLE t_order;  Drop sharding rule  DROP SHARDING TABLE RULE t_order;  Drop resource  DROP RESOURCE ds_0, ds_1;  Drop distributed database  DROP DATABASE foo_db; </description>
    </item>
    
    <item>
      <title>ShardingSphere-JDBC</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/quick-start/shardingsphere-jdbc-quick-start/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/quick-start/shardingsphere-jdbc-quick-start/</guid>
      <description>Import Maven Dependency &amp;lt;dependency&amp;gt; &amp;lt;groupId&amp;gt;org.apache.shardingsphere&amp;lt;/groupId&amp;gt; &amp;lt;artifactId&amp;gt;shardingsphere-jdbc-core&amp;lt;/artifactId&amp;gt; &amp;lt;version&amp;gt;${latest.release.version}&amp;lt;/version&amp;gt; &amp;lt;/dependency&amp;gt;  Notice: Please change ${latest.release.version} to the actual version.
 Rules Configuration ShardingSphere-JDBC can be configured by four methods, Java, YAML, Spring namespace and Spring boot starter. Developers can choose the suitable method according to different situations. Please refer to User Manual for more details.
3. Create Data Source Use ShardingSphereDataSourceFactory and rule configurations to create ShardingSphereDataSource, which implements DataSource interface of JDBC.</description>
    </item>
    
    <item>
      <title>SQL</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/features/sharding/use-norms/sql/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/features/sharding/use-norms/sql/</guid>
      <description>SQL Supporting Status Compatible with all regular SQL when routing to single data node; The SQL routing to multiple data nodes is pretty complex, it divides the scenarios as totally supported, experimental supported and unsupported.
Totally Supported Fully support DML, DDL, DCL, TCL and most regular DAL. Support complex query with pagination, DISTINCT, ORDER BY, GROUP BY, aggregation and table JOIN.
Regular Query  SELECT Clause  SELECT select_expr [, select_expr .</description>
    </item>
    
    <item>
      <title>SQL Parser Test</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/reference/test/module-test/parser-test/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/reference/test/module-test/parser-test/</guid>
      <description>Prepare Data Not like Integration test, SQL parse test does not need a specific database environment, just define the sql to parse, and the assert data:
SQL Data As mentioned sql-case-id in Integration test, test-case-id could be shared in different module to test, and the file is at shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/resources/sql/supported/${SQL-TYPE}/*.xml
Assert Data The assert data is at shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/resources/case/${SQL-TYPE}/*.xml in that xml file, it could assert against the table name, token or sql condition and so on.</description>
    </item>
    
    <item>
      <title>Sysbench Test</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/reference/test/performance-test/sysbench-test/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/reference/test/performance-test/sysbench-test/</guid>
      <description>At least 5 machines are required:
Jenkins * 1: ${host-jenkins} Sysbench * 1: ${host-sysbench} ShardingSphere-Proxy * 1: ${host-proxy} MySQL Server * 2: ${host-mysql-1}, ${host-mysql-2} The hardware standards of Jenkins and Sysbench machines can appropriately lower.
Software Environment Jenkins: The latest version Sysbench: 1.0.20 ShardingSphere-Proxy: package from master branch MySQL Server: 5.7.28 Test Program According to the above hardware environment, the configuration parameters are as follows, and the parameters should be adjusted according to the changes in the hardware environment.</description>
    </item>
    
    <item>
      <title>Table</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/features/sharding/concept/table/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/features/sharding/concept/table/</guid>
      <description>Table is the core concept of data sharding transparently. There are diversified tables provided for different data sharding requirements by Apache ShardingSphere.
Logic Table The logical name of the horizontal sharding databases (tables) with the same schema, it is the logical table identification in SQL. For instance, the data of order is divided into 10 tables according to the last number of the primary key, and they are from t_order_0 to t_order_9, whose logic name is t_order.</description>
    </item>
    
    <item>
      <title>Use Agent</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/special-api/observability/agent/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/special-api/observability/agent/</guid>
      <description>Build Local Build  &amp;gt; cd shardingsphere/shardingsphere-agent &amp;gt; mvn clean install Download (Not Released Yet)  &amp;gt; weget http://xxxxx/shardingsphere-agent.tar.gz &amp;gt; tar -zxvcf shardingsphere-agent.tar.gz Configuration Found agent.yaml file:
applicationName: shardingsphere-agent ignoredPluginNames: # A collection of ignored plugins - Opentracing - Jaeger - Zipkin - Prometheus - OpenTelemetry - Logging plugins: Prometheus: host: &amp;#34;localhost&amp;#34; port: 9090 props: JVM_INFORMATION_COLLECTOR_ENABLED : &amp;#34;true&amp;#34; Jaeger: host: &amp;#34;localhost&amp;#34; port: 5775 props: SERVICE_NAME: &amp;#34;shardingsphere-agent&amp;#34; JAEGER_SAMPLER_TYPE: &amp;#34;const&amp;#34; JAEGER_SAMPLER_PARAM: &amp;#34;1&amp;#34; JAEGER_REPORTER_LOG_SPANS: &amp;#34;true&amp;#34; JAEGER_REPORTER_FLUSH_INTERVAL: &amp;#34;1&amp;#34; Zipkin: host: &amp;#34;localhost&amp;#34; port: 9411 props: SERVICE_NAME: &amp;#34;shardingsphere-agent&amp;#34; URL_VERSION: &amp;#34;/api/v2/spans&amp;#34; Opentracing: props: OPENTRACING_TRACER_CLASS_NAME: &amp;#34;org.</description>
    </item>
    
    <item>
      <title>Use Binary Tar</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-proxy/startup/bin/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-proxy/startup/bin/</guid>
      <description>Startup Steps  Get ShardingSphere-Proxy binary package from download page. After the decompression, revise conf/server.yaml and documents begin with config- prefix, conf/config-xxx.yaml for example, to configure sharding rules and readwrite-splitting rules. Please refer to Configuration Manual for the configuration method. Please run bin/start.sh for Linux operating system; run bin/start.bat for Windows operating system to start ShardingSphere-Proxy. To configure start port and document location, please refer to Quick Start.  Using database protocol Using PostgreSQL  Use any PostgreSQL terminal to connect, such as psql -U root -h 127.</description>
    </item>
    
    <item>
      <title>Use Java API</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/special-api/transaction/java-api/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/special-api/transaction/java-api/</guid>
      <description>Import Maven Dependency &amp;lt;dependency&amp;gt; &amp;lt;groupId&amp;gt;org.apache.shardingsphere&amp;lt;/groupId&amp;gt; &amp;lt;artifactId&amp;gt;shardingsphere-jdbc-core&amp;lt;/artifactId&amp;gt; &amp;lt;version&amp;gt;${shardingsphere.version}&amp;lt;/version&amp;gt; &amp;lt;/dependency&amp;gt; &amp;lt;!-- import if using XA transaction --&amp;gt; &amp;lt;dependency&amp;gt; &amp;lt;groupId&amp;gt;org.apache.shardingsphere&amp;lt;/groupId&amp;gt; &amp;lt;artifactId&amp;gt;shardingsphere-transaction-xa-core&amp;lt;/artifactId&amp;gt; &amp;lt;version&amp;gt;${shardingsphere.version}&amp;lt;/version&amp;gt; &amp;lt;/dependency&amp;gt; &amp;lt;!-- import if using BASE transaction --&amp;gt; &amp;lt;dependency&amp;gt; &amp;lt;groupId&amp;gt;org.apache.shardingsphere&amp;lt;/groupId&amp;gt; &amp;lt;artifactId&amp;gt;shardingsphere-transaction-base-seata-at&amp;lt;/artifactId&amp;gt; &amp;lt;version&amp;gt;${shardingsphere.version}&amp;lt;/version&amp;gt; &amp;lt;/dependency&amp;gt; Use Distributed Transaction TransactionTypeHolder.set(TransactionType.XA); // Support TransactionType.LOCAL, TransactionType.XA, TransactionType.BASE try (Connection conn = dataSource.getConnection()) { // Use ShardingSphereDataSource  conn.setAutoCommit(false); PreparedStatement ps = conn.prepareStatement(&amp;#34;INSERT INTO t_order (user_id, status) VALUES (?, ?)&amp;#34;); ps.setObject(1, 1000); ps.setObject(2, &amp;#34;init&amp;#34;); ps.executeUpdate(); conn.commit(); } </description>
    </item>
    
    <item>
      <title>XA</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/features/transaction/concept/xa/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/features/transaction/concept/xa/</guid>
      <description>2PC transaction submit uses the DTP Model defined by X/OPEN, in which created AP (Application Program), TM (Transaction Manager) and RM (Resource Manager) can guarantee a high transaction consistency. TM and RM use XA protocol for bidirectional streaming. Compared with traditional local transactions, XA transactions have a prepared phase, where the database cannot only passively receive commands, but also notify the submitter whether the transaction can be accepted. TM can collect all the prepared results of branch transactions before submitting all of them together, which has guaranteed the distributed consistency.</description>
    </item>
    
    <item>
      <title>XA Transaction</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/reference/transaction/2pc-xa-transaction/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/reference/transaction/2pc-xa-transaction/</guid>
      <description>XAShardingSphereTransactionManager is XA transaction manager of Apache ShardingSphere. Its main responsibility is manage and adapt multiple data sources, and sent corresponding transactions to concrete XA transaction manager.
Transaction Begin When receiving set autoCommit=0 from client, XAShardingSphereTransactionManager will use XA transaction managers to start overall XA transactions, which is marked by XID.
Execute actual sharding SQL After XAShardingSphereTransactionManager register the corresponding XAResource to the current XA transaction, transaction manager will send XAResource.</description>
    </item>
    
    <item>
      <title>YAML configuration</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/reference/api-change-history/shardingsphere-jdbc/yaml-configuration/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/reference/api-change-history/shardingsphere-jdbc/yaml-configuration/</guid>
      <description>5.0.0-alpha Data Sharding Configuration Item Explanation dataSources: # Omit the data source configuration, please refer to the usage rules: - !SHARDING tables: # Sharding table configuration &amp;lt;logic-table-name&amp;gt; (+): # Logic table name actualDataNodes (?): # Describe data source names and actual tables (refer to Inline syntax rules) databaseStrategy (?): # Databases sharding strategy, use default databases sharding strategy if absent. sharding strategy below can choose only one. standard: # For single sharding column scenario shardingColumn: # Sharding column name shardingAlgorithmName: # Sharding algorithm name complex: # For multiple sharding columns scenario shardingColumns: # Sharding column names, multiple columns separated with comma shardingAlgorithmName: # Sharding algorithm name hint: # Sharding by hint shardingAlgorithmName: # Sharding algorithm name none: # Do not sharding tableStrategy: # Tables sharding strategy, same as database sharding strategy keyGenerateStrategy: # Key generator strategy column: # Column name of key generator keyGeneratorName: # Key generator name autoTables: # Auto Sharding table configuration t_order_auto: # Logic table name actualDataSources (?</description>
    </item>
    
    <item>
      <title>ADD RESOURCE</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/reference/distsql/syntax/rdl/resource-definition/add-resource/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/reference/distsql/syntax/rdl/resource-definition/add-resource/</guid>
      <description>Description The ADD RESOURCE syntax is used to add resources for the currently selected schema.
Syntax AddResource ::= &amp;#39;ADD&amp;#39; &amp;#39;RESOURCE&amp;#39; dataSource (&amp;#39;,&amp;#39; dataSource)* dataSource ::= dataSourceName &amp;#39;(&amp;#39; ( &amp;#39;HOST&amp;#39; &amp;#39;=&amp;#39; hostName &amp;#39;,&amp;#39; &amp;#39;PORT&amp;#39; &amp;#39;=&amp;#39; port &amp;#39;,&amp;#39; &amp;#39;DB&amp;#39; &amp;#39;=&amp;#39; dbName | &amp;#39;URL&amp;#39; &amp;#39;=&amp;#39; url ) &amp;#39;,&amp;#39; &amp;#39;USER&amp;#39; &amp;#39;=&amp;#39; user (&amp;#39;,&amp;#39; &amp;#39;PASSWORD&amp;#39; &amp;#39;=&amp;#39; password )? (&amp;#39;,&amp;#39; &amp;#39;PROPERTIES&amp;#39; &amp;#39;(&amp;#39; ( key &amp;#39;=&amp;#39; value ) ( &amp;#39;,&amp;#39; key &amp;#39;=&amp;#39; value )* &amp;#39;)&amp;#39; )?&amp;#39;)&amp;#39; dataSourceName ::= identifier hostname ::= identifier | ip dbName ::= identifier port ::= int password ::= identifier | int | string user ::= identifier url ::= identifier | string Supplement  Before adding resources, please confirm that a schema has been created in Proxy, and execute the use command to successfully select a schema Confirm that the added resource can be connected normally, otherwise it will not be added successfully dataSourceName is case-sensitive dataSourceName needs to be unique within the current schema dataSourceName name only allows letters, numbers and _, and must start with a letter poolProperty is used to customize connection pool parameters, key must be the same as the connection pool parameter name, value supports int and String types When password contains special characters, it is recommended to use the string form; for example, the string form of password@123 is &amp;quot;password@123&amp;quot;  Example  Add resource using standard mode  ADD RESOURCE ds_0 ( HOST=127.</description>
    </item>
    
    <item>
      <title>APM Integration</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/special-api/observability/apm-integration/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/special-api/observability/apm-integration/</guid>
      <description>Usage Use OpenTracing  Method 1: inject Tracer provided by APM system through reading system parameters  Add startup arguments
-Dorg.apache.shardingsphere.tracing.opentracing.tracer.class=org.apache.skywalking.apm.toolkit.opentracing.SkywalkingTracer Call initialization method.
ShardingTracer.init();  Method 2: inject Tracer provided by APM through parameter.  ShardingTracer.init(new SkywalkingTracer()); Notice: when using SkyWalking OpenTracing agent, the OpenTracing plug-in of Apache ShardingSphere Agent cannot be used at the same time to prevent the two plug-ins from conflicting with each other.
Use SkyWalking&amp;rsquo;s Automatic Agent Please refer to SkyWalking Manual.</description>
    </item>
    
    <item>
      <title>Configuration</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/dev-manual/configuration/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/dev-manual/configuration/</guid>
      <description>RuleBuilder    SPI Name Description     RuleBuilder Used to convert user configurations to rule objects       Implementation Class Description     AlgorithmProvidedReadwriteSplittingRuleBuilder Used to convert algorithm-based read-write separation user configuration into read-write separation rule objects   AlgorithmProvidedDatabaseDiscoveryRuleBuilder Used to convert algorithm-based database discovery user configuration into database discovery rule objects   AlgorithmProvidedShardingRuleBuilder Used to convert algorithm-based sharding user configuration into sharding rule objects   AlgorithmProvidedEncryptRuleBuilder Used to convert algorithm-based encryption user configuration into encryption rule objects   AlgorithmProvidedShadowRuleBuilder Used to convert algorithm-based shadow database user configuration into shadow database rule objects   ReadwriteSplittingRuleBuilder Used to convert read-write separation user configuration into read-write separation rule objects   DatabaseDiscoveryRuleBuilder Used to convert database discovery user configuration into database discovery rule objects   SingleTableRuleBuilder Used to convert single-table user configuration into a single-table rule objects   AuthorityRuleBuilder Used to convert permission user configuration into permission rule objects   ShardingRuleBuilder Used to convert sharding user configuration into sharding rule objects   EncryptRuleBuilder Used to convert encrypted user configuration into encryption rule objects   ShadowRuleBuilder Used to convert shadow database user configuration into shadow database rule objects   TransactionRuleBuilder Used to convert transaction user configuration into transaction rule objects   SQLParserRuleBuilder Used to convert SQL parser user configuration into SQL parser rule objects    YamlRuleConfigurationSwapper    SPI Name Description     YamlRuleConfigurationSwapper Used to convert YAML configuration to standard user configuration       Implementation Class Description     ReadwriteSplittingRuleAlgorithmProviderConfigurationYamlSwapper Used to convert algorithm-based read-write separation configuration into read-write separation standard configuration   DatabaseDiscoveryRuleAlgorithmProviderConfigurationYamlSwapper Used to convert algorithm-based database discovery configuration into database discovery standard configuration   ShardingRuleAlgorithmProviderConfigurationYamlSwapper Used to convert algorithm-based sharding configuration into sharding standard configuration   EncryptRuleAlgorithmProviderConfigurationYamlSwapper Used to convert algorithm-based encryption configuration into encryption standard configuration   ShadowRuleAlgorithmProviderConfigurationYamlSwapper Used to convert algorithm-based shadow database configuration into shadow database standard configuration   ReadwriteSplittingRuleConfigurationYamlSwapper Used to convert the YAML configuration of read-write separation into the standard configuration of read-write separation   DatabaseDiscoveryRuleConfigurationYamlSwapper Used to convert the YAML configuration of database discovery into the standard configuration of database discovery   AuthorityRuleConfigurationYamlSwapper Used to convert the YAML configuration of permission rules into standard configuration of permission rules   ShardingRuleConfigurationYamlSwapper Used to convert the YAML configuration of the shard into the standard configuration of the shard   EncryptRuleConfigurationYamlSwapper Used to convert encrypted YAML configuration into encrypted standard configuration   ShadowRuleConfigurationYamlSwapper Used to convert the YAML configuration of the shadow database into the standard configuration of the shadow database   TransactionRuleConfigurationYamlSwapper Used to convert the YAML configuration of the transaction into the standard configuration of the transaction   SingleTableRuleConfigurationYamlSwapper Used to convert the YAML configuration of the single table into the standard configuration of the single table   SQLParserRuleConfigurationYamlSwapper Used to convert the YAML configuration of the SQL parser into the standard configuration of the SQL parser    ShardingSphereYamlConstruct    SPI Name Description     ShardingSphereYamlConstruct Used to convert customized objects and YAML to each other       Implementation Class Description     NoneShardingStrategyConfigurationYamlConstruct Used to convert non sharding strategy and YAML to each other    </description>
    </item>
    
    <item>
      <title>CREATE SHARDING ALGORITHM</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/reference/distsql/syntax/rdl/rule-definition/create-sharding-algorithm/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/reference/distsql/syntax/rdl/rule-definition/create-sharding-algorithm/</guid>
      <description>Description The CREATE SHARDING ALGORITHM syntax is used to create a sharding algorithm for the currently selected schema.
Syntax CreateShardingAlgorithm ::= &amp;#39;CREATE&amp;#39; &amp;#39;SHARDING&amp;#39; &amp;#39;ALGORITHM&amp;#39; shardingAlgorithmName &amp;#39;(&amp;#39; algorithmDefinition &amp;#39;)&amp;#39; algorithmDefinition ::= &amp;#39;TYPE&amp;#39; &amp;#39;(&amp;#39; &amp;#39;NAME&amp;#39; &amp;#39;=&amp;#39; algorithmType ( &amp;#39;,&amp;#39; &amp;#39;PROPERTIES&amp;#39; &amp;#39;(&amp;#39; propertyDefinition &amp;#39;)&amp;#39; )?&amp;#39;)&amp;#39; propertyDefinition ::= ( key &amp;#39;=&amp;#39; value ) ( &amp;#39;,&amp;#39; key &amp;#39;=&amp;#39; value )* shardingAlgorithmName ::= identifier algorithmType ::= identifier Supplement  algorithmType is the sharding algorithm type. For detailed sharding algorithm type information, please refer to Sharding Algorithm  Example 1.</description>
    </item>
    
    <item>
      <title>Data Node</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/features/sharding/concept/datanode/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/features/sharding/concept/datanode/</guid>
      <description>As the atomic unit of sharding, it consists of data source name and actual table name, e.g. ds_0.t_order_0.
Mapping relationship between logic tables and actual tables and can be divided into two kinds: uniform topology and user-defined topology.
Uniform topology It means that tables are evenly distributed in each data source, for example:
db0 ├── t_order0 └── t_order1 db1 ├── t_order0 └── t_order1 The data node configurations will be as follows:</description>
    </item>
    
    <item>
      <title>Data Source</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/java-api/data-source/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/java-api/data-source/</guid>
      <description>ShardingSphere-JDBC Supports all JDBC drivers and database connection pools.
Example In this example, the database driver is MySQL, and connection pool is HikariCP, which can be replaced with other database drivers and connection pools.
Map&amp;lt;String, DataSource&amp;gt; dataSourceMap = new HashMap&amp;lt;&amp;gt;(); // Configure the 1st data source HikariDataSource dataSource1 = new HikariDataSource(); dataSource1.setDriverClassName(&amp;#34;com.mysql.jdbc.Driver&amp;#34;); dataSource1.setJdbcUrl(&amp;#34;jdbc:mysql://localhost:3306/ds_1&amp;#34;); dataSource1.setUsername(&amp;#34;root&amp;#34;); dataSource1.setPassword(&amp;#34;&amp;#34;); dataSourceMap.put(&amp;#34;ds_1&amp;#34;, dataSource1); // Configure the 2nd data source HikariDataSource dataSource2 = new HikariDataSource(); dataSource2.setDriverClassName(&amp;#34;com.mysql.jdbc.Driver&amp;#34;); dataSource2.setJdbcUrl(&amp;#34;jdbc:mysql://localhost:3306/ds_2&amp;#34;); dataSource2.</description>
    </item>
    
    <item>
      <title>Data Source</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/spring-boot-starter/data-source/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/spring-boot-starter/data-source/</guid>
      <description>Use Native Data Source Configuration Item Explanation spring.shardingsphere.datasource.names= # Actual data source name, multiple split by `,` # &amp;lt;actual-data-source-name&amp;gt; indicate name of data source name spring.shardingsphere.datasource.&amp;lt;actual-data-source-name&amp;gt;.type= # Full class name of database connection pool spring.shardingsphere.datasource.&amp;lt;actual-data-source-name&amp;gt;.driver-class-name= # Class name of database driver, ref property of connection pool spring.shardingsphere.datasource.&amp;lt;actual-data-source-name&amp;gt;.jdbc-url= # Database URL, ref property of connection pool spring.shardingsphere.datasource.&amp;lt;actual-data-source-name&amp;gt;.username= # Database username, ref property of connection pool spring.shardingsphere.datasource.&amp;lt;actual-data-source-name&amp;gt;.password= # Database password, ref property of connection pool spring.</description>
    </item>
    
    <item>
      <title>Data Source</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/spring-namespace/data-source/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/spring-namespace/data-source/</guid>
      <description>Any data source configured as spring bean can be cooperated with spring namespace.
Example In this example, the database driver is MySQL, and connection pool is HikariCP, which can be replaced with other database drivers and connection pools.
&amp;lt;beans xmlns=&amp;#34;http://www.springframework.org/schema/beans&amp;#34; xmlns:xsi=&amp;#34;http://www.w3.org/2001/XMLSchema-instance&amp;#34; xmlns:shardingsphere=&amp;#34;http://shardingsphere.apache.org/schema/shardingsphere/datasource&amp;#34; xsi:schemaLocation=&amp;#34;http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://shardingsphere.apache.org/schema/shardingsphere/datasource http://shardingsphere.apache.org/schema/shardingsphere/datasource/datasource.xsd &amp;#34;&amp;gt; &amp;lt;bean id=&amp;#34;ds1&amp;#34; class=&amp;#34;com.zaxxer.hikari.HikariDataSource&amp;#34; destroy-method=&amp;#34;close&amp;#34;&amp;gt; &amp;lt;property name=&amp;#34;driverClassName&amp;#34; value=&amp;#34;com.mysql.jdbc.Driver&amp;#34; /&amp;gt; &amp;lt;property name=&amp;#34;jdbcUrl&amp;#34; value=&amp;#34;jdbc:mysql://localhost:3306/ds1&amp;#34; /&amp;gt; &amp;lt;property name=&amp;#34;username&amp;#34; value=&amp;#34;root&amp;#34; /&amp;gt; &amp;lt;property name=&amp;#34;password&amp;#34; value=&amp;#34;&amp;#34; /&amp;gt; &amp;lt;/bean&amp;gt; &amp;lt;bean id=&amp;#34;ds2&amp;#34; class=&amp;#34;com.</description>
    </item>
    
    <item>
      <title>Data Source</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/yaml-config/data-source/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/yaml-config/data-source/</guid>
      <description>It is divided into single data source configuration and multi data source configuration. ShardingSphere-JDBC Supports all JDBC drivers and database connection pools.
In this example, the database driver is MySQL, and connection pool is HikariCP, which can be replaced with other database drivers and connection pools.
Configuration Item Explanation dataSources: # Data sources configuration, multiple &amp;lt;data-source-name&amp;gt; available &amp;lt;data-source-name&amp;gt;: # Data source name dataSourceClassName: # Data source class name driverClassName: # Class name of database driver, ref property of connection pool jdbcUrl: # Database URL, ref property of connection pool username: # Database username, ref property of connection pool password: # Database password, ref property of connection pool # .</description>
    </item>
    
    <item>
      <title>Java API</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/reference/api-change-history/shardingsphere-jdbc/java-api/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/reference/api-change-history/shardingsphere-jdbc/java-api/</guid>
      <description>5.0.0-beta Sharding Root Configuration Class name: org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration
Attributes:
   Name DataType Description Default Value     tables (+) Collection&amp;lt;ShardingTableRuleConfiguration&amp;gt; Sharding table rules -   autoTables (+) Collection&amp;lt;ShardingAutoTableRuleConfiguration&amp;gt; Sharding automatic table rules -   bindingTableGroups (*) Collection&amp;lt;String&amp;gt; Binding table rules Empty   broadcastTables (*) Collection&amp;lt;String&amp;gt; Broadcast table rules Empty   defaultDatabaseShardingStrategy (?) ShardingStrategyConfiguration Default database sharding strategy Not sharding   defaultTableShardingStrategy (?) ShardingStrategyConfiguration Default table sharding strategy Not sharding   defaultKeyGenerateStrategy (?</description>
    </item>
    
    <item>
      <title>Manual</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-scaling/usage/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-scaling/usage/</guid>
      <description>Manual Environment JAVA, JDK 1.8+.
The migration scene we support:
   Source Target     MySQL(5.1.15 ~ 5.7.x) MySQL(5.1.15 ~ 5.7.x)   PostgreSQL(9.4 ~ ) PostgreSQL(9.4 ~ )   openGauss(2.1.0) openGauss(2.1.0)    Attention:
If the backend database is in following table, please download JDBC driver jar and put it into ${shardingsphere-proxy}/lib directory.
   RDBMS JDBC driver Reference     MySQL mysql-connector-java-5.</description>
    </item>
    
    <item>
      <title>openGauss</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/features/db-compatibility/sql-parser/opengauss/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/features/db-compatibility/sql-parser/opengauss/</guid>
      <description>The unsupported SQL list for openGauss are as follows:
   SQL     CREATE type avg_state AS (total bigint, count bigint);   CREATE AGGREGATE my_avg(int4) (stype = avg_state, sfunc = avg_transfn, finalfunc = avg_finalfn)   CREATE TABLE agg_data_2k AS SELECT g FROM generate_series(0, 1999) g;   CREATE SCHEMA alt_nsp1;   ALTER AGGREGATE alt_agg3(int) OWNER TO regress_alter_generic_user2;   CREATE CONVERSION alt_conv1 FOR &amp;lsquo;LATIN1&amp;rsquo; TO &amp;lsquo;UTF8&amp;rsquo; FROM iso8859_1_to_utf8;   CREATE FOREIGN DATA WRAPPER alt_fdw1   CREATE SERVER alt_fserv1 FOREIGN DATA WRAPPER alt_fdw1   CREATE LANGUAGE alt_lang1 HANDLER plpgsql_call_handler   CREATE STATISTICS alt_stat1 ON a, b FROM alt_regress_1   CREATE TEXT SEARCH DICTIONARY alt_ts_dict1 (template=simple)   CREATE RULE def_view_test_ins AS ON INSERT TO def_view_test DO INSTEAD INSERT INTO def_test SELECT new.</description>
    </item>
    
    <item>
      <title>Pagination</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/features/sharding/use-norms/pagination/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/features/sharding/use-norms/pagination/</guid>
      <description>Totally support pagination queries of MySQL, PostgreSQL and Oracle; partly support SQLServer pagination query due to its complexity.
Pagination Performance Performance Bottleneck Pagination with query offset too high can lead to a low data accessibility, take MySQL as an example:
SELECT * FROM t_order ORDER BY id LIMIT 1000000, 10 This SQL will make MySQL acquire another 10 records after skipping 1,000,000 records when it is not able to use indexes.</description>
    </item>
    
    <item>
      <title>PostgreSQL</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/features/db-compatibility/feature-support/postgresql/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/features/db-compatibility/feature-support/postgresql/</guid>
      <description>The unsupported SQL list for PostgreSQL are as follows:
TODO</description>
    </item>
    
    <item>
      <title>PostgreSQL</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/features/db-compatibility/sql-parser/postgresql/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/features/db-compatibility/sql-parser/postgresql/</guid>
      <description>The unsupported SQL list for PostgreSQL are as follows:
   SQL     CREATE type avg_state AS (total bigint, count bigint);   CREATE AGGREGATE my_avg(int4) (stype = avg_state, sfunc = avg_transfn, finalfunc = avg_finalfn)   CREATE TABLE agg_data_2k AS SELECT g FROM generate_series(0, 1999) g;   CREATE SCHEMA alt_nsp1;   ALTER AGGREGATE alt_agg3(int) OWNER TO regress_alter_generic_user2;   CREATE CONVERSION alt_conv1 FOR &amp;lsquo;LATIN1&amp;rsquo; TO &amp;lsquo;UTF8&amp;rsquo; FROM iso8859_1_to_utf8;   CREATE FOREIGN DATA WRAPPER alt_fdw1   CREATE SERVER alt_fserv1 FOREIGN DATA WRAPPER alt_fdw1   CREATE LANGUAGE alt_lang1 HANDLER plpgsql_call_handler   CREATE STATISTICS alt_stat1 ON a, b FROM alt_regress_1   CREATE TEXT SEARCH DICTIONARY alt_ts_dict1 (template=simple)   CREATE RULE def_view_test_ins AS ON INSERT TO def_view_test DO INSTEAD INSERT INTO def_test SELECT new.</description>
    </item>
    
    <item>
      <title>Properties</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-proxy/yaml-config/props/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-proxy/yaml-config/props/</guid>
      <description>Introduction Apache ShardingSphere provides the way of property configuration to configure system level configuration.
Configuration Item Explanation    Name Data Type Description Default Value Dynamic Update     sql-show (?) boolean Whether show SQL or not in log. Print SQL details can help developers debug easier. The log details include: logic SQL, actual SQL and SQL parse result. Enable this property will log into log topic ShardingSphere-SQL, log level is INFO.</description>
    </item>
    
    <item>
      <title>Readwrite splitting</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/spring-boot-starter/rules/readwrite-splitting/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/spring-boot-starter/rules/readwrite-splitting/</guid>
      <description>Configuration Item Explanation spring.shardingsphere.datasource.names= # Omit the data source configuration, please refer to the usage spring.shardingsphere.rules.readwrite-splitting.data-sources.&amp;lt;readwrite-splitting-data-source-name&amp;gt;.type= # Readwrite-splitting type, such as: Static, Dynamic spring.shardingsphere.rules.readwrite-splitting.data-sources.&amp;lt;readwrite-splitting-data-source-name&amp;gt;.props.auto-aware-data-source-name= # Auto aware data source name(Use with database discovery) spring.shardingsphere.rules.readwrite-splitting.data-sources.&amp;lt;readwrite-splitting-data-source-name&amp;gt;.props.write-data-source-name= # Write data source name spring.shardingsphere.rules.readwrite-splitting.data-sources.&amp;lt;readwrite-splitting-data-source-name&amp;gt;.props.read-data-source-names= # Read data source names, multiple data source names separated with comma spring.shardingsphere.rules.readwrite-splitting.data-sources.&amp;lt;readwrite-splitting-data-source-name&amp;gt;.load-balancer-name= # Load balance algorithm name # Load balance algorithm configuration spring.shardingsphere.rules.readwrite-splitting.load-balancers.&amp;lt;load-balance-algorithm-name&amp;gt;.type= # Load balance algorithm type spring.shardingsphere.rules.readwrite-splitting.load-balancers.&amp;lt;load-balance-algorithm-name&amp;gt;.props.xxx= # Load balance algorithm properties Please refer to Built-in Load Balance Algorithm List for more details about type of algorithm.</description>
    </item>
    
    <item>
      <title>Readwrite-splitting</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/java-api/rules/readwrite-splitting/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/java-api/rules/readwrite-splitting/</guid>
      <description>Root Configuration Class name: org.apache.shardingsphere.readwritesplitting.api.ReadwriteSplittingRuleConfiguration
Attributes:
   Name DataType Description     dataSources (+) Collection&amp;lt;ReadwriteSplittingDataSourceRuleConfiguration&amp;gt; Data sources of write and reads   loadBalancers (*) Map&amp;lt;String, ShardingSphereAlgorithmConfiguration&amp;gt; Load balance algorithm name and configurations of replica data sources    Readwrite-splitting Data Source Configuration Class name: org.apache.shardingsphere.readwritesplitting.api.rule.ReadwriteSplittingDataSourceRuleConfiguration
Attributes:
   Name DataType Description Default Value     name String Readwrite-splitting data source name -   type String Readwrite-splitting type, such as: Static, Dynamic -   props Properties Readwrite-splitting required properties.</description>
    </item>
    
    <item>
      <title>Readwrite-splitting</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/spring-namespace/rules/readwrite-splitting/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/spring-namespace/rules/readwrite-splitting/</guid>
      <description>Configuration Item Explanation Namespace: http://shardingsphere.apache.org/schema/shardingsphere/readwrite-splitting/readwrite-splitting-5.1.1.xsd
&amp;lt;readwrite-splitting:rule /&amp;gt;
   Name Type Description     id Attribute Spring Bean Id   data-source-rule (+) Tag Readwrite-splitting data source rule configuration    &amp;lt;readwrite-splitting:data-source-rule /&amp;gt;
   Name Type Description     id Attribute Readwrite-splitting data source rule name   type Attribute Readwrite-splitting type, such as: Static, Dynamic   props Tag Readwrite-splitting required properties.</description>
    </item>
    
    <item>
      <title>Readwrite-splitting</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/yaml-config/rules/readwrite-splitting/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/yaml-config/rules/readwrite-splitting/</guid>
      <description>Configuration Item Explanation rules: - !READWRITE_SPLITTING dataSources: &amp;lt;data-source-name&amp;gt; (+): # Logic data source name of readwrite-splitting type: # Readwrite-splitting type, such as: Static, Dynamic props: auto-aware-data-source-name: # Auto aware data source name(Use with database discovery) write-data-source-name: # Write data source name read-data-source-names: # Read data source names, multiple data source names separated with comma loadBalancerName: # Load balance algorithm name # Load balance algorithm configuration loadBalancers: &amp;lt;load-balancer-name&amp;gt; (+): # Load balance algorithm name type: # Load balance algorithm type props: # Load balance algorithm properties # .</description>
    </item>
    
    <item>
      <title>readwrite_splitting</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-proxy/distsql/usage/readwirte-splitting-rule/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-proxy/distsql/usage/readwirte-splitting-rule/</guid>
      <description>Resource Operation ADD RESOURCE write_ds ( HOST=127.0.0.1, PORT=3306, DB=ds_0, USER=root, PASSWORD=root ),read_ds ( HOST=127.0.0.1, PORT=3307, DB=ds_0, USER=root, PASSWORD=root ); Rule Operation  Create readwrite_splitting rule  CREATE READWRITE_SPLITTING RULE group_0 ( WRITE_RESOURCE=write_ds, READ_RESOURCES(read_ds), TYPE(NAME=random) );  Alter readwrite_splitting rule  ALTER READWRITE_SPLITTING RULE group_0 ( WRITE_RESOURCE=write_ds, READ_RESOURCES(read_ds), TYPE(NAME=random,PROPERTIES(read_weight=&amp;#39;2:0&amp;#39;)) );  Drop readwrite_splitting rule  DROP READWRITE_SPLITTING RULE group_0;  Drop resource  DROP RESOURCE write_ds,read_ds;  Drop distributed database  DROP DATABASE readwrite_splitting_db; </description>
    </item>
    
    <item>
      <title>Route Engine</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/reference/sharding/route/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/reference/sharding/route/</guid>
      <description>It refers to the sharding strategy that matches databases and tables according to the parsing context and generates route path. SQL with sharding keys can be divided into single-sharding route (equal mark as the operator of sharding key), multiple-sharding route (IN as the operator of sharding key) and range sharding route (BETWEEN as the operator of sharding key). SQL without sharding key adopts broadcast route.
Sharding strategies can usually be set in the database or by users.</description>
    </item>
    
    <item>
      <title>Seata BASE transaction</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/reference/transaction/base-transaction-seata/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/reference/transaction/base-transaction-seata/</guid>
      <description>When integrating Seata AT transaction, we need to integrate TM, RM and TC component into ShardingSphere transaction manager. Seata have proxied DataSource interface in order to RPC with TC. Similarly, Apache ShardingSphere faced to DataSource interface to aggregate data sources too. After Seata DataSource encapsulation, it is easy to put Seata AT transaction into Apache ShardingSphere sharding ecosystem.
Init Seata Engine When an application containing ShardingSphereTransactionBaseSeataAT startup, the user-configured DataSource will be wrapped into seata DataSourceProxy through seata.</description>
    </item>
    
    <item>
      <title>Sharding Algorithm</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/builtin-algorithm/sharding/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/builtin-algorithm/sharding/</guid>
      <description>Auto Sharding Algorithm Modulo Sharding Algorithm Type: MOD
Attributes:
   Name DataType Description     sharding-count int Sharding count    Hash Modulo Sharding Algorithm Type: HASH_MOD
Attributes:
   Name DataType Description     sharding-count int Sharding count    Volume Based Range Sharding Algorithm Type: VOLUME_RANGE
Attributes:
   Name DataType Description     range-lower long Range lower bound, throw exception if lower than bound   range-upper long Range upper bound, throw exception if upper than bound   sharding-volume long Sharding volume    Boundary Based Range Sharding Algorithm Type: BOUNDARY_RANGE</description>
    </item>
    
    <item>
      <title>ShardingSphere-Proxy</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/quick-start/shardingsphere-proxy-quick-start/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/quick-start/shardingsphere-proxy-quick-start/</guid>
      <description>Get ShardingSphere-Proxy ShardingSphere-Proxy is available at:
 Binary Distribution Docker  Rule Configuration Edit %SHARDINGSPHERE_PROXY_HOME%/conf/config-xxx.yaml.
Edit %SHARDINGSPHERE_PROXY_HOME%/conf/server.yaml.
 %SHARDINGSPHERE_PROXY_HOME% is the shardingsphere proxy extract path. for example: /opt/shardingsphere-proxy-bin/
 Please refer to Configuration Manual for more details.
Import Dependencies If the backend database is PostgreSQL, there&amp;rsquo;s no need for additional dependencies.
If the backend database is MySQL, please download mysql-connector-java-5.1.47.jar or mysql-connector-java-8.0.11.jar and put it into %SHARDINGSPHERE_PROXY_HOME%/ext-lib directory.
Start Server  Use default configuration to start  sh %SHARDINGSPHERE_PROXY_HOME%/bin/start.</description>
    </item>
    
    <item>
      <title>SHOW RESOURCE</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/reference/distsql/syntax/rql/resource-query/show-resource/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/reference/distsql/syntax/rql/resource-query/show-resource/</guid>
      <description>Description The SHOW RESOURCE syntax is used to query the resources that have been added to the specified schema.
Syntax ShowResource ::= &amp;#39;SHOW&amp;#39; &amp;#39;SCHEMA&amp;#39; &amp;#39;RESOURCES&amp;#39; (&amp;#39;FROM&amp;#39; schemaName)? schemaName ::= identifier Supplement  When schemaName is not specified, the default is the currently used SCHEMA; if SCHEMA is not used, it will prompt No database selected.  Return Value Description    Column Description     name Data source name   type Data source type   host Data source host   port Data source port   db Database name   attribute Data source attribute    Example  Query resources for the specified schema  SHOW SCHEMA RESOURCES FROM sharding_db; +------+-------+-----------+------+------+---------------------------------+---------------------------+---------------------------+---------------+---------------+-----------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | name | type | host | port | db | connection_timeout_milliseconds | idle_timeout_milliseconds | max_lifetime_milliseconds | max_pool_size | min_pool_size | read_only | other_attributes | +------+-------+-----------+------+------+---------------------------------+---------------------------+---------------------------+---------------+---------------+-----------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | ds_0 | MySQL | 127.</description>
    </item>
    
    <item>
      <title>Single Table</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-proxy/distsql/syntax/rdl/rule-definition/single-table/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-proxy/distsql/syntax/rdl/rule-definition/single-table/</guid>
      <description>Definition CREATE DEFAULT SINGLE TABLE RULE singleTableRuleDefinition ALTER DEFAULT SINGLE TABLE RULE singleTableRuleDefinition DROP DEFAULT SINGLE TABLE RULE singleTableRuleDefinition: RESOURCE = resourceName  RESOURCE needs to use data source resource managed by RDL  Example Single Table Rule CREATE DEFAULT SINGLE TABLE RULE RESOURCE = ds_0 ALTER DEFAULT SINGLE TABLE RULE RESOURCE = ds_1 DROP DEFAULT SINGLE TABLE RULE </description>
    </item>
    
    <item>
      <title>Single Table</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-proxy/distsql/syntax/rql/rule-query/single-table/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-proxy/distsql/syntax/rql/rule-query/single-table/</guid>
      <description>Syntax SHOW SINGLE TABLE (tableRule | RULES) [FROM schemaName] SHOW SINGLE TABLES tableRule: RULE tableName Return Value Description Single Table Rule    Column Description     name Rule name   resource_name Data source name    Single Table    Column Description     table_name Single table name   resource_name The resource name where the single table is located    Example single table rules</description>
    </item>
    
    <item>
      <title>SQL Rewrite Test</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/reference/test/module-test/rewrite-test/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/reference/test/module-test/rewrite-test/</guid>
      <description>Target Facing logic databases and tables cannot be executed directly in actual databases. SQL rewrite is used to rewrite logic SQL into rightly executable ones in actual databases, including two parts, correctness rewrite and optimization rewrite. rewrite tests are for these targets.
Test The rewrite tests are in the test folder under sharding-core/sharding-core-rewrite . Followings are the main part for rewrite tests:
 test engine environment configuration assert data  Test engine is the entrance of rewrite tests, just like other test engines, through Junit Parameterized, read every and each data in the xml file under the target test type in test\resources, and then assert by the engine one by one</description>
    </item>
    
    <item>
      <title>Use Docker</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-proxy/startup/docker/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-proxy/startup/docker/</guid>
      <description>Pull Official Docker Image docker pull apache/shardingsphere-proxy Build Docker Image Manually (Optional) git clone https://github.com/apache/shardingsphere mvn clean install cd shardingsphere-distribution/shardingsphere-proxy-distribution mvn clean package -Prelease,docker Configure ShardingSphere-Proxy Create server.yaml and config-xxx.yaml to configure sharding rules and server rule in /${your_work_dir}/conf/. Please refer to Configuration Manual. Please refer to Example.
Run Docker docker run -d -v /${your_work_dir}/conf:/opt/shardingsphere-proxy/conf -e PORT=3308 -p13308:3308 apache/shardingsphere-proxy:latest Notice
 You can define port 3308 and 13308 by yourself. 3308 refers to docker port; 13308 refers to the host port.</description>
    </item>
    
    <item>
      <title>Use Norms</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/features/encrypt/use-norms/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/features/encrypt/use-norms/</guid>
      <description>Supported  Encrypt/decrypt one or more columns in the database table; Compatible with all regular SQL.  Unsupported  Need to process original inventory data before encryption; Encrypted fields cannot support case insensitive queries; The value of encryption columns cannot support comparison, such as: &amp;gt;, &amp;lt;, ORDER BY, BETWEEN, LIKE, etc; The value of encryption columns cannot support calculation, such as AVG, SUM, and calculation expressions.  </description>
    </item>
    
    <item>
      <title>Use Norms</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/features/ha/use-norms/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/features/ha/use-norms/</guid>
      <description>Supported  MySQL MGR single-primary mode.  Unsupported  MySQL MGR multi-primary mode.  </description>
    </item>
    
    <item>
      <title>Use Norms</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/features/observability/use-norms/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/features/observability/use-norms/</guid>
      <description>Compile source code Download Apache ShardingSphere from GitHub,Then compile.
git clone --depth 1 https://github.com/apache/shardingsphere.git cd shardingsphere mvn clean install -Dmaven.javadoc.skip=true -Dcheckstyle.skip=true -Drat.skip=true -Djacoco.skip=true -DskipITs -DskipTests -Prelease Output directory: shardingsphere-agent/shardingsphere-agent-distribution/target/apache-shardingsphere-${latest.release.version}-shardingsphere-agent-bin.tar.gz
Agent configuration   Directory structure
Create agent directory, and unzip agent distribution package to the directory.
  mkdir agent tar -zxvf apache-shardingsphere-${latest.release.version}-shardingsphere-agent-bin.tar.gz -C agent cd agent tree . ├── conf │ ├── agent.yaml │ └── logback.xml ├── plugins │ ├── shardingsphere-agent-logging-base-${latest.</description>
    </item>
    
    <item>
      <title>Use Norms</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/features/readwrite-splitting/use-norms/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/features/readwrite-splitting/use-norms/</guid>
      <description>Supported  Provide the readwrite-splitting configuration of one primary database with multiple replica databases, which can be used alone or with sharding table and database; Primary nodes need to be used for both reading and writing in the transaction; Forcible primary database route based on SQL Hint;  Unsupported  Data replication between the primary and the replica databases; Data inconsistency caused by replication delay between databases; Double or multiple primary databases to provide write operation; The data for transaction across primary and replica nodes are inconsistent; In the readwrite-splitting model, primary nodes need to be used for both reading and writing in the transaction.</description>
    </item>
    
    <item>
      <title>Use Norms</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/features/shadow/use-norms/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/features/shadow/use-norms/</guid>
      <description>Supported  Hint based shadow algorithm support all SQL; Column based shadow algorithm support part of SQL.  Unsupported Hint based shadow algorithm  None  Column based shadow algorithm  Does not support DDL; Does not support range, group and subquery, for example: BETWEEN, GROUP BY &amp;hellip; HAVING&amp;hellip;;  SQL support list:
 INSERT     SQL Supported     INSERT INTO table (column,&amp;hellip;) VALUES (value,&amp;hellip;) Y   INSERT INTO table (column,&amp;hellip;) VALUES (value,&amp;hellip;),(value,&amp;hellip;),&amp;hellip; Y   INSERT INTO table (column,&amp;hellip;) SELECT column1 from table1 where column1 = value1 N     SELECT/UPDATE/DELETE     Condition SQL Supported     = SELECT/UPDATE/DELETE &amp;hellip; WHERE column = value Y   LIKE/NOT LIKE SELECT/UPDATE/DELETE &amp;hellip; WHERE column LIKE/NOT LIKE value Y   IN/NOT IN SELECT/UPDATE/DELETE &amp;hellip; WHERE column IN/NOT IN (value1,value2,&amp;hellip;) Y   BETWEEN SELECT/UPDATE/DELETE &amp;hellip; WHERE column BETWEEN value1 AND value2 N   GROUP BY &amp;hellip; HAVING&amp;hellip; SELECT/UPDATE/DELETE &amp;hellip; WHERE &amp;hellip; GROUP BY column HAVING column &amp;gt; value N   Subquery SELECT/UPDATE/DELETE &amp;hellip; WHERE column = (SELECT column FROM table WHERE column = value) N    </description>
    </item>
    
    <item>
      <title>Use Spring Boot Starter</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/special-api/transaction/spring-boot-starter/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/special-api/transaction/spring-boot-starter/</guid>
      <description>Import Maven Dependency &amp;lt;dependency&amp;gt; &amp;lt;groupId&amp;gt;org.apache.shardingsphere&amp;lt;/groupId&amp;gt; &amp;lt;artifactId&amp;gt;shardingsphere-jdbc-core-spring-boot-starter&amp;lt;/artifactId&amp;gt; &amp;lt;version&amp;gt;${shardingsphere.version}&amp;lt;/version&amp;gt; &amp;lt;/dependency&amp;gt; &amp;lt;!-- import if using XA transaction --&amp;gt; &amp;lt;dependency&amp;gt; &amp;lt;groupId&amp;gt;org.apache.shardingsphere&amp;lt;/groupId&amp;gt; &amp;lt;artifactId&amp;gt;shardingsphere-transaction-xa-core&amp;lt;/artifactId&amp;gt; &amp;lt;version&amp;gt;${shardingsphere.version}&amp;lt;/version&amp;gt; &amp;lt;/dependency&amp;gt; &amp;lt;!-- import if using BASE transaction --&amp;gt; &amp;lt;dependency&amp;gt; &amp;lt;groupId&amp;gt;org.apache.shardingsphere&amp;lt;/groupId&amp;gt; &amp;lt;artifactId&amp;gt;shardingsphere-transaction-base-seata-at&amp;lt;/artifactId&amp;gt; &amp;lt;version&amp;gt;${shardingsphere.version}&amp;lt;/version&amp;gt; &amp;lt;/dependency&amp;gt; Configure Transaction Manager @Configuration @EnableTransactionManagement public class TransactionConfiguration { @Bean public PlatformTransactionManager txManager(final DataSource dataSource) { return new DataSourceTransactionManager(dataSource); } @Bean public JdbcTemplate jdbcTemplate(final DataSource dataSource) { return new JdbcTemplate(dataSource); } } Use Distributed Transaction @Transactional @ShardingSphereTransactionType(TransactionType.XA) // Support TransactionType.</description>
    </item>
    
    <item>
      <title>User Norms</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/features/scaling/use-norms/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/features/scaling/use-norms/</guid>
      <description>Supported  Migrate data outside into databases which managed by Apache ShardingSphere; Scale out data between data nodes of Apache ShardingSphere.  Unsupported  Scale table without primary key, primary key can not be composite; Scale table with composite primary key; Do not support scale on in used databases, need to prepare a new database cluster for target.  </description>
    </item>
    
    <item>
      <title>XA</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/features/transaction/use-norms/xa/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/features/transaction/use-norms/xa/</guid>
      <description>Supported  Support cross-database transactions after sharding; Operation atomicity and high data consistency in 2PC transactions; When service is down and restarted, commit and rollback transactions can be recovered automatically; Support use XA and non-XA connection pool together.  Unsupported  Recover committing and rolling back in other machines after the service is down. Savepoint. In the transaction block, the SQL execution is abnormal, and run Commit, and data remains consistent.</description>
    </item>
    
    <item>
      <title>BASE</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/features/transaction/concept/base/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/features/transaction/concept/base/</guid>
      <description>A paper published in 2008 first mentioned on BASE transaction, it advocates the use of eventual consistency to instead of consistency when improve concurrency of transaction processing.
TCC and Saga are two regular implementations. They use reverse operation implemented by developers themselves to ensure the eventual consistency when data rollback. SEATA implements SQL reverse operation automatically, so that BASE transaction can be used without the intervention of developers.
Apache ShardingSphere integrates SEATA as solution of BASE transaction.</description>
    </item>
    
    <item>
      <title>BASE</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/features/transaction/use-norms/base/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/features/transaction/use-norms/base/</guid>
      <description>Supported  Support cross-database transactions after sharding; Support RC isolation level; Rollback transaction according to undo log; Support recovery committing transaction automatically after the service is down.  Unsupported  Do not support other isolation level except RC.  To Be Optimized  SQL parsed twice by Apache ShardingSphere and SEATA.  </description>
    </item>
    
    <item>
      <title>DROP RESOURCE</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/reference/distsql/syntax/rdl/resource-definition/drop-resource/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/reference/distsql/syntax/rdl/resource-definition/drop-resource/</guid>
      <description>Description The DROP RESOURCE syntax is used to drop resources from the current schema
Syntax DropResource ::= &amp;#39;DROP&amp;#39; &amp;#39;RESOURCE&amp;#39; ( &amp;#39;IF&amp;#39; &amp;#39;EXISTS&amp;#39; )? dataSourceName ( &amp;#39;,&amp;#39; dataSourceName )* ( &amp;#39;IGNORE&amp;#39; &amp;#39;SINGLE&amp;#39; &amp;#39;TABLES&amp;#39; )? Supplement  DROP RESOURCE will only drop resources in Proxy, the real data source corresponding to the resource will not be dropped Unable to drop resources already used by rules. Resources are still in used. will be prompted when removing resources used by rules The resource need to be removed only contains SINGLE TABLE RULE, and when the user confirms that this restriction can be ignored, the IGNORE SINGLE TABLES keyword can be added to remove the resource  Example  Drop a resource  DROP RESOURCE ds_0;  Drop multiple resources  DROP RESOURCE ds_1, ds_2;  Ignore single table rule remove resource  DROP RESOURCE ds_1 IGNORE SINGLE TABLES;  Drop the resource if it exists  DROP RESOURCE IF EXISTS ds_2; Reserved word DROP, RESOURCE, IF, EXISTS, IGNORE, SINGLE, TABLES  Related links  Reserved word  </description>
    </item>
    
    <item>
      <title>Encrypt</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-proxy/distsql/usage/encrypt-rule/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-proxy/distsql/usage/encrypt-rule/</guid>
      <description>Resource Operation ADD RESOURCE ds_0 ( HOST=127.0.0.1, PORT=3306, DB=ds_0, USER=root, PASSWORD=root ); Rule Operation  Create encrypt rule  CREATE ENCRYPT RULE t_encrypt ( COLUMNS( (NAME=user_id,PLAIN=user_plain,CIPHER=user_cipher,TYPE(NAME=AES,PROPERTIES(&amp;#39;aes-key-value&amp;#39;=&amp;#39;123456abc&amp;#39;))), (NAME=order_id,PLAIN=order_plain,CIPHER =order_cipher,TYPE(NAME=RC4,PROPERTIES(&amp;#39;rc4-key-value&amp;#39;=&amp;#39;123456abc&amp;#39;))) ));  Create encrypt table  CREATE TABLE `t_encrypt` ( `id` int(11) NOT NULL, `user_id` varchar(45) DEFAULT NULL, `order_id` varchar(45) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;  Alter encrypt rule  ALTER ENCRYPT RULE t_encrypt ( COLUMNS( (NAME=user_id,PLAIN=user_plain,CIPHER=user_cipher,TYPE(NAME=AES,PROPERTIES(&amp;#39;aes-key-value&amp;#39;=&amp;#39;123456abc&amp;#39;))) ));  Drop encrypt rule  DROP ENCRYPT RULE t_encrypt;  Drop resource  DROP RESOURCE ds_0;  Drop distributed database  DROP DATABASE encrypt_db; </description>
    </item>
    
    <item>
      <title>HA</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/java-api/rules/ha/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/java-api/rules/ha/</guid>
      <description>Root Configuration Class name：org.apache.shardingsphere.dbdiscovery.api.config.DatabaseDiscoveryRuleConfiguration
Attributes：
   Name DataType Description     dataSources (+) Collection&amp;lt;DatabaseDiscoveryDataSourceRuleConfiguration&amp;gt; Data source configuration   discoveryHeartbeats (+) Map&amp;lt;String, DatabaseDiscoveryHeartBeatConfiguration&amp;gt; Detect heartbeat configuration   discoveryTypes (+) Map&amp;lt;String, ShardingSphereAlgorithmConfiguration&amp;gt; Database discovery type configuration    Data Source Configuration Class name：org.apache.shardingsphere.dbdiscovery.api.config.rule.DatabaseDiscoveryDataSourceRuleConfiguration
Attributes：
   Name DataType Description Default Value     groupName (+) String Database discovery group name -   dataSourceNames (+) Collection&amp;lt;String&amp;gt; Data source names, multiple data source names separated with comma.</description>
    </item>
    
    <item>
      <title>HA</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/spring-boot-starter/rules/ha/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/spring-boot-starter/rules/ha/</guid>
      <description>Configuration Item Explanation spring.shardingsphere.datasource.names= # Omit the data source configuration, please refer to the usage spring.shardingsphere.rules.database-discovery.data-sources.&amp;lt;database-discovery-data-source-name&amp;gt;.data-source-names= # Data source names, multiple data source names separated with comma. Such as: ds_0, ds_1 spring.shardingsphere.rules.database-discovery.data-sources.&amp;lt;database-discovery-data-source-name&amp;gt;.discovery-heartbeat-name= # Detect heartbeat name spring.shardingsphere.rules.database-discovery.data-sources.&amp;lt;database-discovery-data-source-name&amp;gt;.discovery-type-name= # Database discovery type name spring.shardingsphere.rules.database-discovery.discovery-heartbeats.&amp;lt;discovery-heartbeat-name&amp;gt;.props.keep-alive-cron= # This is cron expression, such as：&#39;0/5 * * * * ?&#39; spring.shardingsphere.rules.database-discovery.discovery-types.&amp;lt;discovery-type-name&amp;gt;.type= # Database discovery type, such as: MGR, openGauss spring.shardingsphere.rules.database-discovery.discovery-types.&amp;lt;discovery-type-name&amp;gt;.props.group-name= # Required parameters for database discovery types, such as MGR&#39;s group-name </description>
    </item>
    
    <item>
      <title>HA</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/spring-namespace/rules/ha/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/spring-namespace/rules/ha/</guid>
      <description>Configuration Item Explanation Namespace：http://shardingsphere.apache.org/schema/shardingsphere/database-discovery/database-discovery-5.1.1.xsd
&amp;lt;database-discovery:rule /&amp;gt;
   Name Type Description     id Attribute Spring Bean Id   data-source-rule (+) tag Data source rule configuration   discovery-heartbeat (+) tag Detect heartbeat rule configuration    &amp;lt;database-discovery:data-source-rule /&amp;gt;
   Name Type Description     id Attribute Data source rule Id   data-source-names Attribute Data source names, multiple data source names separated with comma.</description>
    </item>
    
    <item>
      <title>HA</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/yaml-config/rules/ha/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/yaml-config/rules/ha/</guid>
      <description>rules: - !DB_DISCOVERY dataSources: &amp;lt;data-source-name&amp;gt; (+): # Logic data source name dataSourceNames: # Data source names - &amp;lt;data-source&amp;gt; - &amp;lt;data-source&amp;gt; discoveryHeartbeatName: # Detect heartbeat name discoveryTypeName: # Database discovery type name # Heartbeat Configuration discoveryHeartbeats: &amp;lt;discovery-heartbeat-name&amp;gt; (+): # heartbeat name props: keep-alive-cron: # This is cron expression, such as：&amp;#39;0/5 * * * * ?&amp;#39; # Database Discovery Configuration discoveryTypes: &amp;lt;discovery-type-name&amp;gt; (+): # Database discovery type name type: # Database discovery type, such as: MGR, openGauss props (?</description>
    </item>
    
    <item>
      <title>Kernel</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/dev-manual/kernel/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/dev-manual/kernel/</guid>
      <description>SQLRouter    SPI Name Description     SQLRouter Used to process routing results       Implementation Class Description     ReadwriteSplittingSQLRouter Used to process read-write separation routing results   DatabaseDiscoverySQLRouter Used to process database discovery routing results   SingleTableSQLRouter Used to process single-table routing results   ShardingSQLRouter Used to process sharding routing results   ShadowSQLRouter Used to process shadow database routing results    SQLRewriteContextDecorator    SPI Name Description     SQLRewriteContextDecorator Used to process SQL rewrite results       SPI Name Description     ShardingSQLRewriteContextDecorator Used to process sharding SQL rewrite results   EncryptSQLRewriteContextDecorator Used to process encryption SQL rewrite results    SQLExecutionHook    SPI Name Description     SQLExecutionHook Hook of SQL execution       Implementation Class Description     TransactionalSQLExecutionHook Transaction hook of SQL execution    ResultProcessEngine    SPI Name Description     ResultProcessEngine Used by merge engine to process result set       Implementation Class Description     ShardingResultMergerEngine Used by merge engine to process sharding result set   EncryptResultDecoratorEngine Used by merge engine to process encryption result set    StoragePrivilegeHandler    SPI Name Description     StoragePrivilegeHandler Use SQL dialect to process privilege metadata       Implementation Class Description     PostgreSQLPrivilegeHandler Use PostgreSQL dialect to process privilege metadata   SQLServerPrivilegeHandler Use SQLServer dialect to process privilege metadata   OraclePrivilegeHandler Use Oracle dialect to process privilege metadata   MySQLPrivilegeHandler Use MySQL dialect to process privilege metadata    </description>
    </item>
    
    <item>
      <title>Key Generate Algorithm</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/builtin-algorithm/keygen/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/builtin-algorithm/keygen/</guid>
      <description>Snowflake Type: SNOWFLAKE
Attributes:
   Name DataType Description Default Value     max-tolerate-time-difference-milliseconds (?) long The max tolerate time for different server&amp;rsquo;s time difference in milliseconds 10 milliseconds   max-vibration-offset (?) int The max upper limit value of vibrate number, range [0, 4096). Notice: To use the generated value of this algorithm as sharding value, it is recommended to configure this property. The algorithm generates key mod 2^n (2^n is usually the sharding amount of tables or databases) in different milliseconds and the result is always 0 or 1.</description>
    </item>
    
    <item>
      <title>Readwrite-Splitting</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-proxy/distsql/syntax/rdl/rule-definition/readwrite-splitting/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-proxy/distsql/syntax/rdl/rule-definition/readwrite-splitting/</guid>
      <description>Syntax CREATE READWRITE_SPLITTING RULE readwriteSplittingRuleDefinition [, readwriteSplittingRuleDefinition] ... ALTER READWRITE_SPLITTING RULE readwriteSplittingRuleDefinition [, readwriteSplittingRuleDefinition] ... DROP READWRITE_SPLITTING RULE ruleName [, ruleName] ... readwriteSplittingRuleDefinition: ruleName ([staticReadwriteSplittingRuleDefinition | dynamicReadwriteSplittingRuleDefinition] [, loadBanlancerDefinition]) staticReadwriteSplittingRuleDefinition: WRITE_RESOURCE=writeResourceName, READ_RESOURCES(resourceName [, resourceName] ... ) dynamicReadwriteSplittingRuleDefinition: AUTO_AWARE_RESOURCE=resourceName loadBanlancerDefinition: TYPE(NAME=loadBanlancerType [, PROPERTIES([algorithmProperties] )] ) algorithmProperties: algorithmProperty [, algorithmProperty] ... algorithmProperty: key=value  Support the creation of static readwrite-splitting rules and dynamic readwrite-splitting rules Dynamic readwrite-splitting rules rely on database discovery rules loadBanlancerType specifies the load balancing algorithm type, please refer to Load Balance Algorithm Duplicate ruleName will not be created  Example // Static CREATE READWRITE_SPLITTING RULE ms_group_0 ( WRITE_RESOURCE=write_ds, READ_RESOURCES(read_ds_0,read_ds_1), TYPE(NAME=random) ); // Dynamic CREATE READWRITE_SPLITTING RULE ms_group_1 ( AUTO_AWARE_RESOURCE=group_0, TYPE(NAME=random,PROPERTIES(read_weight=&amp;#39;2:1&amp;#39;)) ); ALTER READWRITE_SPLITTING RULE ms_group_1 ( WRITE_RESOURCE=write_ds, READ_RESOURCES(read_ds_0,read_ds_1,read_ds_2), TYPE(NAME=random,PROPERTIES(read_weight=&amp;#39;2:0&amp;#39;)) ); DROP READWRITE_SPLITTING RULE ms_group_1; </description>
    </item>
    
    <item>
      <title>Readwrite-Splitting</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-proxy/distsql/syntax/rql/rule-query/readwrite-splitting/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-proxy/distsql/syntax/rql/rule-query/readwrite-splitting/</guid>
      <description>Syntax SHOW READWRITE_SPLITTING RULES [FROM schemaName] Return Value Description    Column Description     name Rule name   auto_aware_data_source_name Auto-Aware discovery data source name (Display configuration dynamic readwrite splitting rules)   write_data_source_name Write data source name   read_data_source_names Read data source name list   load_balancer_type Load balance algorithm type   load_balancer_props Load balance algorithm parameter    Example Static Readwrite Splitting Rules</description>
    </item>
    
    <item>
      <title>Reserved word</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/reference/distsql/syntax/reserved-word/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/reference/distsql/syntax/reserved-word/</guid>
      <description>Resource definition ADD, RESOURCE, HOST, PORT, DB, USER, PASSWORD, PROPERTIES, URL Supplement  The above reserved words are not case-sensitive  </description>
    </item>
    
    <item>
      <title>Rewrite Engine</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/reference/sharding/rewrite/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/reference/sharding/rewrite/</guid>
      <description>The SQL written by engineers facing logic databases and tables cannot be executed directly in actual databases. SQL rewrite is used to rewrite logic SQL into rightly executable ones in actual databases, including two parts, correctness rewrite and optimization rewrite.
Correctness Rewrite In situation with sharding tables, it requires to rewrite logic table names in sharding settings into actual table names acquired after routing. Database sharding does not require to rewrite table names.</description>
    </item>
    
    <item>
      <title>Sharding</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/features/sharding/concept/sharding/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/features/sharding/concept/sharding/</guid>
      <description>Sharding Key Column used to determine database (table) sharding. For example, in last number modulo of order ID sharding, order ID is taken as the sharding key. The full route executed when there is no sharding column in SQL has a poor performance. Besides single sharding column, Apache ShardingSphere also supports multiple sharding columns.
Sharding Algorithm Data sharding can be achieved by sharding algorithms through =, &amp;gt;=, &amp;lt;=, &amp;gt;, &amp;lt;, BETWEEN and IN.</description>
    </item>
    
    <item>
      <title>ShardingSphere-Scaling (Experimental)</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/quick-start/shardingsphere-scaling-quick-start/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/quick-start/shardingsphere-scaling-quick-start/</guid>
      <description>Rule Configuration Edit %SHARDINGSPHERE_PROXY_HOME%/conf/server.yaml.
 %SHARDINGSPHERE_PROXY_HOME% is the shardingsphere proxy extract path. for example: /opt/shardingsphere-proxy-bin/
 Please refer to Build Manual for more details.
Import Dependencies If the backend database is PostgreSQL, there&amp;rsquo;s no need for additional dependencies.
If the backend database is MySQL, please download mysql-connector-java-5.1.47.jar and put it into %SHARDINGSPHERE_PROXY_HOME%/lib directory.
Start Server sh %SHARDINGSPHERE_PROXY_HOME%/bin/start.sh Create Migration Job Use DistSQL interface to manage the migration jobs.
Please refer to Usage Manual for more details.</description>
    </item>
    
    <item>
      <title>SHOW SHARDING TABLE RULE</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/reference/distsql/syntax/rql/rule-query/show-sharding-table-rule/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/reference/distsql/syntax/rql/rule-query/show-sharding-table-rule/</guid>
      <description>Description The SHOW SHARDING TABLE RULE syntax is used to query the sharding table rule in the specified schema.
Syntax ShowShardingTableRule ::= &#39;SHOW&#39; &#39;SHARDING&#39; &#39;TABLE&#39; (&#39;RULE&#39; tableName | &#39;RULES&#39;) (&#39;FROM&#39; schemaName)? tableName ::= identifier schemaName ::= identifier Supplement  When schemaName is not specified, the default is the currently used SCHEMA. If SCHEMA is not used, No database selected will be prompted.  Return value description    Column Description     table Logical table name   actual_data_nodes Actual data node   actual_data_sources Actual data source (Displayed when creating rules by RDL)   database_strategy_type Database sharding strategy type   database_sharding_column Database sharding column   database_sharding_algorithm_type Database sharding algorithm type   database_sharding_algorithm_props Database sharding algorithm properties   table_strategy_type Table sharding strategy type   table_sharding_column Table sharding column   table_sharding_algorithm_type Table sharding algorithm type   table_sharding_algorithm_props Table sharding algorithm properties   key_generate_column Sharding key generator column   key_generator_type Sharding key generator type   key_generator_props Sharding key generator properties    Example  Query the sharding table rules of the specified logical schema  SHOW SHARDING TABLE RULES FROM sharding_db; +--------------+-------------------+---------------------+------------------------+--------------------------+----------------------------------+-----------------------------------+---------------------+-----------------------+-------------------------------+--------------------------------+---------------------+--------------------+---------------------+ | table | actual_data_nodes | actual_data_sources | database_strategy_type | database_sharding_column | database_sharding_algorithm_type | database_sharding_algorithm_props | table_strategy_type | table_sharding_column | table_sharding_algorithm_type | table_sharding_algorithm_props | key_generate_column | key_generator_type | key_generator_props | +--------------+-------------------+---------------------+------------------------+--------------------------+----------------------------------+-----------------------------------+---------------------+-----------------------+-------------------------------+--------------------------------+---------------------+--------------------+---------------------+ | t_order | | ds_0,ds_1 | | | | | mod | order_id | mod | sharding-count=4 | | | | | t_order_item | | ds_0,ds_1 | | | | | mod | order_id | mod | sharding-count=4 | | | | +--------------+-------------------+---------------------+------------------------+--------------------------+----------------------------------+-----------------------------------+---------------------+-----------------------+-------------------------------+--------------------------------+---------------------+--------------------+---------------------+ 2 rows in set (0.</description>
    </item>
    
    <item>
      <title>Spring namespace configuration change history</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/reference/api-change-history/shardingsphere-jdbc/spring-namespace-configuration/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/reference/api-change-history/shardingsphere-jdbc/spring-namespace-configuration/</guid>
      <description>ShardingSphere-5.0.0-beta Sharding Configuration Item Explanation Namespace: http://shardingsphere.apache.org/schema/shardingsphere/sharding/sharding-5.0.0.xsd
&amp;lt;sharding:rule /&amp;gt;
   Name Type Description     id Attribute Spring Bean Id   table-rules (?) Tag Sharding table rule configuration   auto-table-rules (?) Tag Automatic sharding table rule configuration   binding-table-rules (?) Tag Binding table rule configuration   broadcast-table-rules (?) Tag Broadcast table rule configuration   default-database-strategy-ref (?) Attribute Default database strategy name   default-table-strategy-ref (?</description>
    </item>
    
    <item>
      <title>SQLServer</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/features/db-compatibility/feature-support/sqlserver/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/features/db-compatibility/feature-support/sqlserver/</guid>
      <description>The unsupported SQL list for SQLServer are as follows:
TODO</description>
    </item>
    
    <item>
      <title>SQLServer</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/features/db-compatibility/sql-parser/sqlserver/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/features/db-compatibility/sql-parser/sqlserver/</guid>
      <description>The unsupported SQL list for SQLServer are as follows:
TODO</description>
    </item>
    
    <item>
      <title>Use Spring Namespace</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/special-api/transaction/spring-namespace/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/special-api/transaction/spring-namespace/</guid>
      <description>Import Maven Dependency &amp;lt;dependency&amp;gt; &amp;lt;groupId&amp;gt;org.apache.shardingsphere&amp;lt;/groupId&amp;gt; &amp;lt;artifactId&amp;gt;shardingsphere-jdbc-core-spring-namespace&amp;lt;/artifactId&amp;gt; &amp;lt;version&amp;gt;${shardingsphere.version}&amp;lt;/version&amp;gt; &amp;lt;/dependency&amp;gt; &amp;lt;!-- import if using XA transaction --&amp;gt; &amp;lt;dependency&amp;gt; &amp;lt;groupId&amp;gt;org.apache.shardingsphere&amp;lt;/groupId&amp;gt; &amp;lt;artifactId&amp;gt;shardingsphere-transaction-xa-core&amp;lt;/artifactId&amp;gt; &amp;lt;version&amp;gt;${shardingsphere.version}&amp;lt;/version&amp;gt; &amp;lt;/dependency&amp;gt; &amp;lt;!-- import if using BASE transaction --&amp;gt; &amp;lt;dependency&amp;gt; &amp;lt;groupId&amp;gt;org.apache.shardingsphere&amp;lt;/groupId&amp;gt; &amp;lt;artifactId&amp;gt;shardingsphere-transaction-base-seata-at&amp;lt;/artifactId&amp;gt; &amp;lt;version&amp;gt;${shardingsphere.version}&amp;lt;/version&amp;gt; &amp;lt;/dependency&amp;gt; Configure Transaction Manager &amp;lt;!-- ShardingDataSource configuration --&amp;gt; &amp;lt;!-- ... --&amp;gt; &amp;lt;bean id=&amp;#34;transactionManager&amp;#34; class=&amp;#34;org.springframework.jdbc.datasource.DataSourceTransactionManager&amp;#34;&amp;gt; &amp;lt;property name=&amp;#34;dataSource&amp;#34; ref=&amp;#34;shardingDataSource&amp;#34; /&amp;gt; &amp;lt;/bean&amp;gt; &amp;lt;bean id=&amp;#34;jdbcTemplate&amp;#34; class=&amp;#34;org.springframework.jdbc.core.JdbcTemplate&amp;#34;&amp;gt; &amp;lt;property name=&amp;#34;dataSource&amp;#34; ref=&amp;#34;shardingDataSource&amp;#34; /&amp;gt; &amp;lt;/bean&amp;gt; &amp;lt;tx:annotation-driven /&amp;gt; &amp;lt;!-- Enable auto scan @ShardingSphereTransactionType annotation to inject the transaction type before connection created --&amp;gt; &amp;lt;sharding:tx-type-annotation-driven /&amp;gt; Use Distributed Transaction @Transactional @ShardingSphereTransactionType(TransactionType.</description>
    </item>
    
    <item>
      <title>Atomikos Transaction</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/special-api/transaction/atomikos/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/special-api/transaction/atomikos/</guid>
      <description>The default XA transaction manager of Apache ShardingSphere is Atomikos.
Data Recovery xa_tx.log generated in the project logs folder is necessary for the recovery when XA crashes. Please keep it.
Update Configuration Developer can add jta.properties in classpath of the application to customize Atomikos configuration. For detailed configuration rules.
Please refer to Atomikos official documentation for more details.</description>
    </item>
    
    <item>
      <title>DataSource</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/dev-manual/data-source/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/dev-manual/data-source/</guid>
      <description>DatabaseType    SPI Name Description     DatabaseType Supported database type       Implementation Class Description     SQL92DatabaseType SQL92 database type   MySQLDatabaseType MySQL database   MariaDBDatabaseType MariaDB database   PostgreSQLDatabaseType PostgreSQL database   OracleDatabaseType Oracle database   SQLServerDatabaseType SQLServer database   H2DatabaseType H2 database   OpenGaussDatabaseType OpenGauss database    DialectTableMetaDataLoader    SPI Name Description     DialectTableMetaDataLoader Use SQL dialect to load meta data rapidly       Implementation Class Description     MySQLTableMetaDataLoader Use MySQL dialect to load meta data   OracleTableMetaDataLoader Use Oracle dialect to load meta data   PostgreSQLTableMetaDataLoader Use PostgreSQL dialect to load meta data   SQLServerTableMetaDataLoader Use SQLServer dialect to load meta data   H2TableMetaDataLoader Use H2 dialect to load meta data   OpenGaussTableMetaDataLoader Use OpenGauss dialect to load meta data    DataSourcePoolMetaData    SPI Name Description     DataSourcePoolMetaData Data source pool meta data       Implementation Class Description     DBCPDataSourcePoolMetaData DBCP data source pool meta data   HikariDataSourcePoolMetaData Hikari data source pool meta data    DataSourcePoolActiveDetector    SPI Name Description     DataSourcePoolActiveDetector Data source pool active detector       Implementation Class Description     DefaultDataSourcePoolActiveDetector Default data source pool active detector   HikariDataSourcePoolActiveDetector Hikari data source pool active detector    </description>
    </item>
    
    <item>
      <title>DB Discovery</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-proxy/distsql/syntax/rdl/rule-definition/db-discovery/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-proxy/distsql/syntax/rdl/rule-definition/db-discovery/</guid>
      <description>Syntax CREATE DB_DISCOVERY RULE ruleDefinition [, ruleDefinition] ... ALTER DB_DISCOVERY RULE ruleDefinition [, ruleDefinition] ... DROP DB_DISCOVERY RULE ruleName [, ruleName] ... CREATE DB_DISCOVERY TYPE databaseDiscoveryTypeDefinition [, databaseDiscoveryTypeDefinition] ... ALTER DB_DISCOVERY TYPE databaseDiscoveryTypeDefinition [, databaseDiscoveryTypeDefinition] ... DROP DB_DISCOVERY TYPE discoveryTypeName [, discoveryTypeName] ... CREATE DB_DISCOVERY HEARTBEAT databaseDiscoveryHeartbaetDefinition [, databaseDiscoveryHeartbaetDefinition] ... ALTER DB_DISCOVERY HEARTBEAT databaseDiscoveryHeartbaetDefinition [, databaseDiscoveryHeartbaetDefinition] ... DROP DB_DISCOVERY HEARTBEAT discoveryHeartbeatName [, discoveryHeartbeatName] ... ruleDefinition: (databaseDiscoveryRuleDefinition | databaseDiscoveryRuleConstruction) databaseDiscoveryRuleDefinition ruleName (resources, typeDefinition, heartbeatDefinition) databaseDiscoveryRuleConstruction ruleName (resources, TYPE = discoveryTypeName, HEARTBEAT = discoveryHeartbeatName) databaseDiscoveryTypeDefinition discoveryTypeName (typeDefinition) databaseDiscoveryHeartbaetDefinition discoveryHeartbeatName (PROPERTIES (properties)) resources: RESOURCES(resourceName [, resourceName] .</description>
    </item>
    
    <item>
      <title>DB Discovery</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-proxy/distsql/syntax/rql/rule-query/db-discovery/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-proxy/distsql/syntax/rql/rule-query/db-discovery/</guid>
      <description>Syntax SHOW DB_DISCOVERY RULES [FROM schemaName] SHOW DB_DISCOVERY TYPES [FROM schemaName] SHOW DB_DISCOVERY HEARTBEATS [FROM schemaName] Return Value Description DB Discovery Rule    Column Description     group_name Rule name   data_source_names Data source name list   primary_data_source_name Primary data source name   discovery_type Database discovery service type   discovery_heartbeat Database discovery service heartbeat    DB Discovery Type    Column Description     name Type name   type Type category   props Type properties    DB Discovery Heartbeat    Column Description     name Heartbeat name   props Heartbeat properties    Example DB Discovery Rule</description>
    </item>
    
    <item>
      <title>Encryption</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/java-api/rules/encrypt/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/java-api/rules/encrypt/</guid>
      <description>Root Configuration Class name: org.apache.shardingsphere.encrypt.api.config.EncryptRuleConfiguration
Attributes:
   Name DataType Description Default Value     tables (+) Collection&amp;lt;EncryptTableRuleConfiguration&amp;gt; Encrypt table rule configurations    encryptors (+) Map&amp;lt;String, ShardingSphereAlgorithmConfiguration&amp;gt; Encrypt algorithm name and configurations    queryWithCipherColumn (?) boolean Whether query with cipher column for data encrypt. User you can use plaintext to query if have true    Encrypt Table Rule Configuration Class name: org.</description>
    </item>
    
    <item>
      <title>Encryption</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/spring-boot-starter/rules/encrypt/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/spring-boot-starter/rules/encrypt/</guid>
      <description>Configuration Item Explanation spring.shardingsphere.datasource.names= # Omit the data source configuration, please refer to the usage spring.shardingsphere.rules.encrypt.tables.&amp;lt;table-name&amp;gt;.query-with-cipher-column= # Whether the table uses cipher columns for query spring.shardingsphere.rules.encrypt.tables.&amp;lt;table-name&amp;gt;.columns.&amp;lt;column-name&amp;gt;.cipher-column= # Cipher column name spring.shardingsphere.rules.encrypt.tables.&amp;lt;table-name&amp;gt;.columns.&amp;lt;column-name&amp;gt;.assisted-query-column= # Assisted query column name spring.shardingsphere.rules.encrypt.tables.&amp;lt;table-name&amp;gt;.columns.&amp;lt;column-name&amp;gt;.plain-column= # Plain column name spring.shardingsphere.rules.encrypt.tables.&amp;lt;table-name&amp;gt;.columns.&amp;lt;column-name&amp;gt;.encryptor-name= # Encrypt algorithm name # Encrypt algorithm configuration spring.shardingsphere.rules.encrypt.encryptors.&amp;lt;encrypt-algorithm-name&amp;gt;.type= # Encrypt algorithm type spring.shardingsphere.rules.encrypt.encryptors.&amp;lt;encrypt-algorithm-name&amp;gt;.props.xxx= # Encrypt algorithm properties spring.shardingsphere.rules.encrypt.queryWithCipherColumn= # Whether query with cipher column for data encrypt. User you can use plaintext to query if have Please refer to Built-in Encrypt Algorithm List for more details about type of algorithm.</description>
    </item>
    
    <item>
      <title>Encryption</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/spring-namespace/rules/encrypt/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/spring-namespace/rules/encrypt/</guid>
      <description>Configuration Item Explanation Namespace: http://shardingsphere.apache.org/schema/shardingsphere/encrypt/encrypt-5.1.1.xsd
&amp;lt;encrypt:rule /&amp;gt;
   Name Type Description Default Value     id Attribute Spring Bean Id    queryWithCipherColumn (?) Attribute Whether query with cipher column for data encrypt. User you can use plaintext to query if have true   table (+) Tag Encrypt table configuration     &amp;lt;encrypt:table /&amp;gt;
   Name Type Description     name Attribute Encrypt table name   column (+) Tag Encrypt column configuration   query-with-cipher-column(?</description>
    </item>
    
    <item>
      <title>Encryption</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/yaml-config/rules/encrypt/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/yaml-config/rules/encrypt/</guid>
      <description>Configuration Item Explanation rules: - !ENCRYPT tables: &amp;lt;table-name&amp;gt; (+): # Encrypt table name columns: &amp;lt;column-name&amp;gt; (+): # Encrypt logic column name cipherColumn: # Cipher column name assistedQueryColumn (?): # Assisted query column name plainColumn (?): # Plain column name encryptorName: # Encrypt algorithm name queryWithCipherColumn(?): # The current table whether query with cipher column for data encrypt.  # Encrypt algorithm configuration encryptors: &amp;lt;encrypt-algorithm-name&amp;gt; (+): # Encrypt algorithm name type: # Encrypt algorithm type props: # Encrypt algorithm properties # .</description>
    </item>
    
    <item>
      <title>Execute Engine</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/reference/sharding/execute/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/reference/sharding/execute/</guid>
      <description>ShardingSphere adopts a set of automatic execution engine, responsible for sending the true SQL, which has been routed and rewritten, to execute in the underlying data source safely and effectively. It does not simply send the SQL through JDBC to directly execute in the underlying data source, or put execution requests directly to the thread pool to concurrently execute, but focuses more on the creation of a balanced data source connection, the consumption generated by the memory usage, the maximum utilization of the concurrency and other problems.</description>
    </item>
    
    <item>
      <title>Inline Expression</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/features/sharding/concept/inline-expression/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/features/sharding/concept/inline-expression/</guid>
      <description>Motivation Configuration simplicity and unity are two main problems that inline expression intends to solve.
In complex sharding rules, with more data nodes, a large number of configuration repetitions make configurations difficult to maintain. Inline expressions can simplify data node configuration work.
Java codes are not helpful in the unified management of common configurations. Writing sharding algorithms with inline expressions, users can store rules together, making them easier to be browsed and stored.</description>
    </item>
    
    <item>
      <title>Load Balance Algorithm</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/builtin-algorithm/load-balance/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/builtin-algorithm/load-balance/</guid>
      <description>Round Robin Algorithm Type: ROUND_ROBIN
Attributes: None
Random Algorithm Type: RANDOM
Attributes: None
Weight Algorithm Type: WEIGHT
Attributes:
 All read data in use must be configured with weights
    Name DataType Description     - &amp;lt;read-data_source-name&amp;gt; (+) double The attribute name uses the read database name, and the parameter fills in the weight value corresponding to the read database.The minimum value of the weight parameter range&amp;gt;0,the total &amp;lt;=Double.</description>
    </item>
    
    <item>
      <title>Oracle</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/features/db-compatibility/feature-support/oracle/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/features/db-compatibility/feature-support/oracle/</guid>
      <description>The unsupported SQL list for Oracle are as follows:
TODO</description>
    </item>
    
    <item>
      <title>Oracle</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/features/db-compatibility/sql-parser/oracle/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/features/db-compatibility/sql-parser/oracle/</guid>
      <description>The unsupported SQL list for Oracle are as follows:
TODO</description>
    </item>
    
    <item>
      <title>Spring Boot Starter Configuration</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/reference/api-change-history/shardingsphere-jdbc/spring-boot-starter/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/reference/api-change-history/shardingsphere-jdbc/spring-boot-starter/</guid>
      <description>5.0.0-beta Sharding Configuration Item Explanation spring.shardingsphere.datasource.names= # Omit the data source configuration, please refer to the usage # Standard sharding table configuration spring.shardingsphere.rules.sharding.tables.&amp;lt;table-name&amp;gt;.actual-data-nodes= # Describe data source names and actual tables, delimiter as point, multiple data nodes separated with comma, support inline expression. Absent means sharding databases only. # Databases sharding strategy, use default databases sharding strategy if absent. sharding strategy below can choose only one. # For single sharding column scenario spring.</description>
    </item>
    
    <item>
      <title>Bitronix Transaction</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/special-api/transaction/bitronix/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/special-api/transaction/bitronix/</guid>
      <description>Import Maven Dependency &amp;lt;properties&amp;gt; &amp;lt;btm.version&amp;gt;2.1.3&amp;lt;/btm.version&amp;gt; &amp;lt;/properties&amp;gt; &amp;lt;dependency&amp;gt; &amp;lt;groupId&amp;gt;org.apache.shardingsphere&amp;lt;/groupId&amp;gt; &amp;lt;artifactId&amp;gt;shardingsphere-jdbc-core&amp;lt;/artifactId&amp;gt; &amp;lt;version&amp;gt;${shardingsphere.version}&amp;lt;/version&amp;gt; &amp;lt;/dependency&amp;gt; &amp;lt;dependency&amp;gt; &amp;lt;groupId&amp;gt;org.apache.shardingsphere&amp;lt;/groupId&amp;gt; &amp;lt;artifactId&amp;gt;shardingsphere-transaction-xa-core&amp;lt;/artifactId&amp;gt; &amp;lt;version&amp;gt;${shardingsphere.version}&amp;lt;/version&amp;gt; &amp;lt;/dependency&amp;gt; &amp;lt;dependency&amp;gt; &amp;lt;groupId&amp;gt;org.apache.shardingsphere&amp;lt;/groupId&amp;gt; &amp;lt;artifactId&amp;gt;shardingsphere-transaction-xa-bitronix&amp;lt;/artifactId&amp;gt; &amp;lt;version&amp;gt;${shardingsphere.version}&amp;lt;/version&amp;gt; &amp;lt;/dependency&amp;gt; &amp;lt;dependency&amp;gt; &amp;lt;groupId&amp;gt;org.codehaus.btm&amp;lt;/groupId&amp;gt; &amp;lt;artifactId&amp;gt;btm&amp;lt;/artifactId&amp;gt; &amp;lt;version&amp;gt;${btm.version}&amp;lt;/version&amp;gt; &amp;lt;/dependency&amp;gt; Customize Configuration Items Please refer to Bitronix official documentation for more details.
Configure XA Transaction Manager Type Yaml:
- !TRANSACTION defaultType: XA providerType: Bitronix SpringBoot:
spring: shardingsphere: props: xa-transaction-manager-type: Bitronix Spring Namespace:
&amp;lt;shardingsphere:data-source id=&amp;#34;xxx&amp;#34; data-source-names=&amp;#34;xxx&amp;#34; rule-refs=&amp;#34;xxx&amp;#34;&amp;gt; &amp;lt;props&amp;gt; &amp;lt;prop key=&amp;#34;xa-transaction-manager-type&amp;#34;&amp;gt;Bitronix&amp;lt;/prop&amp;gt; &amp;lt;/props&amp;gt; &amp;lt;/shardingsphere:data-source&amp;gt; </description>
    </item>
    
    <item>
      <title>DB Discovery</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-proxy/distsql/usage/db-discovery/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-proxy/distsql/usage/db-discovery/</guid>
      <description>Resource Operation ADD RESOURCE ds_0 ( HOST=127.0.0.1, PORT=3306, DB=ds_0, USER=root, PASSWORD=root ),RESOURCE ds_1 ( HOST=127.0.0.1, PORT=3306, DB=ds_1, USER=root, PASSWORD=root ),RESOURCE ds_2 ( HOST=127.0.0.1, PORT=3306, DB=ds_2, USER=root, PASSWORD=root ); Rule Operation  Create DB discovery rule  CREATE DB_DISCOVERY RULE db_discovery_group_0 ( RESOURCES(ds_0, ds_1), TYPE(NAME=mgr,PROPERTIES(&amp;#39;group-name&amp;#39;=&amp;#39;92504d5b-6dec&amp;#39;)), HEARTBEAT(PROPERTIES(&amp;#39;keep-alive-cron&amp;#39;=&amp;#39;0/5 * * * * ?&amp;#39;)) );  Alter DB discovery rule  ALTER DB_DISCOVERY RULE db_discovery_group_0 ( RESOURCES(ds_0, ds_1, ds_2), TYPE(NAME=mgr,PROPERTIES(&amp;#39;group-name&amp;#39;=&amp;#39;92504d5b-6dec&amp;#39;)), HEARTBEAT(PROPERTIES(&amp;#39;keep-alive-cron&amp;#39;=&amp;#39;0/5 * * * * ?</description>
    </item>
    
    <item>
      <title>Distributed Primary Key</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/features/sharding/concept/key-generator/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/features/sharding/concept/key-generator/</guid>
      <description>Motivation In the development of traditional database software, the automatic sequence generation technology is a basic requirement. All kinds of databases have provided corresponding support for this requirement, such as MySQL auto-increment key, Oracle auto-increment sequence and so on. It is a tricky problem that there is only one sequence generated by different data nodes after sharding. Auto-increment keys in different physical tables in the same logic table can not perceive each other and thereby generate repeated sequences.</description>
    </item>
    
    <item>
      <title>Encrypt</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-proxy/distsql/syntax/rdl/rule-definition/encrypt/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-proxy/distsql/syntax/rdl/rule-definition/encrypt/</guid>
      <description>Syntax CREATE ENCRYPT RULE encryptRuleDefinition [, encryptRuleDefinition] ... ALTER ENCRYPT RULE encryptRuleDefinition [, encryptRuleDefinition] ... DROP ENCRYPT RULE tableName [, tableName] ... encryptRuleDefinition: tableName(COLUMNS(columnDefinition [, columnDefinition] ...), QUERY_WITH_CIPHER_COLUMN=queryWithCipherColumn) columnDefinition: (NAME=columnName [, PLAIN=plainColumnName] , CIPHER=cipherColumnName, encryptAlgorithm) encryptAlgorithm: TYPE(NAME=encryptAlgorithmType [, PROPERTIES([algorithmProperties] )] ) algorithmProperties: algorithmProperty [, algorithmProperty] ... algorithmProperty: key=value  PLAIN specifies the plain column, CIPHER specifies the cipher column encryptAlgorithmType specifies the encryption algorithm type, please refer to Encryption Algorithm Duplicate tableName will not be created queryWithCipherColumn support uppercase or lowercase true or false  Example CREATE ENCRYPT RULE t_encrypt ( COLUMNS( (NAME=user_id,PLAIN=user_plain,CIPHER=user_cipher,TYPE(NAME=AES,PROPERTIES(&amp;#39;aes-key-value&amp;#39;=&amp;#39;123456abc&amp;#39;))), (NAME=order_id, CIPHER =order_cipher,TYPE(NAME=MD5)) ), QUERY_WITH_CIPHER_COLUMN=true), t_encrypt_2 ( COLUMNS( (NAME=user_id,PLAIN=user_plain,CIPHER=user_cipher,TYPE(NAME=AES,PROPERTIES(&amp;#39;aes-key-value&amp;#39;=&amp;#39;123456abc&amp;#39;))), (NAME=order_id, CIPHER=order_cipher,TYPE(NAME=MD5)) ), QUERY_WITH_CIPHER_COLUMN=FALSE); ALTER ENCRYPT RULE t_encrypt ( COLUMNS( (NAME=user_id,PLAIN=user_plain,CIPHER=user_cipher,TYPE(NAME=AES,PROPERTIES(&amp;#39;aes-key-value&amp;#39;=&amp;#39;123456abc&amp;#39;))), (NAME=order_id,CIPHER=order_cipher,TYPE(NAME=MD5)) ), QUERY_WITH_CIPHER_COLUMN=TRUE); DROP ENCRYPT RULE t_encrypt,t_encrypt_2; </description>
    </item>
    
    <item>
      <title>Encrypt</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-proxy/distsql/syntax/rql/rule-query/encrypt/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-proxy/distsql/syntax/rql/rule-query/encrypt/</guid>
      <description>Syntax SHOW ENCRYPT RULES [FROM schemaName] SHOW ENCRYPT TABLE RULE tableName [from schemaName]  Support to query all data encryption rules and specify logical table name query  Return Value Description    Column Description     table Logical table name   logic_column Logical column name   logic_data_type Logical column data type   cipher_column Ciphertext column name   cipher_data_type Ciphertext column data type   plain_column Plaintext column name   plain_data_type Plaintext column data type   assisted_query_column Assisted query column name   assisted_query_data_type Assisted query column data type   encryptor_type Encryption algorithm type   encryptor_props Encryption algorithm parameter   query_with_cipher_column Whether to use encrypted column for query    Example Show Encrypt Rules</description>
    </item>
    
    <item>
      <title>Encryption Algorithm</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/builtin-algorithm/encrypt/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/builtin-algorithm/encrypt/</guid>
      <description>MD5 Encrypt Algorithm Type: MD5
Attributes: None
AES Encrypt Algorithm Type: AES
Attributes:
   Name DataType Description     aes-key-value String AES KEY    RC4 Encrypt Algorithm Type: RC4
Attributes:
   Name DataType Description     rc4-key-value String RC4 KEY    SM3 Encrypt Algorithm Type: SM3
Attributes:
   Name DataType Description     sm3-salt String SM3 SALT (should be blank or 8 bytes long)    SM4 Encrypt Algorithm Type: SM4</description>
    </item>
    
    <item>
      <title>Merger Engine</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/reference/sharding/merge/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/reference/sharding/merge/</guid>
      <description>Result merger refers to merging multi-data result set acquired from all the data nodes as one result set and returning it to the request end rightly.
In function, the result merger supported by ShardingSphere can be divided into five kinds, iteration, order-by, group-by, pagination and aggregation, which are in composition relation rather than clash relation. In structure, it can be divided into stream merger, memory merger and decorator merger, among which, stream merger and memory merger clash with each other; decorator merger can be further processed based on stream merger and memory merger.</description>
    </item>
    
    <item>
      <title>Narayana Transaction</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/special-api/transaction/narayana/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/special-api/transaction/narayana/</guid>
      <description>Import Maven Dependency &amp;lt;properties&amp;gt; &amp;lt;narayana.version&amp;gt;5.9.1.Final&amp;lt;/narayana.version&amp;gt; &amp;lt;jboss-transaction-spi.version&amp;gt;7.6.0.Final&amp;lt;/jboss-transaction-spi.version&amp;gt; &amp;lt;jboss-logging.version&amp;gt;3.2.1.Final&amp;lt;/jboss-logging.version&amp;gt; &amp;lt;/properties&amp;gt; &amp;lt;dependency&amp;gt; &amp;lt;groupId&amp;gt;org.apache.shardingsphere&amp;lt;/groupId&amp;gt; &amp;lt;artifactId&amp;gt;shardingsphere-jdbc-core&amp;lt;/artifactId&amp;gt; &amp;lt;version&amp;gt;${shardingsphere.version}&amp;lt;/version&amp;gt; &amp;lt;/dependency&amp;gt; &amp;lt;!-- Import if using XA transaction --&amp;gt; &amp;lt;dependency&amp;gt; &amp;lt;groupId&amp;gt;org.apache.shardingsphere&amp;lt;/groupId&amp;gt; &amp;lt;artifactId&amp;gt;shardingsphere-transaction-xa-core&amp;lt;/artifactId&amp;gt; &amp;lt;version&amp;gt;${shardingsphere.version}&amp;lt;/version&amp;gt; &amp;lt;/dependency&amp;gt; &amp;lt;dependency&amp;gt; &amp;lt;groupId&amp;gt;org.apache.shardingsphere&amp;lt;/groupId&amp;gt; &amp;lt;artifactId&amp;gt;shardingsphere-transaction-xa-narayana&amp;lt;/artifactId&amp;gt; &amp;lt;version&amp;gt;${shardingsphere.version}&amp;lt;/version&amp;gt; &amp;lt;/dependency&amp;gt; &amp;lt;dependency&amp;gt; &amp;lt;groupId&amp;gt;org.jboss.narayana.jta&amp;lt;/groupId&amp;gt; &amp;lt;artifactId&amp;gt;jta&amp;lt;/artifactId&amp;gt; &amp;lt;version&amp;gt;${narayana.version}&amp;lt;/version&amp;gt; &amp;lt;/dependency&amp;gt; &amp;lt;dependency&amp;gt; &amp;lt;groupId&amp;gt;org.jboss.narayana.jts&amp;lt;/groupId&amp;gt; &amp;lt;artifactId&amp;gt;narayana-jts-integration&amp;lt;/artifactId&amp;gt; &amp;lt;version&amp;gt;${narayana.version}&amp;lt;/version&amp;gt; &amp;lt;/dependency&amp;gt; &amp;lt;dependency&amp;gt; &amp;lt;groupId&amp;gt;org.jboss&amp;lt;/groupId&amp;gt; &amp;lt;artifactId&amp;gt;jboss-transaction-spi&amp;lt;/artifactId&amp;gt; &amp;lt;version&amp;gt;${jboss-transaction-spi.version}&amp;lt;/version&amp;gt; &amp;lt;/dependency&amp;gt; &amp;lt;dependency&amp;gt; &amp;lt;groupId&amp;gt;org.jboss.logging&amp;lt;/groupId&amp;gt; &amp;lt;artifactId&amp;gt;jboss-logging&amp;lt;/artifactId&amp;gt; &amp;lt;version&amp;gt;${jboss-logging.version}&amp;lt;/version&amp;gt; &amp;lt;/dependency&amp;gt; Customize Configuration Items Add jbossts-properties.xml in classpath of the application to customize Narayana configuration.
Please refer to Narayana official documentation for more details.</description>
    </item>
    
    <item>
      <title>Properties Configuration</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/props/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/props/</guid>
      <description>Apache ShardingSphere provides the way of property configuration to configure system level configuration.
Configuration Item Explanation    Name Data Type Description Default Value     sql-show (?) boolean Whether show SQL or not in log. Print SQL details can help developers debug easier. The log details include: logic SQL, actual SQL and SQL parse result. Enable this property will log into log topic ShardingSphere-SQL, log level is INFO false   sql-simple (?</description>
    </item>
    
    <item>
      <title>Shadow</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-proxy/distsql/usage/shadow-rule/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-proxy/distsql/usage/shadow-rule/</guid>
      <description>Resource Operation ADD RESOURCE ds_0 ( HOST=127.0.0.1, PORT=3306, DB=ds_0, USER=root, PASSWORD=root ),ds_1 ( HOST=127.0.0.1, PORT=3306, DB=ds_1, USER=root, PASSWORD=root ),ds_2 ( HOST=127.0.0.1, PORT=3306, DB=ds_2, USER=root, PASSWORD=root ); Rule Operation  Create shadow rule  CREATE SHADOW RULE group_0( SOURCE=ds_0, SHADOW=ds_1, t_order((simple_hint_algorithm, TYPE(NAME=SIMPLE_HINT, PROPERTIES(&amp;#34;foo&amp;#34;=&amp;#34;bar&amp;#34;))),(TYPE(NAME=REGEX_MATCH, PROPERTIES(&amp;#34;operation&amp;#34;=&amp;#34;insert&amp;#34;,&amp;#34;column&amp;#34;=&amp;#34;user_id&amp;#34;, &amp;#34;regex&amp;#34;=&amp;#39;[1]&amp;#39;)))), t_order_item((TYPE(NAME=SIMPLE_HINT, PROPERTIES(&amp;#34;foo&amp;#34;=&amp;#34;bar&amp;#34;)))));  Alter shadow rule  ALTER SHADOW RULE group_0( SOURCE=ds_0, SHADOW=ds_2, t_order_item((TYPE(NAME=SIMPLE_HINT, PROPERTIES(&amp;#34;foo&amp;#34;=&amp;#34;bar&amp;#34;)))));  Drop shadow rule  DROP SHADOW RULE group_0;  Drop resource  DROP RESOURCE ds_0,ds_1,ds_2;  Drop distributed database  DROP DATABASE foo_db; </description>
    </item>
    
    <item>
      <title>Shadow DB</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/java-api/rules/shadow/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/java-api/rules/shadow/</guid>
      <description>Root Configuration Class name: org.apache.shardingsphere.shadow.api.config.ShadowRuleConfiguration
Attributes:
   Name DataType Description Default Value     dataSources Map&amp;lt;String, ShadowDataSourceConfiguration&amp;gt; Shadow data source mapping name and configuration    tables Map&amp;lt;String, ShadowTableConfiguration&amp;gt; Shadow table name and configuration    defaultShadowAlgorithmName String Default shadow algorithm name    shadowAlgorithms Map&amp;lt;String, ShardingSphereAlgorithmConfiguration&amp;gt; Shadow algorithm name and configuration     Shadow Data Source Configuration Class name: org.apache.shardingsphere.shadow.api.config.datasource.ShadowDataSourceConfiguration</description>
    </item>
    
    <item>
      <title>Shadow DB</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/spring-boot-starter/rules/shadow/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/spring-boot-starter/rules/shadow/</guid>
      <description>Configuration Item Explanation spring.shardingsphere.datasource.names= # Omit the data source configuration, please refer to the usage spring.shardingsphere.rules.shadow.data-sources.shadow-data-source.source-data-source-name= # Production data source name spring.shardingsphere.rules.shadow.data-sources.shadow-data-source.shadow-data-source-name= # Shadow data source name spring.shardingsphere.rules.shadow.tables.&amp;lt;table-name&amp;gt;.data-source-names= # Shadow table location shadow data source names (multiple values are separated by &amp;quot;,&amp;quot;) spring.shardingsphere.rules.shadow.tables.&amp;lt;table-name&amp;gt;.shadow-algorithm-names= # Shadow table location shadow algorithm names (multiple values are separated by &amp;quot;,&amp;quot;) spring.shardingsphere.rules.shadow.defaultShadowAlgorithmName= # Default shadow algorithm name, optional item. spring.shardingsphere.rules.shadow.shadow-algorithms.&amp;lt;shadow-algorithm-name&amp;gt;.type= # Shadow algorithm type spring.shardingsphere.rules.shadow.shadow-algorithms.&amp;lt;shadow-algorithm-name&amp;gt;.props.xxx= # Shadow algorithm property configuration </description>
    </item>
    
    <item>
      <title>Shadow DB</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/spring-namespace/rules/shadow/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/spring-namespace/rules/shadow/</guid>
      <description>Configuration Item Explanation Namespace: http://shardingsphere.apache.org/schema/shardingsphere/shadow/shadow-5.1.1.xsd
&amp;lt;shadow:rule /&amp;gt;
   Name Type Description     id Attribute Spring Bean Id   data-source(?) Tag Shadow data source configuration   default-shadow-algorithm-name(?) Tag Default shadow algorithm configuration   shadow-table(?) Tag Shadow table configuration    &amp;lt;shadow:data-source /&amp;gt;
   Name Type Description     id Attribute Spring Bean Id   source-data-source-name Attribute Production data source name   shadow-data-source-name Attribute Shadow data source name    &amp;lt;shadow:default-shadow-algorithm-name /&amp;gt;</description>
    </item>
    
    <item>
      <title>Shadow DB</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/yaml-config/rules/shadow/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/yaml-config/rules/shadow/</guid>
      <description>Configuration Item Explanation rules: - !SHADOW dataSources: shadowDataSource: sourceDataSourceName: # Production data source name shadowDataSourceName: # Shadow data source name tables: &amp;lt;table-name&amp;gt;: dataSourceNames: # Shadow table location shadow data source names - &amp;lt;shadow-data-source&amp;gt; shadowAlgorithmNames: # Shadow table location shadow algorithm names - &amp;lt;shadow-algorithm-name&amp;gt; defaultShadowAlgorithmName: # Default shadow algorithm name shadowAlgorithms: &amp;lt;shadow-algorithm-name&amp;gt; (+): # Shadow algorithm name type: # Shadow algorithm type props: # Shadow algorithm property configuration # ... </description>
    </item>
    
    <item>
      <title>SQL Parser</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/dev-manual/sql-parser/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/dev-manual/sql-parser/</guid>
      <description>DatabaseTypedSQLParserFacade    SPI Name Description     DatabaseTypedSQLParserFacade SQL parser facade for lexer and parser       Implementation Class Description     MySQLParserFacade SQL parser facade for MySQL   PostgreSQLParserFacade SQL parser facade for PostgreSQL   SQLServerParserFacade SQL parser facade for SQLServer   OracleParserFacade SQL parser facade for Oracle   SQL92ParserFacade SQL parser facade for SQL92   OpenGaussParserFacade SQL parser facade for openGauss    SQLVisitorFacade    SPI Name Description     SQLVisitorFacade SQL AST visitor facade       Implementation Class Description     MySQLStatementSQLVisitorFacade SQL visitor of statement extracted facade for MySQL   PostgreSQLStatementSQLVisitorFacade SQL visitor of statement extracted facade for PostgreSQL   SQLServerStatementSQLVisitorFacade SQL visitor of statement extracted facade for SQLServer   OracleStatementSQLVisitorFacade SQL visitor of statement extracted facade for Oracle   SQL92StatementSQLVisitorFacade SQL visitor of statement extracted facade for SQL92    </description>
    </item>
    
    <item>
      <title>SQL92</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/features/db-compatibility/feature-support/sql92/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/features/db-compatibility/feature-support/sql92/</guid>
      <description>The unsupported SQL list for SQL92 are as follows:
TODO</description>
    </item>
    
    <item>
      <title>SQL92</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/features/db-compatibility/sql-parser/sql92/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/features/db-compatibility/sql-parser/sql92/</guid>
      <description>The unsupported SQL list for SQL92 are as follows:
TODO</description>
    </item>
    
    <item>
      <title>Hint Sharding Route</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/features/sharding/concept/hint/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/features/sharding/concept/hint/</guid>
      <description>Motivation Apache ShardingSphere can be compatible with SQL in way of parsing SQL statements and extracting columns and values to shard. If SQL does not have sharding conditions, it is impossible to shard without full data node route.
In some applications, sharding conditions are not in SQL but in external business logic. So it requires to designate sharding result externally, which is referred to as Hint in ShardingSphere.
Mechanism Apache ShardingSphere uses ThreadLocal to manage sharding key values.</description>
    </item>
    
    <item>
      <title>Mixed Rules</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/spring-boot-starter/rules/mix/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/spring-boot-starter/rules/mix/</guid>
      <description>Configuration Item Explanation # data source configuration spring.shardingsphere.datasource.names= write-ds0,write-ds1,write-ds0-read0,write-ds1-read0 spring.shardingsphere.datasource.write-ds0.jdbc-url= # Database URL connection spring.shardingsphere.datasource.write-ds0.type= # Database connection pool type name spring.shardingsphere.datasource.write-ds0.driver-class-name= # Database driver class name spring.shardingsphere.datasource.write-ds0.username= # Database username spring.shardingsphere.datasource.write-ds0.password= # Database password spring.shardingsphere.datasource.write-ds0.xxx= # Other properties of database connection pool spring.shardingsphere.datasource.write-ds1.url= # Database URL connection # ...Omit specific configuration. spring.shardingsphere.datasource.write-ds0-read0.url= # Database URL connection # ...Omit specific configuration. spring.shardingsphere.datasource.write-ds1-read0.url= # Database URL connection # ...Omit specific configuration. # Sharding rules configuration # Databases sharding strategy spring.</description>
    </item>
    
    <item>
      <title>Mixed Rules</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/yaml-config/rules/mix/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/yaml-config/rules/mix/</guid>
      <description>The overlay between rule items in a mixed configuration is associated by the data source name and the table name.
If the previous rule is aggregation-oriented, the next rule needs to use the aggregated logical data source name configured by the previous rule when configuring the data source. Similarly, if the previous rule is table aggregation-oriented, the next rule needs to use the aggregated logical table name configured by the previous rule when configuring the table.</description>
    </item>
    
    <item>
      <title>Proxy</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/dev-manual/proxy/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/dev-manual/proxy/</guid>
      <description>DatabaseProtocolFrontendEngine    SPI Name Description     DatabaseProtocolFrontendEngine Regulate parse and adapter protocol of database access for ShardingSphere-Proxy       Implementation Class Description     MySQLFrontendEngine Base on MySQL database protocol   PostgreSQLFrontendEngine Base on PostgreSQL database protocol   OpenGaussFrontendEngine Base on openGauss database protocol    AuthorityProvideAlgorithm    SPI Name Description     AuthorityProvideAlgorithm User authority loading logic       Implementation Class Type Description     NativeAuthorityProviderAlgorithm (Deprecated) NATIVE Persist user authority defined in server.</description>
    </item>
    
    <item>
      <title>Shadow</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-proxy/distsql/syntax/rdl/rule-definition/shadow/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-proxy/distsql/syntax/rdl/rule-definition/shadow/</guid>
      <description>Syntax CREATE SHADOW RULE shadowRuleDefinition [, shadowRuleDefinition] ... ALTER SHADOW RULE shadowRuleDefinition [, shadowRuleDefinition] ... CREATE SHADOW ALGORITHM shadowAlgorithm [, shadowAlgorithm] ... ALTER SHADOW ALGORITHM shadowAlgorithm [, shadowAlgorithm] ... DROP SHADOW RULE ruleName [, ruleName] ... DROP SHADOW ALGORITHM algorithmName [, algorithmName] ... CREATE DEFAULT SHADOW ALGORITHM NAME = algorithmName shadowRuleDefinition: ruleName(resourceMapping, shadowTableRule [, shadowTableRule] ...) resourceMapping: SOURCE=resourceName, SHADOW=resourceName shadowTableRule: tableName(shadowAlgorithm [, shadowAlgorithm] ...) shadowAlgorithm: ([algorithmName, ] TYPE(NAME=shadowAlgorithmType, PROPERTIES([algorithmProperties] ...))) algorithmProperties: algorithmProperty [, algorithmProperty] .</description>
    </item>
    
    <item>
      <title>Shadow</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-proxy/distsql/syntax/rql/rule-query/shadow/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-proxy/distsql/syntax/rql/rule-query/shadow/</guid>
      <description>Syntax SHOW SHADOW shadowRule | RULES [FROM schemaName] SHOW SHADOW TABLE RULES [FROM schemaName] SHOW SHADOW ALGORITHMS [FROM schemaName] shadowRule: RULE ruleName  Support querying all shadow rules and specified table query Support querying all shadow table rules Support querying all shadow algorithms  Return Value Description Shadow Rule    Column Description     rule_name Rule name   source_name Source database   shadow_name Shadow database   shadow_table Shadow table    Shadow Table Rule    Column Description     shadow_table Shadow table   shadow_algorithm_name Shadow algorithm name    Shadow Algorithms    Column Description     shadow_algorithm_name Shadow algorithm name   type Shadow algorithm type   props Shadow algorithm properties   is_default Default    Shadow Rule status    Column Description     status Enable    Example SHOW SHADOW RULES</description>
    </item>
    
    <item>
      <title>Shadow Algorithm</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/builtin-algorithm/shadow/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/builtin-algorithm/shadow/</guid>
      <description>Column Shadow Algorithm Column Value Match Shadow Algorithm Type：VALUE_MATCH
Attributes:
   Name DataType Description     column String Shadow column   operation String SQL operation type (INSERT, UPDATE, DELETE, SELECT)   value String Shadow column matching value    Column Regex Match Shadow Algorithm Type: REGEX_MATCH
Attributes:
   Name DataType Description     column String Shadow column   operation String SQL operation type (insert, update, delete, select)   regex String Shadow column matching regular expression    Hint Shadow Algorithm Simple Hint Shadow Algorithm Type: SIMPLE_HINT</description>
    </item>
    
    <item>
      <title>SQL Parser</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/java-api/rules/sql-parser/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/java-api/rules/sql-parser/</guid>
      <description>Root Configuration Class：org.apache.shardingsphere.parser.config.SQLParserRuleConfiguration
Attributes：
   name DataType Description     sqlCommentParseEnabled (?) boolean Whether to parse SQL comments   parseTreeCache (?) CacheOption Parse syntax tree local cache configuration   sqlStatementCache (?) CacheOption sql statement local cache configuration    Cache option Configuration Class：org.apache.shardingsphere.sql.parser.api.CacheOption
Attributes：
   name DataType Description Default Value     initialCapacity int Initial capacity of local cache parser syntax tree local cache default value 128, SQL statement cache default value 2000   maximumSize(?</description>
    </item>
    
    <item>
      <title>SQL Parser</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/spring-boot-starter/rules/sql-parser/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/spring-boot-starter/rules/sql-parser/</guid>
      <description>Configuration Item Explanation spring.shardingsphere.rules.sql-parser.sql-comment-parse-enabled= # Whether to parse SQL comments spring.shardingsphere.rules.sql-parser.sql-statement-cache.initial-capacity= # Initial capacity of SQL statement local cache spring.shardingsphere.rules.sql-parser.sql-statement-cache.maximum-size= # Maximum capacity of SQL statement local cache spring.shardingsphere.rules.sql-parser.sql-statement-cache.concurrency-level= # SQL statement local cache concurrency level, the maximum number of concurrent updates allowed by threads spring.shardingsphere.rules.sql-parser.parse-tree-cache.initial-capacity= # Initial capacity of parse tree local cache spring.shardingsphere.rules.sql-parser.parse-tree-cache.maximum-size= # Maximum local cache capacity of parse tree spring.shardingsphere.rules.sql-parser.parse-tree-cache.concurrency-level= # The local cache concurrency level of the parse tree.</description>
    </item>
    
    <item>
      <title>SQL Parser</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/spring-namespace/rules/sql-parser/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/spring-namespace/rules/sql-parser/</guid>
      <description>Configuration Item Explanation Namespace：http://shardingsphere.apache.org/schema/shardingsphere/sql-parser/sql-parser-5.1.1.xsd
&amp;lt;sql-parser:rule /&amp;gt;
   Name Type Description     id Attribute Spring Bean Id   sql-comment-parse-enable Attribute Whether to parse SQL comments   parse-tree-cache-ref Attribute Parse tree local cache name   sql-statement-cache-ref Attribute SQL statement local cache name    &amp;lt;sql-parser:cache-option /&amp;gt;
   Name Type Description     id Attribute Local cache configuration item name   initial-capacity Attribute Initial capacity of local cache   maximum-size Attribute Maximum capacity of local cache   concurrency-level Attribute Local cache concurrency level, the maximum number of concurrent updates allowed by threads    </description>
    </item>
    
    <item>
      <title>SQL-parser</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/yaml-config/rules/sql-parser/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/yaml-config/rules/sql-parser/</guid>
      <description>Configuration Item Explanation rules: - !SQL_PARSER sqlCommentParseEnabled: # Whether to parse SQL comments  sqlStatementCache: # SQL statement local cache initialCapacity: # Initial capacity of local cache maximumSize: # Maximum capacity of local cache concurrencyLevel: # Local cache concurrency level, the maximum number of concurrent updates allowed by threads parseTreeCache: # Parse tree local cache initialCapacity: # Initial capacity of local cache maximumSize: # Maximum capacity of local cache concurrencyLevel: # Local cache concurrency level, the maximum number of concurrent updates allowed by threads </description>
    </item>
    
    <item>
      <title>Data Sharding</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/dev-manual/sharding/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/dev-manual/sharding/</guid>
      <description>ShardingAlgorithm    SPI Name Description     ShardingAlgorithm Sharding algorithm       Implementation Class Description     BoundaryBasedRangeShardingAlgorithm Boundary based range sharding algorithm   VolumeBasedRangeShardingAlgorithm Volume based range sharding algorithm   ComplexInlineShardingAlgorithm Complex inline sharding algorithm   AutoIntervalShardingAlgorithm Mutable interval sharding algorithm   ClassBasedShardingAlgorithm Class based sharding algorithm   HintInlineShardingAlgorithm Hint inline sharding algorithm   IntervalShardingAlgorithm Fixed interval sharding algorithm   HashModShardingAlgorithm Hash modulo sharding algorithm   InlineShardingAlgorithm Inline sharding algorithm   ModShardingAlgorithm Modulo sharding algorithm    KeyGenerateAlgorithm    SPI Name Description     KeyGenerateAlgorithm Key generate algorithm       Implementation Class Description     SnowflakeKeyGenerateAlgorithm Snowflake key generate algorithm   UUIDKeyGenerateAlgorithm UUID key generate algorithm    DatetimeService    SPI Name Description     DatetimeService Use current time for routing       Implementation Class Description     DatabaseDatetimeServiceDelegate Get the current time from the database for routing   SystemDatetimeService Get the current time from the application system for routing    DatabaseSQLEntry    SPI Name Description     DatabaseSQLEntry Database dialect for get current time       Implementation Class Description     MySQLDatabaseSQLEntry MySQL dialect for get current time   PostgreSQLDatabaseSQLEntry PostgreSQL dialect for get current time   OracleDatabaseSQLEntry Oracle dialect for get current time   SQLServerDatabaseSQLEntry SQLServer dialect for get current time    </description>
    </item>
    
    <item>
      <title>Mixed Rules</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/java-api/rules/mix/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/java-api/rules/mix/</guid>
      <description>Configuration Item Explanation /* Data source configuration */ HikariDataSource writeDataSource0 = new HikariDataSource(); writeDataSource0.setDriverClassName(&amp;#34;com.mysql.jdbc.Driver&amp;#34;); writeDataSource0.setJdbcUrl(&amp;#34;jdbc:mysql://localhost:3306/db0?serverTimezone=UTC&amp;amp;useSSL=false&amp;amp;useUnicode=true&amp;amp;characterEncoding=UTF-8&amp;#34;); writeDataSource0.setUsername(&amp;#34;root&amp;#34;); writeDataSource0.setPassword(&amp;#34;&amp;#34;); HikariDataSource writeDataSource1 = new HikariDataSource(); // ...Omit specific configuration.  HikariDataSource read0OfwriteDataSource0 = new HikariDataSource(); // ...Omit specific configuration.  HikariDataSource read1OfwriteDataSource0 = new HikariDataSource(); // ...Omit specific configuration.  HikariDataSource read0OfwriteDataSource1 = new HikariDataSource(); // ...Omit specific configuration.  HikariDataSource read1OfwriteDataSource1 = new HikariDataSource(); // ...Omit specific configuration.  Map&amp;lt;String, DataSource&amp;gt; datasourceMaps = new HashMap&amp;lt;&amp;gt;(6); datasourceMaps.</description>
    </item>
    
    <item>
      <title>Mixed Rules</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/spring-namespace/rules/mix/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/spring-namespace/rules/mix/</guid>
      <description>Configuration Item Explanation &amp;lt;beans xmlns=&amp;#34;http://www.springframework.org/schema/beans&amp;#34; xmlns:xsi=&amp;#34;http://www.w3.org/2001/XMLSchema-instance&amp;#34; xmlns:shardingsphere=&amp;#34;http://shardingsphere.apache.org/schema/shardingsphere/datasource&amp;#34; xmlns:readwrite-splitting=&amp;#34;http://shardingsphere.apache.org/schema/shardingsphere/readwrite-splitting&amp;#34; xmlns:encrypt=&amp;#34;http://shardingsphere.apache.org/schema/shardingsphere/encrypt&amp;#34; xsi:schemaLocation=&amp;#34;http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://shardingsphere.apache.org/schema/shardingsphere/datasource http://shardingsphere.apache.org/schema/shardingsphere/datasource/datasource.xsd http://shardingsphere.apache.org/schema/shardingsphere/readwrite-splitting http://shardingsphere.apache.org/schema/shardingsphere/readwrite-splitting/readwrite-splitting.xsd http://shardingsphere.apache.org/schema/shardingsphere/encrypt http://shardingsphere.apache.org/schema/shardingsphere/encrypt/encrypt.xsd &amp;#34;&amp;gt; &amp;lt;bean id=&amp;#34;write_ds0&amp;#34; class=&amp;#34; com.zaxxer.hikari.HikariDataSource&amp;#34; init-method=&amp;#34;init&amp;#34; destroy-method=&amp;#34;close&amp;#34;&amp;gt; &amp;lt;property name=&amp;#34;driverClassName&amp;#34; value=&amp;#34;com.mysql.jdbc.Driver&amp;#34; /&amp;gt; &amp;lt;property name=&amp;#34;jdbcUrl&amp;#34; value=&amp;#34;jdbc:mysql://localhost:3306/write_ds?useSSL=false&amp;amp;amp;useUnicode=true&amp;amp;amp;characterEncoding=UTF-8&amp;#34; /&amp;gt; &amp;lt;property name=&amp;#34;username&amp;#34; value=&amp;#34;root&amp;#34; /&amp;gt; &amp;lt;property name=&amp;#34;password&amp;#34; value=&amp;#34;&amp;#34; /&amp;gt; &amp;lt;/bean&amp;gt; &amp;lt;bean id=&amp;#34;read_ds0_0&amp;#34; class=&amp;#34; com.zaxxer.hikari.HikariDataSource&amp;#34; init-method=&amp;#34;init&amp;#34; destroy-method=&amp;#34;close&amp;#34;&amp;gt; &amp;lt;!-- ...Omit specific configuration. --&amp;gt; &amp;lt;/bean&amp;gt; &amp;lt;bean id=&amp;#34;read_ds0_1&amp;#34; class=&amp;#34; com.zaxxer.hikari.HikariDataSource&amp;#34; init-method=&amp;#34;init&amp;#34; destroy-method=&amp;#34;close&amp;#34;&amp;gt; &amp;lt;!-- ...Omit specific configuration. --&amp;gt; &amp;lt;/bean&amp;gt; &amp;lt;bean id=&amp;#34;write_ds1&amp;#34; class=&amp;#34; com.zaxxer.hikari.HikariDataSource&amp;#34; init-method=&amp;#34;init&amp;#34; destroy-method=&amp;#34;close&amp;#34;&amp;gt; &amp;lt;!</description>
    </item>
    
    <item>
      <title>Seata Transaction</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/special-api/transaction/seata/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/special-api/transaction/seata/</guid>
      <description>Startup Seata Server Download seata server according to seata-work-shop.
Create Undo Log Table Create undo_log table in each physical database (sample for MySQL).
CREATE TABLE IF NOT EXISTS `undo_log` ( `id` BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT &amp;#39;increment id&amp;#39;, `branch_id` BIGINT(20) NOT NULL COMMENT &amp;#39;branch transaction id&amp;#39;, `xid` VARCHAR(100) NOT NULL COMMENT &amp;#39;global transaction id&amp;#39;, `context` VARCHAR(128) NOT NULL COMMENT &amp;#39;undo_log context,such as serialization&amp;#39;, `rollback_info` LONGBLOB NOT NULL COMMENT &amp;#39;rollback info&amp;#39;, `log_status` INT(11) NOT NULL COMMENT &amp;#39;0:normal status,1:defense status&amp;#39;, `log_created` DATETIME NOT NULL COMMENT &amp;#39;create datetime&amp;#39;, `log_modified` DATETIME NOT NULL COMMENT &amp;#39;modify datetime&amp;#39;, PRIMARY KEY (`id`), UNIQUE KEY `ux_undo_log` (`xid`, `branch_id`) ) ENGINE = InnoDB AUTO_INCREMENT = 1 DEFAULT CHARSET = utf8 COMMENT =&amp;#39;AT transaction mode undo table&amp;#39;; Update Configuration Configure seata.</description>
    </item>
    
    <item>
      <title>Readwrite-splitting</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/dev-manual/readwrite-splitting/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/dev-manual/readwrite-splitting/</guid>
      <description>ReadwriteSplittingType    SPI 名称 详细说明     ReadwriteSplittingType Readwrite-splitting type       已知实现类 详细说明     StaticReadwriteSplittingType Static readwrite-splitting type   DynamicReadwriteSplittingType Dynamic readwrite-splitting type    ReplicaLoadBalanceAlgorithm    SPI Name Description     ReplicaLoadBalanceAlgorithm Load balance algorithm of replica databases       Implementation Class Description     RoundRobinReplicaLoadBalanceAlgorithm Round robin load balance algorithm of replica databases   RandomReplicaLoadBalanceAlgorithm Random load balance algorithm of replica databases   WeightReplicaLoadBalanceAlgorithm Weight load balance algorithm of replica databases    </description>
    </item>
    
    <item>
      <title>Unsupported Items</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/unsupported/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/user-manual/shardingsphere-jdbc/unsupported/</guid>
      <description>DataSource Interface  Do not support timeout related operations  Connection Interface  Do not support operations of stored procedure, function and cursor Do not support native SQL Do not support savepoint related operations Do not support Schema/Catalog operation Do not support self-defined type mapping  Statement and PreparedStatement Interface  Do not support statements that return multiple result sets (stored procedures, multiple pieces of non-SELECT data) Do not support the operation of international characters  ResultSet Interface  Do not support getting result set pointer position Do not support changing result pointer position through none-next method Do not support revising the content of result set Do not support acquiring international characters Do not support getting Array  JDBC 4.</description>
    </item>
    
    <item>
      <title>HA</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/dev-manual/ha/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/dev-manual/ha/</guid>
      <description>DatabaseDiscoveryType    SPI Name Description     DatabaseDiscoveryType Database discovery type       Implementation Class Description     MGRDatabaseDiscoveryType Database discovery of MySQL&amp;rsquo;s MGR   ShowSlaveStatusDatabaseDiscoveryType Database discovery of MySQL&amp;rsquo;s master-slave delay   OpenGaussDatabaseDiscoveryType Database discovery of openGauss    </description>
    </item>
    
    <item>
      <title>Distributed Transaction</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/dev-manual/transaction/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/dev-manual/transaction/</guid>
      <description>ShardingSphereTransactionManager    SPI Name Description     ShardingSphereTransactionManager Distributed transaction manager       Implementation Class Description     XAShardingSphereTransactionManager XA distributed transaction manager   SeataATShardingSphereTransactionManager Seata distributed transaction manager    XATransactionManagerProvider    SPI Name Description     XATransactionManagerProvider XA distributed transaction manager       Implementation Class Description     AtomikosTransactionManagerProvider XA distributed transaction manager based on Atomikos   NarayanaXATransactionManagerProvider XA distributed transaction manager based on Narayana   BitronixXATransactionManagerProvider XA distributed transaction manager based on Bitronix    XADataSourceDefinition    SPI Name Description     XADataSourceDefinition Auto convert Non XA data source to XA data source       Implementation Class Description     MySQLXADataSourceDefinition Auto convert Non XA MySQL data source to XA MySQL data source   MariaDBXADataSourceDefinition Auto convert Non XA MariaDB data source to XA MariaDB data source   PostgreSQLXADataSourceDefinition Auto convert Non XA PostgreSQL data source to XA PostgreSQL data source   OracleXADataSourceDefinition Auto convert Non XA Oracle data source to XA Oracle data source   SQLServerXADataSourceDefinition Auto convert Non XA SQLServer data source to XA SQLServer data source   H2XADataSourceDefinition Auto convert Non XA H2 data source to XA H2 data source    DataSourcePropertyProvider    SPI Name Description     DataSourcePropertyProvider Used to get standard properties of data source pool       Implementation Class Description     HikariCPPropertyProvider Used to get standard properties of HikariCP    </description>
    </item>
    
    <item>
      <title>Scaling</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/dev-manual/scaling/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/dev-manual/scaling/</guid>
      <description>ScalingEntry    SPI Name Description     ScalingEntry Entry of scaling       Implementation Class Description     MySQLScalingEntry MySQL entry of scaling   PostgreSQLScalingEntry PostgreSQL entry of scaling   OpenGaussScalingEntry openGauss entry of scaling    JobCompletionDetectAlgorithm    SPI Name Description     JobCompletionDetectAlgorithm Job completion check algorithm       Implementation Class Description     IdleRuleAlteredJobCompletionDetectAlgorithm Incremental task idle time based algorithm    DataConsistencyCalculateAlgorithm    SPI Name Description     DataConsistencyCalculateAlgorithm Check data consistency algorithm       Implementation Class Description     DataMatchDataConsistencyCalculateAlgorithm Check data consistency with every recodes one by one   CRC32MatchDataConsistencyCalculateAlgorithm Use CRC32 to check data consistency    </description>
    </item>
    
    <item>
      <title>SQL Checker</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/dev-manual/sql-check/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/dev-manual/sql-check/</guid>
      <description>SQLChecker    SPI Name Description     SQLChecker SQL checker       Implementation Class Description     AuthorityChecker Authority checker    </description>
    </item>
    
    <item>
      <title>Encryption</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/dev-manual/encryption/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/dev-manual/encryption/</guid>
      <description>EncryptAlgorithm    SPI Name Description     EncryptAlgorithm Data encrypt algorithm       Implementation Class Description     MD5EncryptAlgorithm MD5 data encrypt algorithm   AESEncryptAlgorithm AES data encrypt algorithm   RC4EncryptAlgorithm RC4 data encrypt algorithm   SM3EncryptAlgorithm SM3 data encrypt algorithm   SM4EncryptAlgorithm SM4 data encrypt algorithm    QueryAssistedEncryptAlgorithm    SPI Name Description     QueryAssistedEncryptAlgorithm Data encrypt algorithm which include query assisted column       Implementation Class Description     None     </description>
    </item>
    
    <item>
      <title>Shadow DB</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/dev-manual/shadow/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/dev-manual/shadow/</guid>
      <description>ShadowAlgorithm    SPI Name Description     ShadowAlgorithm shadow routing algorithm       Implementation Class Description     ColumnValueMatchShadowAlgorithm Column value match shadow algorithm   ColumnRegexMatchShadowAlgorithm Column regex match shadow algorithm   SimpleHintShadowAlgorithm Simple hint shadow algorithm    </description>
    </item>
    
    <item>
      <title>Observability</title>
      <link>https://shardingsphere.apache.org/document/1.4.1/en/dev-manual/agent/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/document/1.4.1/en/dev-manual/agent/</guid>
      <description>PluginDefinitionService    SPI Name Description     PluginDefinitionService Agent plugin definition       Implementation Class Description     PrometheusPluginDefinitionService Prometheus plugin   BaseLoggingPluginDefinitionService Logging plugin   JaegerPluginDefinitionService Jaeger plugin   OpenTelemetryTracingPluginDefinitionService OpenTelemetryTracing plugin   OpenTracingPluginDefinitionService OpenTracing plugin   ZipkinPluginDefinitionService Zipkin plugin    PluginBootService    SPI Name Description     PluginBootService Plugin startup service definition       Implementation Class Description     PrometheusPluginBootService Prometheus plugin startup class   BaseLoggingPluginBootService Logging plugin startup class   JaegerTracingPluginBootService Jaeger plugin startup class   OpenTelemetryTracingPluginBootService OpenTelemetryTracing plugin startup class   OpenTracingPluginBootService OpenTracing plugin startup class   ZipkinTracingPluginBootService Zipkin plugin startup class    </description>
    </item>
    
  </channel>
</rss>