diff --git a/.github/workflows/deploy-en.yml b/.github/workflows/deploy-en.yml index 4b4d7d6bece..d8351ff6a5c 100644 --- a/.github/workflows/deploy-en.yml +++ b/.github/workflows/deploy-en.yml @@ -18,12 +18,12 @@ jobs: deploy: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: fetch-depth: 0 # fetch all commits/branches for gitversion - name: Setup Python - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: '3.8' @@ -39,7 +39,6 @@ jobs: git fetch origin gh-pages --depth=1 # fix mike's CI update mike list mike deploy ${{ env.ACTIONTEST }} -p --rebase - # The set-default command is only applicable to the latest version and must be commented in older versions. - # mike set-default ${{ env.ACTIONTEST }} -p --rebase - # mike list + # mike set-default ${{ env.ACTIONTEST }} -p --rebase + mike list diff --git a/.github/workflows/deploy-zh.yml b/.github/workflows/deploy-zh.yml index e195bd56550..f803557f46a 100644 --- a/.github/workflows/deploy-zh.yml +++ b/.github/workflows/deploy-zh.yml @@ -21,12 +21,12 @@ jobs: deploy: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: fetch-depth: 1 # fetch all commits/branches for gitversion - name: Setup Python - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: '3.8' @@ -43,14 +43,13 @@ jobs: git fetch origin gh-pages-zh --depth=1 # fix mike's CI update mike list mike deploy ${{ env.ACTIONTEST }} -b gh-pages-zh -p --rebase - # The set-default command is only applicable to the latest version and must be commented in older versions. - # mike set-default ${{ env.ACTIONTEST }} -b gh-pages-zh -p --rebase + # mike set-default ${{ env.ACTIONTEST }} -b gh-pages-zh -p --rebase - name: show Chinese git branches run: | git branch git checkout . - git checkout gh-pages-zh + git checkout gh-pages-zh - name: Compress run: | diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index feb8152296d..bad82bde130 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -12,15 +12,6 @@ You can start from any of the documents in this repository: - Raise or resolve [docs issues][_issues]. - Review Pull Requests created by others. -## Before Contributing - -Before contributing, please take a quick look at the rules described in these documents to keep the style consistent. - -- [Markdown Rules](https://github.com/DavidAnson/markdownlint/blob/master/doc/Rules.md) -- [About This Manual](https://docs.nebula-graph.io/manual-EN/0.about-this-manual/) -- [Introduction to Query Language](https://docs.nebula-graph.io/manual-EN/2.query-language/0.README/) - - ## How to Contribute There are many ways to contribute: diff --git a/docs-2.0-en/14.client/1.nebula-client.md b/docs-2.0-en/14.client/1.nebula-client.md index a03943f3d2f..07d4bcbaa67 100644 --- a/docs-2.0-en/14.client/1.nebula-client.md +++ b/docs-2.0-en/14.client/1.nebula-client.md @@ -14,8 +14,11 @@ NebulaGraph supports multiple types of clients for users to connect to and manag !!! note - For now, only NebulaGraph Java is thread-safe. + Only the following classes are thread-safe: + - NebulaPool and SessionPool in NebulaGraph Java + - ConnectionPool and SessionPool in NebulaGraph Go + !!! caution The following clients can also be used to connect to and manage NebulaGraph, but there is no uptime guarantee. diff --git a/docs-2.0-en/14.client/3.nebula-cpp-client.md b/docs-2.0-en/14.client/3.nebula-cpp-client.md index 05226d51032..2ea821356e9 100644 --- a/docs-2.0-en/14.client/3.nebula-cpp-client.md +++ b/docs-2.0-en/14.client/3.nebula-cpp-client.md @@ -2,7 +2,7 @@ [NebulaGraph CPP](https://github.com/vesoft-inc/nebula-cpp/tree/{{cpp.branch}}) is a C++ client for connecting to and managing the NebulaGraph database. -## Limitations +## Prerequisites You have installed C++ and GCC 4.8 or later versions. @@ -103,6 +103,10 @@ Compile the CPP file to an executable file, then you can use it. The following s $ LIBRARY_PATH=/usr/local/nebula/lib64:$LIBRARY_PATH g++ -std=c++11 SessionExample.cpp -I/usr/local/nebula/include -lnebula_graph_client -o session_example ``` +## API reference + +Click [here](https://vesoft-inc.github.io/nebula-cpp/release-3.4/annotated.html) to check the classes and functions provided by the CPP Client. + ## Core of the example code Nebula CPP clients provide both Session Pool and Connection Pool methods to connect to NebulaGraph. Using the Connection Pool method requires users to manage session instances by themselves. diff --git a/docs-2.0-en/14.client/4.nebula-java-client.md b/docs-2.0-en/14.client/4.nebula-java-client.md index 069e17407ea..65b0d648819 100644 --- a/docs-2.0-en/14.client/4.nebula-java-client.md +++ b/docs-2.0-en/14.client/4.nebula-java-client.md @@ -28,7 +28,7 @@ See [github](https://github.com/vesoft-inc/nebula-java/tree/{{java.branch}}). !!! note - We recommend that each thread uses one session. If multiple threads use the same session, the performance will be reduced. + We recommend that each thread use one session. If multiple threads use the same session, the performance will be reduced. When importing a Maven project with tools such as IDEA, set the following dependency in `pom.xml`. @@ -57,7 +57,11 @@ If you cannot download the dependency for the daily development version, set the If there is no Maven to manage the project, manually download the [JAR file](https://repo1.maven.org/maven2/com/vesoft/) to install NebulaGraph Java. -### Core of the example code +## API reference + +Click [here](https://vesoft-inc.github.io/nebula-java/release-3.6/annotated.html) to check the classes and functions provided by the Java Client. + +## Core of the example code The NebulaGraph Java client provides both Connection Pool and Session Pool modes, using Connection Pool requires the user to manage session instances. diff --git a/docs-2.0-en/14.client/5.nebula-python-client.md b/docs-2.0-en/14.client/5.nebula-python-client.md index 288cf4088e3..56da2e03090 100644 --- a/docs-2.0-en/14.client/5.nebula-python-client.md +++ b/docs-2.0-en/14.client/5.nebula-python-client.md @@ -46,6 +46,10 @@ $ pip install nebula3-python== $ pip install . ``` +## API reference + +Click [here](https://vesoft-inc.github.io/nebula-python/release-3.4/annotated.html) to check the classes and functions provided by the Python Client. + ## Core of the example code diff --git a/docs-2.0-en/14.client/6.nebula-go-client.md b/docs-2.0-en/14.client/6.nebula-go-client.md index 24a2351592f..b9d433e2e45 100644 --- a/docs-2.0-en/14.client/6.nebula-go-client.md +++ b/docs-2.0-en/14.client/6.nebula-go-client.md @@ -32,6 +32,10 @@ Run the following command to install or update NebulaGraph Go: $ go get -u -v github.com/vesoft-inc/nebula-go/v3@v{{go.release}} ``` +## API reference + +Click [here](https://pkg.go.dev/github.com/vesoft-inc/nebula-go/v3@v3.6.1#section-documentation) to check the functions and types provided by the GO Client. + ## Core of the example code The NebulaGraph GO client provides both Connection Pool and Session Pool, using Connection Pool requires the user to manage the session instances. diff --git a/docs-2.0-en/15.contribution/how-to-contribute.md b/docs-2.0-en/15.contribution/how-to-contribute.md index 1dcb6b2fca3..3a62dff3be6 100644 --- a/docs-2.0-en/15.contribution/how-to-contribute.md +++ b/docs-2.0-en/15.contribution/how-to-contribute.md @@ -6,25 +6,23 @@ You are welcome to contribute any code or files to the project. But firstly we suggest you raise an issue on the [github](https://github.com/vesoft-inc/nebula) or the [forum](https://github.com/vesoft-inc/nebula/discussions) to start a discussion with the community. Check through the topic for Github. -### Sign the Contributor License Agreement (CLA) +### Sign the Contributor License Agreement [CLA](https://www.apache.org/licenses/contributor-agreements.html) -What is [CLA](https://www.apache.org/licenses/contributor-agreements.html)? +1. Open the [CLA sign-in](https://cla-assistant.io/) page. +2. Click the **Sign in with GitHub** button to sign in. +3. Read and agree to the [vesoft inc. Contributor License Agreement](https://cla-assistant.io/vesoft-inc/). -Here is the [vesoft inc. Contributor License Agreement](https://cla-assistant.io/vesoft-inc/). - -Click the **Sign in with GitHub to agree** button to sign the CLA. - -If you have any questions, send an email to `info@vesoft.com`. +If you have any questions, submit an [issue](https://github.com/vesoft-inc/nebula/issues). ## Modify a single document This manual is written in the Markdown language. Click the `pencil` icon on the right of the document title to commit the modification. -This method applies to modify a single document only. +This method applies to modifying a single document only. ## Batch modify or add files -This method applies to contribute codes, modify multiple documents in batches, or add new documents. +This method applies to contributing code, modifying multiple documents in batches, or adding new documents. ## Step 1: Fork in the github.com diff --git a/docs-2.0-en/2.quick-start/1.quick-start-workflow.md b/docs-2.0-en/2.quick-start/1.quick-start-workflow.md index 098e823cc0f..cc24905b57c 100644 --- a/docs-2.0-en/2.quick-start/1.quick-start-workflow.md +++ b/docs-2.0-en/2.quick-start/1.quick-start-workflow.md @@ -30,7 +30,7 @@ You can quickly get started with NebulaGraph by deploying NebulaGraph with Docke For more information about how to use NebulaGraph with Docker Desktop, see the following video: - + === "Using Docker Compose" diff --git a/docs-2.0-en/2.quick-start/6.cheatsheet-for-ngql.md b/docs-2.0-en/2.quick-start/6.cheatsheet-for-ngql.md index 7b70daeb2a2..0c6da49d1f9 100644 --- a/docs-2.0-en/2.quick-start/6.cheatsheet-for-ngql.md +++ b/docs-2.0-en/2.quick-start/6.cheatsheet-for-ngql.md @@ -103,9 +103,9 @@ | int rank(edge) | Returns the rank value of an edge. | |vertex | Returns the information of vertices, including VIDs, tags, properties, and values.| |edge | Returns the information of edges, including edge types, source vertices, destination vertices, ranks, properties, and values.| - |vertices | Returns the information of vertices in a subgraph. For more information, see [GET SUBGRAPH](../3.ngql-guide/16.subgraph-and-path/1.get-subgraph.md).| - |edges | Returns the information of edges in a subgraph. For more information, see [GET SUBGRAPH](../3.ngql-guide/16.subgraph-and-path/1.get-subgraph.md).| - |path | Returns the information of a path. For more information, see [FIND PATH](../3.ngql-guide/16.subgraph-and-path/2.find-path.md).| + |vertices | Returns the information of vertices in a subgraph. For more information, see [GET SUBGRAPH](../3.ngql-guide/7.general-query-statements/7.get-subgraph.md).| + |edges | Returns the information of edges in a subgraph. For more information, see [GET SUBGRAPH](../3.ngql-guide/7.general-query-statements/7.get-subgraph.md).| + |path | Returns the information of a path. For more information, see [FIND PATH](../3.ngql-guide/7.general-query-statements/6.find-path.md).| * For statements compatible with openCypher @@ -418,8 +418,8 @@ | Type | Syntax | Example | Description | | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | -| [GET SUBGRAPH](../3.ngql-guide/16.subgraph-and-path/1.get-subgraph.md) | `GET SUBGRAPH [WITH PROP] [ {STEP|STEPS}] FROM {, ...} [{IN | OUT | BOTH} , ...] YIELD [VERTICES AS ] [,EDGES AS ] ` | `GET SUBGRAPH 1 STEPS FROM "player100" YIELD VERTICES AS nodes, EDGES AS relationships` | Retrieves information of vertices and edges reachable from the source vertices of the specified edge types and returns information of the subgraph. | -| [FIND PATH](../3.ngql-guide/16.subgraph-and-path/2.find-path.md) | `FIND { SHORTEST | ALL | NOLOOP } PATH [WITH PROP] FROM TO OVER [REVERSELY | BIDIRECT] [] [UPTO {STEP|STEPS}] YIELD path as [| ORDER BY $-.path] [| LIMIT ]` | `FIND SHORTEST PATH FROM "player102" TO "team204" OVER * YIELD path as p` | Finds the paths between the selected source vertices and destination vertices. A returned path is like `()-[:@]->( {STEP|STEPS}] FROM {, ...} [{IN | OUT | BOTH} , ...] YIELD [VERTICES AS ] [,EDGES AS ] ` | `GET SUBGRAPH 1 STEPS FROM "player100" YIELD VERTICES AS nodes, EDGES AS relationships` | Retrieves information of vertices and edges reachable from the source vertices of the specified edge types and returns information of the subgraph. | +| [FIND PATH](../3.ngql-guide/7.general-query-statements/6.find-path.md) | `FIND { SHORTEST | ALL | NOLOOP } PATH [WITH PROP] FROM TO OVER [REVERSELY | BIDIRECT] [] [UPTO {STEP|STEPS}] YIELD path as [| ORDER BY $-.path] [| LIMIT ]` | `FIND SHORTEST PATH FROM "player102" TO "team204" OVER * YIELD path as p` | Finds the paths between the selected source vertices and destination vertices. A returned path is like `()-[:@]->(, plan=)` | `KILL QUERY(SESSION=1625553545984255,PLAN=163)` | Terminates the query being executed, and is often used to terminate slow queries. | + +* [Kill sessions](../3.ngql-guide/17.query-tuning-statements/2.kill-session.md) + + | Syntax | Example | Description | + | ------------------------------------------------------ | --------------------------------------------------- | --------------------------------------------------- | + | `KILL {SESSION|SESSIONS} ` | `KILL SESSION 1672887983842984` | Terminates a single session. | + | `SHOW SESSIONS | YIELD $-.SessionId AS sid [WHERE ] | KILL {SESSION|SESSIONS} $-.sid` | `SHOW SESSIONS | YIELD $-.SessionId AS sid, $-.CreateTime as CreateTime | ORDER BY $-.CreateTime ASC | LIMIT 2 | KILL SESSIONS $-.sid` | Terminates multiple sessions based on specified criteria. | + | `SHOW SESSIONS | KILL SESSIONS $-.SessionId` | `SHOW SESSIONS | KILL SESSIONS $-.SessionId` | Terminates all sessions. | \ No newline at end of file diff --git a/docs-2.0-en/20.appendix/0.FAQ.md b/docs-2.0-en/20.appendix/0.FAQ.md index 0be6c4e78de..50dbad6b60e 100644 --- a/docs-2.0-en/20.appendix/0.FAQ.md +++ b/docs-2.0-en/20.appendix/0.FAQ.md @@ -57,17 +57,17 @@ From NebulaGraph version 3.0.0, the Storage services added in the configuration From NebulaGraph version 3.0.0, patterns support matching multiple tags at the same time, so you need to specify a tag name when querying properties. The original statement `RETURN variable_name.property_name` is changed to `RETURN variable_name..property_name`. - +However, the `system_memory_high_watermark_ratio` parameter is deprecated. It is recommended that you use the Memory Tracker feature instead to limit the memory usage of Graph and Storage services. For more information, see [Memory Tracker for Graph service](../5.configurations-and-logs/1.configurations/3.graph-config.md#memory-tracker-configurations) and [Memory Tracker for Storage service](../5.configurations-and-logs/1.configurations/4.storage-config.md#memory-tracker-configurations). ### "How to resolve the error `Storage Error E_RPC_FAILURE`?" @@ -85,8 +85,8 @@ It is a known issue. Just retry 1 to N times, where N is the partition number. T If this error occurs when logging in to NebulaGraph, you can consider using `df -h` to view the disk space and check whether the local disk is full. - + ### Unable to download SNAPSHOT packages when compiling Exchange, Connectors, or Algorithm @@ -313,12 +313,7 @@ You can use [NebulaGraph Algorithm](../graph-computing/nebula-algorithm.md). ### "The runtime log files are too large. How to recycle the logs?" -By default, the runtime logs of NebulaGraph are stored in `/usr/local/nebula/logs/`. The INFO level log files are `nebula-graphd.INFO, nebula-storaged.INFO, nebula-metad.INFO`. If an alarm or error occurs, the suffixes are modified as `.WARNING` or `.ERROR`. - -NebulaGraph uses [glog](https://github.com/google/glog) to print logs. `glog` cannot recycle the outdated files. To rotate logs, you can: - -- Add the parameters `timestamp_in_logfile_name=true` (timestamp added to logfile) and `max_log_size=500` (log size limit in MB) to the configuration files of the three services, and then use crontab to delete logs periodically. For more information, see [`Glog should delete old log files automatically`](https://github.com/google/glog/issues/423). -- Use [logrotate](https://github.com/logrotate/logrotate) to manage log files. Before using logrotate, modify the configurations of corresponding services and set `timestamp_in_logfile_name` to `false`. +{{nebula.name}} uses [glog](https://github.com/google/glog) for log printing, which does not support log recycling. You can manage runtime logs by using cron jobs or the log management tool [logrotate](https://man7.org/linux/man-pages/man8/logrotate.8.html). For operational details, see [Log recycling](../5.configurations-and-logs/2.log-management/logs.md). ### "How to check the NebulaGraph version?" @@ -380,6 +375,10 @@ NebulaGraph {{ nebula.release }} does not provide any commands or tools to suppo You also need to run [Balance Data and Balance leader](../8.service-tuning/load-balance.md) after scaling in/out storaged. +You can scale Graph and Storage services with Dashboard Enterprise Edition. For details, see [Scale](../nebula-dashboard-ent/4.cluster-operator/operator/scale.md). + +You can also use NebulaGraph Operator to scale Graph and Storage services. For details, see [Deploy NebulaGraph clusters](../k8s-operator/4.cluster-administration/4.1.installation/4.1.1.cluster-install.md). + #### Add or remove disks in the Storage nodes Currently, Storage cannot dynamically recognize new added disks. You can add or remove disks in the Storage nodes of the distributed cluster by following these steps: diff --git a/docs-2.0-en/20.appendix/6.eco-tool-version.md b/docs-2.0-en/20.appendix/6.eco-tool-version.md index b22239f4ccf..209c02b5e76 100644 --- a/docs-2.0-en/20.appendix/6.eco-tool-version.md +++ b/docs-2.0-en/20.appendix/6.eco-tool-version.md @@ -23,14 +23,6 @@ NebulaGraph Dashboard Community Edition (Dashboard for short) is a visualization | {{ nebula.tag }} | {{dashboard.tag}}| -## NebulaGraph Stats Exporter - -[Nebula-stats-exporter](https://github.com/vesoft-inc/nebula-stats-exporter) exports monitor metrics to Promethus. - -|NebulaGraph version|Stats Exporter version| -|:---|:---| -| {{ nebula.tag }} | {{exporter.tag}}| - ## NebulaGraph Exchange NebulaGraph Exchange (Exchange for short) is an Apache Spark&trade application for batch migration of data in a cluster to NebulaGraph in a distributed environment. It can support the migration of batch data and streaming data in a variety of different formats. For details, see [What is NebulaGraph Exchange](../import-export/nebula-exchange/about-exchange/ex-ug-what-is-exchange.md). @@ -41,7 +33,7 @@ NebulaGraph Exchange (Exchange for short) is an Apache Spark&trade application f ## NebulaGraph Operator -NebulaGraph Operator (Operator for short) is a tool to automate the deployment, operation, and maintenance of NebulaGraph clusters on Kubernetes. Building upon the excellent scalability mechanism of Kubernetes, NebulaGraph introduced its operation and maintenance knowledge into the Kubernetes system, which makes NebulaGraph a real cloud-native graph database. For more information, see [What is NebulaGraph Operator](../nebula-operator/1.introduction-to-nebula-operator.md). +NebulaGraph Operator (Operator for short) is a tool to automate the deployment, operation, and maintenance of NebulaGraph clusters on Kubernetes. Building upon the excellent scalability mechanism of Kubernetes, NebulaGraph introduced its operation and maintenance knowledge into the Kubernetes system, which makes NebulaGraph a real cloud-native graph database. For more information, see [What is NebulaGraph Operator](../k8s-operator/1.introduction-to-nebula-operator.md). |NebulaGraph version|Operator version| |:---|:---| @@ -57,7 +49,7 @@ NebulaGraph Importer (Importer for short) is a CSV file import tool for NebulaGr ## NebulaGraph Spark Connector -NebulaGraph Spark Connector is a Spark connector that provides the ability to read and write NebulaGraph data in the Spark standard format. NebulaGraph Spark Connector consists of two parts, Reader and Writer. For details, see [What is NebulaGraph Spark Connector](../import-export/nebula-spark-connector.md). +NebulaGraph Spark Connector is a Spark connector that provides the ability to read and write NebulaGraph data in the Spark standard format. NebulaGraph Spark Connector consists of two parts, Reader and Writer. For details, see [What is NebulaGraph Spark Connector](../connector/nebula-spark-connector.md). |NebulaGraph version|Spark Connector version| |:---|:---| @@ -65,7 +57,7 @@ NebulaGraph Spark Connector is a Spark connector that provides the ability to re ## NebulaGraph Flink Connector -NebulaGraph Flink Connector is a connector that helps Flink users quickly access NebulaGraph. It supports reading data from the NebulaGraph database or writing data read from other external data sources to the NebulaGraph database. For details, see [What is NebulaGraph Flink Connector](../import-export/nebula-flink-connector.md). +NebulaGraph Flink Connector is a connector that helps Flink users quickly access NebulaGraph. It supports reading data from the NebulaGraph database or writing data read from other external data sources to the NebulaGraph database. For details, see [What is NebulaGraph Flink Connector](../connector/nebula-flink-connector.md). |NebulaGraph version|Flink Connector version| |:---|:---| diff --git a/docs-2.0-en/20.appendix/release-notes/nebula-comm-release-note.md b/docs-2.0-en/20.appendix/release-notes/nebula-comm-release-note.md index 9b28f536600..c61f62ad8c7 100644 --- a/docs-2.0-en/20.appendix/release-notes/nebula-comm-release-note.md +++ b/docs-2.0-en/20.appendix/release-notes/nebula-comm-release-note.md @@ -4,36 +4,33 @@ - Enhance the full-text index. [#5567](https://github.com/vesoft-inc/nebula/pull/5567) [#5575](https://github.com/vesoft-inc/nebula/pull/5575) [#5577](https://github.com/vesoft-inc/nebula/pull/5577) [#5580](https://github.com/vesoft-inc/nebula/pull/5580) [#5584](https://github.com/vesoft-inc/nebula/pull/5584) [#5587](https://github.com/vesoft-inc/nebula/pull/5587) -## Optimizations + The changes involved are listed below: -- Support variables when querying vertex id or property index in a match clause. [#5486](https://github.com/vesoft-inc/nebula/pull/5486) [#5553](https://github.com/vesoft-inc/nebula/pull/5553) -- Support parallel startup of RocksDB instances to speed up the startup of the Storage service. [#5521](https://github.com/vesoft-inc/nebula/pull/5521) -- Optimize the prefix search performance of the RocksDB iterator after the `DeleteRange` operation. [#5525](https://github.com/vesoft-inc/nebula/pull/5525) -- Optimize the appendLog sending logic to avoid impacting write performance when a follower is down. [#5571](https://github.com/vesoft-inc/nebula/pull/5571) -- Optimize the performance of the `MATCH` statement when querying for non-existent properties. [#5634](https://github.com/vesoft-inc/nebula/pull/5634) - -## Bug fixes - -- Fix the bug of meta data inconsistency. [#5517](https://github.com/vesoft-inc/nebula/pull/5517) -- Fix the bug that RocksDB ingest causes the leader lease to be invalid. [#5534](https://github.com/vesoft-inc/nebula/pull/5534) -- Fix the error in the statistics logic of storage. [#5547](https://github.com/vesoft-inc/nebula/pull/5547) -- Fix the bug that causes the web service to crash if a flag is set for an invalid request parameter. [#5566](https://github.com/vesoft-inc/nebula/pull/5566) -- Fix the bug that too many logs are printed when listing sessions. [#5618](https://github.com/vesoft-inc/nebula/pull/5618) -- Fix the crash of the Graph service when executing a single big query. [#5619](https://github.com/vesoft-inc/nebula/pull/5619) -- Fix the crash of the Graph service when executing the `Find All Path` statement. [#5621](https://github.com/vesoft-inc/nebula/pull/5621) [#5640](https://github.com/vesoft-inc/nebula/pull/5640) -- Fix the bug that some expired data is not recycled at the bottom level. [#5447](https://github.com/vesoft-inc/nebula/pull/5447) [#5622](https://github.com/vesoft-inc/nebula/pull/5622) -- Fix the bug that adding a path variable in the `MATCH` statement causes the `all()` function push-down optimization to fail. [#5631](https://github.com/vesoft-inc/nebula/pull/5631) -- Fix the bug in the `MATCH` statement that returns incorrect results when querying the self-loop by the shortest path. [#5636](https://github.com/vesoft-inc/nebula/pull/5636) -- Fix the bug that deleting edges by pipe causes the Graph service to crash. [#5645](https://github.com/vesoft-inc/nebula/pull/5645) -- Fix the bug in the `MATCH` statement that returns missing properties of edges when matching multiple hops. [#5646](https://github.com/vesoft-inc/nebula/pull/5646) + - The original full-text indexing function has been changed from calling Elasticsearch's Term-level queries to Full text queries. + - In addition to supporting wildcards, regulars, fuzzy matches, etc. (but the syntax has been changed), support for word splitting (relying on Elasticsearch's own word splitter) has been added, and the query results include scoring results. For more syntax, see [official Elasticsearch documentation](https://www.elastic.co/guide/en/elasticsearch/reference/current/full-text-queries.html). -## Changes +## Enhancements -Enhance full-text index features with the following changes: - -- The original full-text indexing function has been changed from calling Elasticsearch's Term-level queries to Full text queries. -- In addition to supporting wildcards, regulars, fuzzy matches, etc. (but the syntax has been changed), support for word splitting (relying on Elasticsearch's own word splitter) has been added, and the query results include scoring results. For more syntax, see [official Elasticsearch documentation](https://www.elastic.co/guide/en/elasticsearch/reference/current/full-text-queries.html). +- Support variables when querying vertex id or property index in a match clause. [#5486](https://github.com/vesoft-inc/nebula/pull/5486) [#5553](https://github.com/vesoft-inc/nebula/pull/5553) +- Performance + - Support parallel startup of RocksDB instances to speed up the startup of the Storage service. [#5521](https://github.com/vesoft-inc/nebula/pull/5521) + - Optimize the prefix search performance of the RocksDB iterator after the `DeleteRange` operation. [#5525](https://github.com/vesoft-inc/nebula/pull/5525) + - Optimize the appendLog sending logic to avoid impacting write performance when a follower is down. [#5571](https://github.com/vesoft-inc/nebula/pull/5571) + - Optimize the performance of the `MATCH` statement when querying for non-existent properties. [#5634](https://github.com/vesoft-inc/nebula/pull/5634) -## Legacy versions +## Bug fixes -[Release notes of legacy versions](https://nebula-graph.io/posts/) +- DQL + - Fix the crash of the Graph service when executing a single big query. [#5619](https://github.com/vesoft-inc/nebula/pull/5619) + - Fix the crash of the Graph service when executing the `Find All Path` statement. [#5621](https://github.com/vesoft-inc/nebula/pull/5621) [#5640](https://github.com/vesoft-inc/nebula/pull/5640) + - Fix the bug that some expired data is not recycled at the bottom level. [#5447](https://github.com/vesoft-inc/nebula/pull/5447) [#5622](https://github.com/vesoft-inc/nebula/pull/5622) + - Fix the bug that adding a path variable in the `MATCH` statement causes the `all()` function push-down optimization to fail. [#5631](https://github.com/vesoft-inc/nebula/pull/5631) + - Fix the bug in the `MATCH` statement that returns incorrect results when querying the self-loop by the shortest path. [#5636](https://github.com/vesoft-inc/nebula/pull/5636) + - Fix the bug that deleting edges by pipe causes the Graph service to crash. [#5645](https://github.com/vesoft-inc/nebula/pull/5645) + - Fix the bug in the `MATCH` statement that returns missing properties of edges when matching multiple hops. [#5646](https://github.com/vesoft-inc/nebula/pull/5646) +- Others + - Fix the bug of meta data inconsistency. [#5517](https://github.com/vesoft-inc/nebula/pull/5517) + - Fix the bug that RocksDB ingest causes the leader lease to be invalid. [#5534](https://github.com/vesoft-inc/nebula/pull/5534) + - Fix the error in the statistics logic of storage. [#5547](https://github.com/vesoft-inc/nebula/pull/5547) + - Fix the bug that causes the web service to crash if a flag is set for an invalid request parameter. [#5566](https://github.com/vesoft-inc/nebula/pull/5566) + - Fix the bug that too many logs are printed when listing sessions. [#5618](https://github.com/vesoft-inc/nebula/pull/5618) diff --git a/docs-2.0-en/20.appendix/release-notes/studio-release-note.md b/docs-2.0-en/20.appendix/release-notes/studio-release-note.md index 76790033848..dfaf2bb6e47 100644 --- a/docs-2.0-en/20.appendix/release-notes/studio-release-note.md +++ b/docs-2.0-en/20.appendix/release-notes/studio-release-note.md @@ -36,5 +36,4 @@ - The import page is supported to configure more import parameters, such as concurrency, retries, etc. - Supported re-running tasks. - Supported saving tasks as drafts. - - Supported ARM architecture. - + - Supported running Studio in a docker container on the ARM architecture. diff --git a/docs-2.0-en/3.ngql-guide/1.nGQL-overview/3.graph-patterns.md b/docs-2.0-en/3.ngql-guide/1.nGQL-overview/3.graph-patterns.md index dffa6db24aa..52162b61699 100644 --- a/docs-2.0-en/3.ngql-guide/1.nGQL-overview/3.graph-patterns.md +++ b/docs-2.0-en/3.ngql-guide/1.nGQL-overview/3.graph-patterns.md @@ -130,21 +130,14 @@ The preceding example defines a path with a minimum length of 3 and a maximum le It describes a graph of either 4 vertices and 3 edges, 5 vertices and 4 edges, or 6 vertices and 5 edges, all connected in a single path. -The lower bound can be omitted. For example, to describe paths of length 5 or less, use: +You may specify either the upper limit or lower limit of the length range, or neither of them, for example: ```ngql -(a)-[*..5]->(b) +(a)-[*..5]->(b) // The minimum length is 1 and the maximum length is 5. +(a)-[*3..]->(b) // The minimum length is 3 and the maximum length is infinity. +(a)-[*]->(b) // The minimum length is 1 and the maximum length is infinity. ``` -!!! note - - The upper bound must be specified. The following are **NOT** accepted. - - ```ngql - (a)-[*3..]->(b) - (a)-[*]->(b) - ``` - ## Assigning to path variables As described above, a series of connected vertices and edges is called a `path`. nGQL allows diff --git a/docs-2.0-en/3.ngql-guide/1.nGQL-overview/comments.md b/docs-2.0-en/3.ngql-guide/1.nGQL-overview/comments.md index f6421fdd6a0..8b52f6afc58 100644 --- a/docs-2.0-en/3.ngql-guide/1.nGQL-overview/comments.md +++ b/docs-2.0-en/3.ngql-guide/1.nGQL-overview/comments.md @@ -10,7 +10,6 @@ This topic will describe the comments in nGQL. ## Examples ```ngql -nebula> # Do nothing in this line and return an error `StatementEmpty`. nebula> RETURN 1+1; # This comment continues to the end of this line. nebula> RETURN 1+1; // This comment continues to the end of this line. nebula> RETURN 1 /* This is an in-line comment. */ + 1 == 2; @@ -20,7 +19,10 @@ Use a backslash as a line break. \ */ 12; ``` -In nGQL statement, the backslash `\` in a line indicates a line break. +!!! note + + - In nGQL statements, the backslash `\` in a line indicates a line break. + - If a statement starts with `#` or `//`, the statement is not executed and the error `StatementEmpty` is returned. ## OpenCypher compatibility diff --git a/docs-2.0-en/3.ngql-guide/10.tag-statements/1.create-tag.md b/docs-2.0-en/3.ngql-guide/10.tag-statements/1.create-tag.md index 75be44a4daf..b5696e3ea24 100644 --- a/docs-2.0-en/3.ngql-guide/10.tag-statements/1.create-tag.md +++ b/docs-2.0-en/3.ngql-guide/10.tag-statements/1.create-tag.md @@ -31,11 +31,11 @@ CREATE TAG [IF NOT EXISTS] |Parameter|Description| |:---|:---| |`IF NOT EXISTS`|Detects if the tag that you want to create exists. If it does not exist, a new one will be created. The tag existence detection here only compares the tag names (excluding properties).| -|``|1. Each tag name in the graph space must be **unique**.
2. Tag names cannot be modified after they are set.
3. Tag names cannot start with a number; they support 1-4 byte UTF-8 encoded characters, including English letters (case sensitive), numbers, Chinese characters, etc., but do not support special characters other than underscores. To use special characters, reserved keywords, or start with a number in a tag name, enclose them in backticks (\`), and do not use periods (`.`) in a tag name. For more information, see [Keywords and reserved words](../../3.ngql-guide/1.nGQL-overview/keywords-and-reserved-words.md). **Note**: If you name a tag in Chinese and encounter a `SyntaxError`, you need to quote the Chinese characters with backticks (\`).| +|``|1. Each tag name in the graph space must be **unique**.
2. Tag names cannot be modified after they are set.
3. By default, the name only supports 1-4 byte UTF-8 encoded characters, including English letters (case sensitive), numbers, Chinese characters, etc. However, it cannot include special characters other than the underscore (_), and cannot start with a number.
4. To use special characters, reserved keywords, or start with a number, quote the entire name with backticks (\`) and do not include periods (`.`) within the pair of backticks (\`). For more information, see [Keywords and reserved words](../../3.ngql-guide/1.nGQL-overview/keywords-and-reserved-words.md).
**Note**:
1. If you name a tag in Chinese and encounter a `SyntaxError`, you need to quote the Chinese characters with backticks (\`).
2. To include a backtick (\`) in a tag name, use a backslash to escape the backtick, such as \\\`; to include a backslash, the backslash itself also needs to be escaped, such as \\\ . | |``|The name of the property. It must be unique for each tag. The rules for permitted property names are the same as those for tag names.| |``|Shows the data type of each property. For a full description of the property data types, see [Data types](../3.data-types/1.numeric.md) and [Boolean](../3.data-types/2.boolean.md).| -|`NULL \| NOT NULL`|Specifies if the property supports `NULL | NOT NULL`. The default value is `NULL`. | -|`DEFAULT`|Specifies a default value for a property. The default value can be a literal value or an expression supported by NebulaGraph. If no value is specified, the default value is used when inserting a new vertex.| +|`NULL | NOT NULL`|Specifies if the property supports `NULL | NOT NULL`. The default value is `NULL`. | +|`DEFAULT`|Specifies a default value for a property. The default value can be a literal value or an expression supported by NebulaGraph. If no value is specified, the default value is used when inserting a new vertex.| |`COMMENT`|The remarks of a certain property or the tag itself. The maximum length is 256 bytes. By default, there will be no comments on a tag.| |`TTL_DURATION`|Specifies the life cycle for the property. The property that exceeds the specified TTL expires. The expiration threshold is the `TTL_COL` value plus the `TTL_DURATION`. The default value of `TTL_DURATION` is `0`. It means the data never expires.| |`TTL_COL`|Specifies the property to set a timeout on. The data type of the property must be `int` or `timestamp`. A tag can only specify one field as `TTL_COL`. For more information on TTL, see [TTL options](../8.clauses-and-options/ttl-options.md).| diff --git a/docs-2.0-en/3.ngql-guide/11.edge-type-statements/1.create-edge.md b/docs-2.0-en/3.ngql-guide/11.edge-type-statements/1.create-edge.md index f1b12ad0531..f161aac76c6 100644 --- a/docs-2.0-en/3.ngql-guide/11.edge-type-statements/1.create-edge.md +++ b/docs-2.0-en/3.ngql-guide/11.edge-type-statements/1.create-edge.md @@ -31,10 +31,10 @@ CREATE EDGE [IF NOT EXISTS] |Parameter|Description| |:---|:---| |`IF NOT EXISTS`|Detects if the edge type that you want to create exists. If it does not exist, a new one will be created. The edge type existence detection here only compares the edge type names (excluding properties).| -|``|1. The edge type name must be **unique** in a graph space.
2. Once the edge type name is set, it can not be altered.
3. Edge type names cannot start with a number; they support 1-4 byte UTF-8 encoded characters, including English letters (case sensitive), numbers, Chinese characters, etc., but do not include special characters other than underscores. To use special characters, reserved keywords or starting with a number, quote them with backticks (\`) and cannot use periods (`.`). For more information, see [Keywords and reserved words](../../3.ngql-guide/1.nGQL-overview/keywords-and-reserved-words.md).
**Note**: If you name an edge type in Chinese and encounter a `SyntaxError`, you need to quote the Chinese characters with backticks (\`).| +|``|1. The edge type name must be **unique** in a graph space.
2. Once the edge type name is set, it can not be altered.
3. By default, the name only supports 1-4 byte UTF-8 encoded characters, including English letters (case sensitive), numbers, Chinese characters, etc. However, it cannot include special characters other than the underscore (_), and cannot start with a number.
4. To use special characters, reserved keywords, or start with a number, quote the entire name with backticks (\`) and do not include periods (`.`) within the pair of backticks (\`). For more information, see [Keywords and reserved words](../../3.ngql-guide/1.nGQL-overview/keywords-and-reserved-words.md).
**Note**:
1. If you name an edge type in Chinese and encounter a `SyntaxError`, you need to quote the Chinese characters with backticks (\`).
2. To include a backtick (\`) in an edge type name, use a backslash to escape the backtick, such as \\\`; to include a backslash, the backslash itself also needs to be escaped, such as \\\ . | |``|The name of the property. It must be unique for each edge type. The rules for permitted property names are the same as those for edge type names.| |``|Shows the data type of each property. For a full description of the property data types, see [Data types](../3.data-types/1.numeric.md) and [Boolean](../3.data-types/2.boolean.md).| -|`NULL \| NOT NULL`|Specifies if the property supports `NULL | NOT NULL`. The default value is `NULL`. `DEFAULT` must be specified if `NOT NULL` is set.| +|`NULL | NOT NULL`|Specifies if the property supports `NULL | NOT NULL`. The default value is `NULL`. `DEFAULT` must be specified if `NOT NULL` is set.| |`DEFAULT`|Specifies a default value for a property. The default value can be a literal value or an expression supported by NebulaGraph. If no value is specified, the default value is used when inserting a new edge.| |`COMMENT`|The remarks of a certain property or the edge type itself. The maximum length is 256 bytes. By default, there will be no comments on an edge type.| |`TTL_DURATION`|Specifies the life cycle for the property. The property that exceeds the specified TTL expires. The expiration threshold is the `TTL_COL` value plus the `TTL_DURATION`. The default value of `TTL_DURATION` is `0`. It means the data never expires.| diff --git a/docs-2.0-en/3.ngql-guide/14.native-index-statements/1.create-native-index.md b/docs-2.0-en/3.ngql-guide/14.native-index-statements/1.create-native-index.md index 968fefb156b..3419875fbeb 100644 --- a/docs-2.0-en/3.ngql-guide/14.native-index-statements/1.create-native-index.md +++ b/docs-2.0-en/3.ngql-guide/14.native-index-statements/1.create-native-index.md @@ -67,7 +67,7 @@ CREATE {TAG | EDGE} INDEX [IF NOT EXISTS] ON { | `|The name of the index. It must be unique in a graph space. A recommended way of naming is `i_tagName_propName`.
Index names cannot start with a number. They supports 1 to 4 bytes UTF-8 encoded characters, such as English letters (case-sensitive), numbers, and Chinese characters, but does not support special characters except underscores. To use special characters, reserved keywords, or starting with a number, quote them with backticks. For more information, see [Keywords and reserved words](../../3.ngql-guide/1.nGQL-overview/keywords-and-reserved-words.md).
**Note**: If you name an index in Chinese and encounter a `SyntaxError`, you need to quote the Chinese characters with backticks (\`). | +|``|1. The name of the index. It must be unique in a graph space. A recommended way of naming is `i_tagName_propName`.
2. By default, the name only supports 1-4 byte UTF-8 encoded characters, including English letters (case sensitive), numbers, Chinese characters, etc. However, it cannot include special characters other than the underscore (_), and cannot start with a number.
3. To use special characters, reserved keywords, or start with a number, quote the entire name with backticks (\`) and do not include periods (`.`) within the pair of backticks (\`). For more information, see [Keywords and reserved words](../../3.ngql-guide/1.nGQL-overview/keywords-and-reserved-words.md).
**Note**:
1. If you name an index in Chinese and encounter a `SyntaxError`, you need to quote the Chinese characters with backticks (\`).
2. To include a backtick (\`) in an index name, use a backslash to escape the backtick, such as \\\`; to include a backslash, the backslash itself also needs to be escaped, such as \\\ .| |` | `|Specifies the name of the tag or edge associated with the index.| |``|To index a **variable-length** string property, you must use `prop_name(length)` to specify the index length, and the maximum index length is 256. To index a tag or an edge type, ignore the `prop_name_list`.| |`COMMENT`|The remarks of the index. The maximum length is 256 bytes. By default, there will be no comments on an index.| diff --git a/docs-2.0-en/3.ngql-guide/3.data-types/3.string.md b/docs-2.0-en/3.ngql-guide/3.data-types/3.string.md index e35a5337af1..9d60fd5ac9b 100644 --- a/docs-2.0-en/3.ngql-guide/3.data-types/3.string.md +++ b/docs-2.0-en/3.ngql-guide/3.data-types/3.string.md @@ -38,13 +38,33 @@ When the fixed-length string you try to write exceeds the length limit: - If the fixed-length string is a property, the writing will succeed, and NebulaGraph will truncate the string and only store the part that meets the length limit. - If the fixed-length string is a VID, the writing will fail and NebulaGraph will return an error. -## Escape characters +## Escape Characters -Line breaks are not allowed in a string. Escape characters are supported within strings, for example: +In strings, the backslash (`\`) serves as an escape character used to denote special characters. -- `"\n\t\r\b\f"` +For example, to include a double quote (`"`) within a string, you cannot directly write `"Hello "world""` as it leads to a syntax error. Instead, use the backslash (`\`) to escape the double quote, such as `"Hello \"world\""`. -- `"\110ello world"` +```ngql +nebula> RETURN "Hello \"world\"" ++-----------------+ +| "Hello "world"" | ++-----------------+ +| "Hello "world"" | ++-----------------+ +``` + +The backslash itself needs to be escaped as it's a special character. For example, to include a backslash in a string, you need to write `"Hello \\ world"`. + +```ngql +nebula> RETURN "Hello \\ world" ++-----------------+ +| "Hello \ world" | ++-----------------+ +| "Hello \ world" | ++-----------------+ +``` + +For more examples of escape characters, see [Escape character examples](https://en.wikipedia.org/wiki/Escape_character#Examples). ## OpenCypher compatibility diff --git a/docs-2.0-en/3.ngql-guide/4.variable-and-composite-queries/3.property-reference.md b/docs-2.0-en/3.ngql-guide/4.variable-and-composite-queries/3.property-reference.md index c98378461e7..a2b45cd7d22 100644 --- a/docs-2.0-en/3.ngql-guide/4.variable-and-composite-queries/3.property-reference.md +++ b/docs-2.0-en/3.ngql-guide/4.variable-and-composite-queries/3.property-reference.md @@ -1,63 +1,59 @@ -# Property reference +# Reference to properties -You can refer to the properties of a vertex or an edge in `WHERE` and `YIELD` syntax. +nGQL provides property references to allow you to refer to the properties of the source vertex, the destination vertex, and the edge in the `GO` statement, and to refer to the output results of the statement in composite queries. This topic describes how to use these property references in nGQL. !!! note This function applies to native nGQL only. -## Property reference for vertex - -### For source vertex - -```ngql -$^.. -``` +## Property references for vertexes | Parameter | Description | | :---------- | :----------------- | -| `$^` | is used to get the property of the source vertex. | -| `tag_name` | is the tag name of the vertex. | -| `prop_name` | specifies the property name. | +| `$^` | Used to get the property of the source vertex. | +| `$$` | Used to get the property of the destination vertex. | -### For destination vertex +### Property reference syntax ```ngql -$$.. +$^.. # Source vertex property reference +$$.. # Destination vertex property reference ``` -| Parameter | Description | -| :---------- | :----------------- | -| `$$` | is used to get the property of the destination vertex. | -| `tag_name` | is the tag name of the vertex. | -| `prop_name` | specifies the property name. | +- `tag_name`: The tag name of the vertex. +- `prop_name`: The property name within the tag. + +## Property references for edges + +| Parameter | Description | +| :---------- | :------------------ | +| `_src` | The source vertex ID of the edge | +| `_dst` | The destination vertex ID of the edge | +| `_type` | The internal encoding of edge types that uses sign to indicate direction.
Positive numbers represent forward edges, while negative numbers represent backward edges. | +| `_rank` | The rank value for the edge | -## Property reference for edge +### Property reference syntax -### For user-defined edge property +nGQL allows you to reference edge properties, including user-defined edge properties and four built-in edge properties. ```ngql -. +. # User-defined edge property reference +._src|_dst|_type|_rank # Built-in edge property reference ``` -| Parameter | Description | -| :---------- | :------------------ | -| `edge_type` | is the edge type of the edge. | -| `prop_name` | specifies the property name of the edge type. | +- `edge_type`: The edge type. +- `prop_name`: The property name within the edge type. -### For built-in properties - -Apart from the user-defined edge property, there are four built-in properties in each edge: +## Property references for composite queries | Parameter | Description | | :---------- | :------------------ | -| `_src` | source vertex ID of the edge | -| `_dst` | destination vertex ID of the edge | -| `_type` | edge type | -| `_rank` | the rank value for the edge | +| `$-` | Used to get the output results of the statement before the pipe in the composite query. For more information, see [Pipe](4.pipe.md). | ## Examples +### Use property references for vertexes + The following query returns the `name` property of the `player` tag on the source vertex and the `age` property of the `player` tag on the destination vertex. ```ngql @@ -70,6 +66,19 @@ nebula> GO FROM "player100" OVER follow YIELD $^.player.name AS startName, $$.pl +--------------+--------+ ``` +!!! compatibility "Legacy version compatibility" + + Starting from {{nebula.name}} 2.6.0, [Schema-related functions](../6.functions-and-expressions/4.schema.md) are supported. The preceding example can be rewritten as follows in {{nebula.name}} {{ nebula.release}} to produce the same results: + + ```ngql + GO FROM "player100" OVER follow YIELD properties($^).name AS startName, properties($$).age AS endAge; + ``` + + {{nebula.name}} {{ nebula.release}} is compatible with both new and old syntax. + + +### Use property references for edges + The following query returns the `degree` property of the edge type `follow`. ```ngql @@ -95,12 +104,36 @@ nebula> GO FROM "player100" OVER follow YIELD follow._src, follow._dst, follow._ !!! compatibility "Legacy version compatibility" - NebulaGraph 2.6.0 and later versions support the new [Schema-related functions](../6.functions-and-expressions/4.schema.md). Similar statements as the above examples are written as follows in {{ nebula.release}}. + Starting from {{nebula.name}} 2.6.0, [Schema-related functions](../6.functions-and-expressions/4.schema.md) are supported. The preceding example can be rewritten as follows in {{nebula.name}} {{ nebula.release}} to produce the same results: ```ngql - GO FROM "player100" OVER follow YIELD properties($^).name AS startName, properties($$).age AS endAge; GO FROM "player100" OVER follow YIELD properties(edge).degree; GO FROM "player100" OVER follow YIELD src(edge), dst(edge), type(edge), rank(edge); ``` - In {{ nebula.release}}, NebulaGraph is still compatible with the old syntax. + {{nebula.name}} {{ nebula.release}} is compatible with both new and old syntax. + + +### Use property references for composite queries + + +The following composite query performs the following actions: + +1. Uses the property reference `$-.id` to get the results of the statement `GO FROM "player100" OVER follow YIELD dst(edge) AS id`, which returns the destination vertex ID of the `follow` edge type. +2. Uses the `properties($^)` function to get the name property of the player tag on the source vertex of the `serve` edge type. +3. Uses the `properties($$)` function to get the name property of the team tag on the destination vertex of the `serve` edge type. + + +```ngql +nebula> GO FROM "player100" OVER follow \ + YIELD dst(edge) AS id | \ + GO FROM $-.id OVER serve \ + YIELD properties($^).name AS Player, properties($$).name AS Team; ++-----------------+-----------+ +| Player | Team | ++-----------------+-----------+ +| "Tony Parker" | "Spurs" | +| "Tony Parker" | "Hornets" | +| "Manu Ginobili" | "Spurs" | ++-----------------+-----------+ +``` diff --git a/docs-2.0-en/3.ngql-guide/5.operators/4.pipe.md b/docs-2.0-en/3.ngql-guide/5.operators/4.pipe.md index 8bd8c691714..edd8383474a 100644 --- a/docs-2.0-en/3.ngql-guide/5.operators/4.pipe.md +++ b/docs-2.0-en/3.ngql-guide/5.operators/4.pipe.md @@ -39,9 +39,7 @@ In NebulaGraph, pipes will affect the performance. Take `A | B` as an example, t 1. Pipe operators operate synchronously. That is, the data can enter the pipe clause as a whole after the execution of clause `A` before the pipe operator is completed. -2. Pipe operators need to be serialized and deserialized, which is executed in a single thread. - -3. If `A` sends a large amount of data to `|`, the entire query request may be very slow. You can try to split this statement. +2. If `A` sends a large amount of data to `|`, the entire query request may be very slow. You can try to split this statement. 1. Send `A` from the application, diff --git a/docs-2.0-en/3.ngql-guide/5.operators/5.property-reference.md b/docs-2.0-en/3.ngql-guide/5.operators/5.property-reference.md deleted file mode 100644 index 4507346be50..00000000000 --- a/docs-2.0-en/3.ngql-guide/5.operators/5.property-reference.md +++ /dev/null @@ -1,41 +0,0 @@ -# Reference operators - -NGQL provides reference operators to represent a property in a `WHERE` or `YIELD` clause, or the output of the statement before the pipe operator in a composite query. - -## OpenCypher compatibility - -Reference operators apply to native nGQL only. - -## Reference operator List - -| Reference operator | Description | -|--------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------| -| `$^` | Refers to a source vertex property. For more information, see [Property reference](../4.variable-and-composite-queries/3.property-reference.md). | -| `$$` | Refers to a destination vertex property. For more information, see [Property reference](../4.variable-and-composite-queries/3.property-reference.md). | -| `$-` | Refers to the output of the statement before the pipe operator in a composite query. For more information, see [Pipe](4.pipe.md). | - -## Examples - -```ngql -# The following example returns the age of the source vertex and the destination vertex. -nebula> GO FROM "player100" OVER follow YIELD properties($^).age AS SrcAge, properties($$).age AS DestAge; -+--------+---------+ -| SrcAge | DestAge | -+--------+---------+ -| 42 | 36 | -| 42 | 41 | -+--------+---------+ - -# The following example returns the name and team of the players that player100 follows. -nebula> GO FROM "player100" OVER follow \ - YIELD dst(edge) AS id | \ - GO FROM $-.id OVER serve \ - YIELD $^.player.name AS Player, properties($$).name AS Team; -+-----------------+-----------+ -| Player | Team | -+-----------------+-----------+ -| "Tony Parker" | "Spurs" | -| "Tony Parker" | "Hornets" | -| "Manu Ginobili" | "Spurs" | -+-----------------+-----------+ -``` diff --git a/docs-2.0-en/3.ngql-guide/6.functions-and-expressions/4.schema.md b/docs-2.0-en/3.ngql-guide/6.functions-and-expressions/4.schema.md index 333d6deb57b..5e5cb8338da 100644 --- a/docs-2.0-en/3.ngql-guide/6.functions-and-expressions/4.schema.md +++ b/docs-2.0-en/3.ngql-guide/6.functions-and-expressions/4.schema.md @@ -219,15 +219,15 @@ nebula> GO FROM "player100" OVER follow YIELD edge AS e; ### vertices -vertices returns the information of vertices in a subgraph. For more information, see [GET SUBGRAPH](../16.subgraph-and-path/1.get-subgraph.md). +vertices returns the information of vertices in a subgraph. For more information, see [GET SUBGRAPH](../../3.ngql-guide/7.general-query-statements/7.get-subgraph.md). ### edges -edges returns the information of edges in a subgraph. For more information, see [GET SUBGRAPH](../16.subgraph-and-path/1.get-subgraph.md). +edges returns the information of edges in a subgraph. For more information, see [GET SUBGRAPH](../../3.ngql-guide/7.general-query-statements/7.get-subgraph.md). ### path -path returns the information of a path. For more information, see [FIND PATH](../16.subgraph-and-path/2.find-path.md). +path returns the information of a path. For more information, see [FIND PATH](../../3.ngql-guide/7.general-query-statements/6.find-path.md). ## For statements compatible with openCypher diff --git a/docs-2.0-en/3.ngql-guide/7.general-query-statements/1.general-query-statements-overview.md b/docs-2.0-en/3.ngql-guide/7.general-query-statements/1.general-query-statements-overview.md new file mode 100644 index 00000000000..cd009f4e3e5 --- /dev/null +++ b/docs-2.0-en/3.ngql-guide/7.general-query-statements/1.general-query-statements-overview.md @@ -0,0 +1,250 @@ +# Overview of NebulaGraph general query statements + +This topic provides an overview of the general categories of query statements in NebulaGraph and outlines their use cases. + +## Background + +NebulaGraph stores data in the form of vertices and edges. Each vertex can have zero or more tags and each edge has exactly one edge type. Tags define the type of a vertex and describe its properties, while edge types define the type of an edge and describe its properties. When querying, you can limit the scope of the query by specifying the tag of a vertex or the type of an edge. For more information, see [Patterns](../1.nGQL-overview/3.graph-patterns.md). + +## Categories + +The primary query statements in NebulaGraph fall into the following categories: + +- [FETCH PROP ON](#fetch_prop_on) +- [LOOKUP ON](#lookup_on) +- [GO](#go) +- [MATCH](#match) +- [FIND PATH](#find_path) +- [GET SUBGRAPH](#get_subgraph) +- [SHOW](#show) + +`FETCH PROP ON` and `LOOKUP ON` statements are primarily for basic data queries, `GO` and `MATCH` for more intricate queries and graph traversals, `FIND PATH` and `GET SUBGRAPH` for path and subgraph queries, and `SHOW` for retrieving database metadata. + +## Usage and use cases + +### FETCH PROP ON + +**Usage:** Retrieve properties of a specified vertex or edge. + +**Use case:** Knowing the specific vertex or edge ID and wanting to retrieve its properties. + +**Note:** + +- Must specify the ID of the vertex or edge. +- Must specify the tag of the vertex or the edge type of the edge. +- Must use the `YIELD` clause to specify the returned properties. + +**Example:** + +```ngql +FETCH PROP ON player "player100" YIELD properties(vertex); + --+--- ----+----- -------+---------- + | | | + | | | + | | +--------- Returns all properties under the player tag of the vertex. + | | + | +----------------- Retrieves from the vertex "player100". + | + +--------------------------- Retrieves properties under the player tag. +``` + +For more information, see [FETCH PROP ON](4.fetch.md). + +### LOOKUP ON + +**Usage:** Index-based querying of vertex or edge IDs. + +**Use case:** Finding vertex or edge IDs based on property values. + +**Note:** +- Must pre-define indexes for the tag, edge type, or property. +- Must specify the tag of the vertex or the edge type of the edge. +- Must use the `YIELD` clause to specify the returned IDs. + +**Example:** + +```ngql +LOOKUP ON player WHERE player.name == "Tony Parker" YIELD id(vertex); + --+--- ------------------+--------------- ---+------ + | | | + | | | + | | +---- Returns the VID of the retrieved vertex. + | | + | +------------ Filtering is based on the value of the property name. + | + +----------------------------------- Queries based on the player tag. +``` + +For more information, see [LOOKUP ON](5.lookup.md). + +### GO + +**Usage:** Traverse the graph based on a given vertex and return information about the starting vertex, edges, or target vertices as needed. +**Use case:** Complex graph traversals, such as finding friends of a vertex, friends' friends, etc. + +**Note:** +- Use [property reference symbols](../5.operators/5.property-reference.md) (`$^` and `$$`) to return properties of the starting or target vertices, e.g., `YIELD $^.player.name`. +- Use the functions `properties($^)` and `properties($$)` to return all properties of the starting or target vertices. Specify property names in the function to return specific properties, e.g., `YIELD properties($^).name`. +- Use the functions `src(edge)` and `dst(edge)` to return the starting or destination vertex ID of an edge, e.g., `YIELD src(edge)`. + +**Example:** + +```ngql +GO 3 STEPS FROM "player102" OVER follow YIELD dst(edge); +-----+--- --+------- -+---- ---+----- + | | | | + | | | | + | | | +--------- Returns the destination vertex of the last hop. + | | | + | | +------ Traverses out via the edge follow. + | | + | +--------------------- Starts from "player102". + | + +---------------------------------- Traverses 3 steps. +``` + +For more information, see [GO](3.go.md). + +### MATCH + +**Usage:** Execute complex [graph pattern](../1.nGQL-overview/3.graph-patterns.md) matching queries. + +**Use case:** Complex graph pattern matching, such as finding combinations of vertices and edges that satisfy a specific pattern. + +**Note:** + +`MATCH` statements are compatible with the OpenCypher syntax but with some differences: + +- Use `==` for equality instead of `=`, e.g., `WHERE player.name == "Tony Parker"`. +- When referencing properties of vertices, you need to specify the vertex's tag, e.g., `YIELD player.name`. +- Introduces the `WHERE id(v) == "player100"` syntax. +- Must use the `RETURN` clause to specify what information to return. + +**Example:** + +```ngql +MATCH (v:player{name:"Tim Duncan"})-->(v2:player) \ + RETURN v2.player.name AS Name; +``` + +For more information, see [MATCH](2.match.md). + +### FIND PATH + +**Usage:** Query paths between given starting and target vertices or query properties of vertices and edges along paths. + +**Use case:** Querying paths between two vertices. + +**Note:** Must use the `YIELD` clause to specify returned information. + +**Example:** + +```ngql +FIND SHORTEST PATH FROM "player102" TO "team204" OVER * YIELD path AS p; +-------+----- -------+---------------- ---+-- ----+---- + | | | | + | | | | + | | | +---------- Returns the path as 'p'. + | | | + | | +----------- Travels outwards via all types of edges. + | | + | | + | +------------------ From the given starting and target VIDs. + | + +--------------------------- Retrieves the shortest path. +``` + +For more information, see [FIND PATH](6.find-path.md). + +### GET SUBGRAPH + +**Usage:** Extract a portion of the graph that satisfies specific conditions or query properties of vertices and edges in the subgraph. + +**Use case:** Analyzing structures of the graph or specific regions, such as extracting the social network subgraph of a person or the transportation network subgraph of an area. + +**Note:** Must use the `YIELD` clause to specify returned information. + +**Example:** + +```ngql +GET SUBGRAPH 5 STEPS FROM "player101" YIELD VERTICES AS nodes, EDGES AS relationships; + -----+- -----+-------- ------------------------+---------------- + | | | + | | | + | +------- Starts from "player101". +------------ Returns all vertices and edges. + | + +----------------- Gets exploration of 5 steps + +``` + +For more information, see [GET SUBGRAPH](7.get-subgraph.md). + +### SHOW + +`SHOW` statements are mainly used to obtain metadata information from the database, not for retrieving the actual data stored in the database. These statements are typically used to query the structure and configuration of the database. + + | Statement | Syntax | Example | Description | + | ------------------------------------------------------------ | ------------------------------------------------- | ------------------------------------ | -------------------------------------------------------- | + | [SHOW CHARSET](6.show/1.show-charset.md) | `SHOW CHARSET` | `SHOW CHARSET` | Shows the available character sets. | + | [SHOW COLLATION](6.show/2.show-collation.md) | `SHOW COLLATION` | `SHOW COLLATION` | Shows the collations supported by NebulaGraph. | + | [SHOW CREATE SPACE](6.show/4.show-create-space.md) | `SHOW CREATE SPACE ` | `SHOW CREATE SPACE basketballplayer` | Shows the creating statement of the specified graph space. | + | [SHOW CREATE TAG/EDGE](6.show/5.show-create-tag-edge.md) | `SHOW CREATE {TAG | EDGE }` | `SHOW CREATE TAG player` | Shows the basic information of the specified tag. | + | [SHOW HOSTS](6.show/6.show-hosts.md) | `SHOW HOSTS [GRAPH | STORAGE | META]` | `SHOW HOSTS`
`SHOW HOSTS GRAPH` | Shows the host and version information of Graph Service, Storage Service, and Meta Service. | + | [SHOW INDEX STATUS](6.show/7.show-index-status.md) | `SHOW {TAG | EDGE} INDEX STATUS` | `SHOW TAG INDEX STATUS` | Shows the status of jobs that rebuild native indexes, which helps check whether a native index is successfully rebuilt or not. | + | [SHOW INDEXES](6.show/8.show-indexes.md) | `SHOW {TAG | EDGE} INDEXES` | `SHOW TAG INDEXES` | Shows the names of existing native indexes. | + | [SHOW PARTS](6.show/9.show-parts.md) | `SHOW PARTS []` | `SHOW PARTS` | Shows the information of a specified partition or all partitions in a graph space. | + | [SHOW ROLES](6.show/10.show-roles.md) | `SHOW ROLES IN ` | `SHOW ROLES in basketballplayer` | Shows the roles that are assigned to a user account. | + | [SHOW SNAPSHOTS](6.show/11.show-snapshots.md) | `SHOW SNAPSHOTS` | `SHOW SNAPSHOTS` | Shows the information of all the snapshots. + | [SHOW SPACES](6.show/12.show-spaces.md) | `SHOW SPACES` | `SHOW SPACES` | Shows existing graph spaces in NebulaGraph. | + | [SHOW STATS](6.show/14.show-stats.md) | `SHOW STATS` | `SHOW STATS` | Shows the statistics of the graph space collected by the latest `STATS` job. | + | [SHOW TAGS/EDGES](6.show/15.show-tags-edges.md) | `SHOW TAGS | EDGES` | `SHOW TAGS`,`SHOW EDGES` | Shows all the tags in the current graph space. | + | [SHOW USERS](6.show/16.show-users.md) | `SHOW USERS` | `SHOW USERS` | Shows the user information. | + | [SHOW SESSIONS](6.show/17.show-sessions.md) | `SHOW SESSIONS ` | ` SHOW SESSIONS` | Shows the information of all the sessions. | + | [SHOW SESSIONS](6.show/17.show-sessions.md) | `SHOW SESSION ` | `SHOW SESSION 1623304491050858` | Shows a specified session with its ID. | + | [SHOW QUERIES](6.show/18.show-queries.md) | `SHOW [ALL] QUERIES` | `SHOW QUERIES` | Shows the information of working queries in the current session. | + | [SHOW META LEADER](6.show/19.show-meta-leader.md) | `SHOW META LEADER` | `SHOW META LEADER` | Shows the information of the leader in the current Meta cluster. | + +## Compound queries + +Query statements in NebulaGraph can be combined to achieve more complex queries. + +When referencing the results of a subquery in a compound statement, you need to create an alias for the result and use the [pipe symbol](../5.operators/4.pipe.md)(`|`) to pass it to the next subquery. Use `$-` in the next subquery to reference the alias of that result. See [Pipe Symbol](../5.operators/4.pipe.md) for details. + +Example: + +```ngql +nebula> GO FROM "player100" OVER follow \ + YIELD dst(edge) AS dstid, properties($$).name AS Name | \ + GO FROM $-.dstid OVER follow YIELD dst(edge); ++-------------+ +| dst(EDGE) | ++-------------+ +| "player100" | +| "player102" | +| "player125" | +| "player100" | ++-------------+ +``` + +The pipe symbol `|` is applicable only in nGQL and cannot be used in OpenCypher statements. If you need to perform compound queries using `MATCH` statements, you can use the [WITH clause](../8.clauses-and-options/with.md). + +Example: + +```ngql +nebula> MATCH (v:player)-->(v2:player) \ + WITH DISTINCT v2 AS v2, v2.player.age AS Age \ + ORDER BY Age \ + WHERE Age<25 \ + RETURN v2.player.name AS Name, Age; ++----------------------+-----+ +| Name | Age | ++----------------------+-----+ +| "Luka Doncic" | 20 | +| "Ben Simmons" | 22 | +| "Kristaps Porzingis" | 23 | ++----------------------+-----+ +``` + +## More information + +[nGQL command cheatsheet](../../2.quick-start/6.cheatsheet-for-ngql.md) diff --git a/docs-2.0-en/3.ngql-guide/7.general-query-statements/2.match.md b/docs-2.0-en/3.ngql-guide/7.general-query-statements/2.match.md index 616eb1d10db..3c15f9b4a8d 100644 --- a/docs-2.0-en/3.ngql-guide/7.general-query-statements/2.match.md +++ b/docs-2.0-en/3.ngql-guide/7.general-query-statements/2.match.md @@ -469,16 +469,18 @@ nebula> MATCH (v:player{name:"Tim Duncan"}) -[*0]-> (v2) \ ### Match variable-length paths -You can use the `:*[minHop..maxHop]` pattern to match variable-length paths.`minHop` and `maxHop` are optional and default to 1 -and infinity respectively. +You can use the `:*[minHop..maxHop]` pattern to match variable-length paths.`minHop` and `maxHop` are optional and default to 1 and infinity respectively. -!!! note +!!! caution - When setting bounds, at least one of `minHop` and `maxHop` exists. + If `maxHop` is not set, it may cause the Graph service to OOM. Execute this command with caution. -!!! caution +| Parameter | Description | +| :------- | :----------------------------------------------------------------------- | +| `minHop` | Optional. `minHop` indicates the minimum length of the path, which must be a non-negative integer. The default value is 1. | +| `maxHop` | Optional. `maxHop` indicates the maximum length of the path, which must be a non-negative integer. The default value is infinity. | - If `maxHop` is not set, it may cause the Graph service to OOM, execute this command with caution. +If neither `minHop` nor `maxHop` is specified, and only `:*` is set, the default values are applied to both, i.e., `minHop` is 1 and `maxHop` is infinity. ```ngql nebula> MATCH p=(v:player{name:"Tim Duncan"})-[e:follow*]->(v2) \ diff --git a/docs-2.0-en/3.ngql-guide/7.general-query-statements/3.go.md b/docs-2.0-en/3.ngql-guide/7.general-query-statements/3.go.md index e915cd09425..6bc87ffff07 100644 --- a/docs-2.0-en/3.ngql-guide/7.general-query-statements/3.go.md +++ b/docs-2.0-en/3.ngql-guide/7.general-query-statements/3.go.md @@ -152,6 +152,26 @@ nebula> GO FROM "player100", "player102" OVER serve \ +-----------------+------------+---------------------+ ``` +### To query all edges + +Case: To query all edges that are connected to the starting vertex. + +```ngql +# Return all edges that are connected to the player102 vertex. +nebula> GO FROM "player102" OVER * BIDIRECT YIELD edge AS e; ++-----------------------------------------------------------------------+ +| e | ++-----------------------------------------------------------------------+ +| [:follow "player101"->"player102" @0 {degree: 90}] | +| [:follow "player103"->"player102" @0 {degree: 70}] | +| [:follow "player135"->"player102" @0 {degree: 80}] | +| [:follow "player102"->"player100" @0 {degree: 75}] | +| [:follow "player102"->"player101" @0 {degree: 75}] | +| [:serve "player102"->"team203" @0 {end_year: 2015, start_year: 2006}] | +| [:serve "player102"->"team204" @0 {end_year: 2019, start_year: 2015}] | ++-----------------------------------------------------------------------+ +``` + ### To query multiple edge types Case: To query multiple edge types that are connected to the starting vertex. You can specify multiple edge types or the `*` symbol to query multiple edge types. diff --git a/docs-2.0-en/3.ngql-guide/16.subgraph-and-path/2.find-path.md b/docs-2.0-en/3.ngql-guide/7.general-query-statements/6.find-path.md similarity index 100% rename from docs-2.0-en/3.ngql-guide/16.subgraph-and-path/2.find-path.md rename to docs-2.0-en/3.ngql-guide/7.general-query-statements/6.find-path.md diff --git a/docs-2.0-en/3.ngql-guide/7.general-query-statements/6.show/17.show-sessions.md b/docs-2.0-en/3.ngql-guide/7.general-query-statements/6.show/17.show-sessions.md index ea6b821b7fa..3e8871fd303 100644 --- a/docs-2.0-en/3.ngql-guide/7.general-query-statements/6.show/17.show-sessions.md +++ b/docs-2.0-en/3.ngql-guide/7.general-query-statements/6.show/17.show-sessions.md @@ -51,6 +51,6 @@ nebula> SHOW SESSION 1635254859271703; | `SpaceName` | The name of the graph space that the user uses currently. It is null (`""`) when you first log in because there is no specified graph space. | | `CreateTime` | The time when the session is created, namely the time when the user logs in. The time zone is specified by `timezone_name` in the configuration file. | | `UpdateTime` | The system will update the time when there is an operation. The time zone is specified by `timezone_name` in the configuration file. | -| `GraphAddr` | The IP address and port of the Graph server that hosts the session. | +| `GraphAddr` | The IP (or hostname) and port of the Graph server that hosts the session. | | `Timezone` | A reserved parameter that has no specified meaning for now. | -| `ClientIp` | The IP address of the client. | +| `ClientIp` | The IP or hostname of the client. | diff --git a/docs-2.0-en/3.ngql-guide/7.general-query-statements/6.show/19.show-meta-leader.md b/docs-2.0-en/3.ngql-guide/7.general-query-statements/6.show/19.show-meta-leader.md index 604eb343c4a..49debe5835f 100644 --- a/docs-2.0-en/3.ngql-guide/7.general-query-statements/6.show/19.show-meta-leader.md +++ b/docs-2.0-en/3.ngql-guide/7.general-query-statements/6.show/19.show-meta-leader.md @@ -23,5 +23,5 @@ nebula> SHOW META LEADER; | Parameter | Description | | :--- | :--- | -| `Meta Leader` | Shows the information of the leader in the Meta cluster, including the IP address and port of the server where the leader is located. | +| `Meta Leader` | Shows the information of the leader in the Meta cluster, including the IP (or hostname) and port of the server where the leader is located. | | `secs from last heart beat` | Indicates the time interval since the last heartbeat. This parameter is measured in seconds. | diff --git a/docs-2.0-en/3.ngql-guide/7.general-query-statements/6.show/9.show-parts.md b/docs-2.0-en/3.ngql-guide/7.general-query-statements/6.show/9.show-parts.md index 30f48dcca05..41e36d9436b 100644 --- a/docs-2.0-en/3.ngql-guide/7.general-query-statements/6.show/9.show-parts.md +++ b/docs-2.0-en/3.ngql-guide/7.general-query-statements/6.show/9.show-parts.md @@ -40,6 +40,6 @@ The descriptions are as follows. | Parameter | Description | | - | - | | `Partition ID` | The ID of the partition. | -| `Leader` | The IP address and the port of the leader. | -| `Peers` | The IP addresses and the ports of all the replicas. | -| `Losts` | The IP addresses and the ports of replicas at fault. | +| `Leader` | The IP (or hostname) and the port of the leader. | +| `Peers` | The IPs (or hostnames) and the ports of all the replicas. | +| `Losts` | The IPs (or hostnames) and the ports of replicas at fault. | diff --git a/docs-2.0-en/3.ngql-guide/16.subgraph-and-path/1.get-subgraph.md b/docs-2.0-en/3.ngql-guide/7.general-query-statements/7.get-subgraph.md similarity index 100% rename from docs-2.0-en/3.ngql-guide/16.subgraph-and-path/1.get-subgraph.md rename to docs-2.0-en/3.ngql-guide/7.general-query-statements/7.get-subgraph.md diff --git a/docs-2.0-en/3.ngql-guide/8.clauses-and-options/yield.md b/docs-2.0-en/3.ngql-guide/8.clauses-and-options/yield.md index cfe7c9b32b8..8a07c065b4b 100644 --- a/docs-2.0-en/3.ngql-guide/8.clauses-and-options/yield.md +++ b/docs-2.0-en/3.ngql-guide/8.clauses-and-options/yield.md @@ -23,7 +23,7 @@ This topic applies to native nGQL only. For the openCypher syntax, use [`RETURN` * In nGQL, `YIELD` works like `RETURN` in openCypher. !!! note - In the following examples, `$$` and `$-` are reference operators. For more information, see [Operators](../5.operators/5.property-reference.md). + In the following examples, `$$` and `$-` are property references. For more information, see [Reference to properties](../4.variable-and-composite-queries/3.property-reference.md). ## YIELD clauses diff --git a/docs-2.0-en/3.ngql-guide/9.space-statements/1.create-space.md b/docs-2.0-en/3.ngql-guide/9.space-statements/1.create-space.md index 72d2227cb10..d7f2af93310 100644 --- a/docs-2.0-en/3.ngql-guide/9.space-statements/1.create-space.md +++ b/docs-2.0-en/3.ngql-guide/9.space-statements/1.create-space.md @@ -22,7 +22,7 @@ CREATE SPACE [IF NOT EXISTS] ( |Parameter|Description| |:---|:---| |`IF NOT EXISTS`|Detects if the related graph space exists. If it does not exist, a new one will be created. The graph space existence detection here only compares the graph space name (excluding properties).| -|``|1. Uniquely identifies a graph space in a NebulaGraph instance.
2. Space names cannot be modified after they are set.
3. Space names cannot start with a number; they support 1-4 byte UTF-8 encoded characters, including English letters (case sensitive), numbers, Chinese characters, etc., but do not include special characters other than underscores. To use special characters, reserved keywords or starting with a number, quote them with backticks (\`) and cannot use periods (`.`). For more information, see [Keywords and reserved words](../../3.ngql-guide/1.nGQL-overview/keywords-and-reserved-words.md). **Note**: If you name a space in Chinese and encounter a `SyntaxError`, you need to quote the Chinese characters with backticks (\`).| +|``|1. Uniquely identifies a graph space in a NebulaGraph instance.
2. Space names cannot be modified after they are set.
3. By default, the name only supports 1-4 byte UTF-8 encoded characters, including English letters (case sensitive), numbers, Chinese characters, etc. However, it cannot include special characters other than the underscore (_), and cannot start with a number.
4. To use special characters, reserved keywords, or start with a number, quote the entire name with backticks (\`) and do not include periods (`.`) within the pair of backticks (\`). For more information, see [Keywords and reserved words](../../3.ngql-guide/1.nGQL-overview/keywords-and-reserved-words.md).
**Note**:
1. If you name a space in Chinese and encounter a `SyntaxError`, you need to quote the Chinese characters with backticks (\`).
2. To include a backtick (\`) in a space name, use a backslash to escape the backtick, such as \\\`; to include a backslash, the backslash itself also needs to be escaped, such as \\\ .| |`partition_num`|Specifies the number of partitions in each replica. The suggested value is 20 times (2 times for HDD) the number of the hard disks in the cluster. For example, if you have three hard disks in the cluster, we recommend that you set 60 partitions. The default value is 100.| |`replica_factor`|Specifies the number of replicas in the cluster. The suggested number is 3 in a production environment and 1 in a test environment. The replica number must be an **odd number** for the need of quorum-based voting. The default value is 1.| |`vid_type`|A required parameter. Specifies the VID type in a graph space. Available values are `FIXED_STRING(N)` and `INT64`. `INT` equals to `INT64`.
``FIXED_STRING()` specifies the VID as a string, while `INT64` specifies it as an integer. `N` represents the maximum length of the VIDs. If you set a VID that is longer than `N` bytes, NebulaGraph throws an error. Note, for UTF-8 chars, the length may vary in different cases, i.e. a UTF-8 Chinese char is 3 byte, this means 11 Chinese chars(length-33) will exeed a FIXED_STRING(32) vid defination.| @@ -64,7 +64,7 @@ CREATE SPACE [IF NOT EXISTS] AS ; | Parameter | Description | | :--- | :--- | |`IF NOT EXISTS`|Detects if the new graph space exists. If it does not exist, the new one will be created. The graph space existence detection here only compares the graph space name (excluding properties).| -| `` | The name of the graph space that is newly created. The name of the graph space starts with a letter, supports 1 to 4 bytes UTF-8 encoded characters, such as English letters (case-sensitive), digits, and Chinese characters, but does not support special characters except underscores. For more information, see [Keywords and reserved words](../../3.ngql-guide/1.nGQL-overview/keywords-and-reserved-words.md). When a new graph space is created, the schema of the old graph space `` will be cloned, including its parameters (the number of partitions and replicas, etc.), Tag, Edge type and native indexes. | +| `` | The name of the graph space that is newly created.
By default, the space name only supports 1-4 byte UTF-8 encoded characters, including English letters (case sensitive), numbers, Chinese characters, etc. But special characters can only use underscore, and cannot start with a number.
To use special characters, reserved keywords, or start with a number, quote the entire name with backticks (\`) and cannot use periods (`.`). For more information, see [Keywords and reserved words](../../3.ngql-guide/1.nGQL-overview/keywords-and-reserved-words.md).
When a new graph space is created, the schema of the old graph space `` will be cloned, including its parameters (the number of partitions and replicas, etc.), Tag, Edge type and native indexes.
**Note**:
1. If you name a space in Chinese and encounter a `SyntaxError`, you need to quote the Chinese characters with backticks (\`).
2. To include a backtick (\`) in a space name, use a backslash to escape the backtick, such as \\\`; to include a backslash, the backslash itself also needs to be escaped, such as \\\ .| | `` | The name of the graph space that already exists. | ## Examples diff --git a/docs-2.0-en/3.ngql-guide/9.space-statements/5.drop-space.md b/docs-2.0-en/3.ngql-guide/9.space-statements/5.drop-space.md index 3af3c129a06..747868c8ebb 100644 --- a/docs-2.0-en/3.ngql-guide/9.space-statements/5.drop-space.md +++ b/docs-2.0-en/3.ngql-guide/9.space-statements/5.drop-space.md @@ -8,7 +8,7 @@ !!! warning - After you execute `DROP SPACE`, even if the snapshot contains data of the graph space, the data of the graph space cannot be recovered. But if the value of `auto_remove_invalid_space` is set to `false`, contact the sales team to recover the data of the graph space. + After you execute `DROP SPACE`, even if the snapshot contains data of the graph space, the data of the graph space cannot be recovered. ## Prerequisites diff --git a/docs-2.0-en/3.ngql-guide/9.space-statements/6.clear-space.md b/docs-2.0-en/3.ngql-guide/9.space-statements/6.clear-space.md index cacb6667d8c..1acc884ede0 100644 --- a/docs-2.0-en/3.ngql-guide/9.space-statements/6.clear-space.md +++ b/docs-2.0-en/3.ngql-guide/9.space-statements/6.clear-space.md @@ -4,7 +4,7 @@ !!! note - It is recommended to execute [`SUBMIT JOB COMPACT`](../../4.job-statements/#submit_job_compact) immediately after executing the `CLEAR SPACE` operation improve the query performance. Note that the COMPACT operation may affect query performance, and it is recommended to perform this operation during low business hours (e.g., early morning). + It is recommended to execute [SUBMIT JOB COMPACT](../4.job-statements.md#submit_job_compact) immediately after executing the `CLEAR SPACE` operation improve the query performance. Note that the COMPACT operation may affect query performance, and it is recommended to perform this operation during low business hours (e.g., early morning). ## Permission requirements diff --git a/docs-2.0-en/4.deployment-and-installation/1.resource-preparations.md b/docs-2.0-en/4.deployment-and-installation/1.resource-preparations.md index 3f484f29917..cc9aa405af2 100644 --- a/docs-2.0-en/4.deployment-and-installation/1.resource-preparations.md +++ b/docs-2.0-en/4.deployment-and-installation/1.resource-preparations.md @@ -10,7 +10,7 @@ NebulaGraph is designed and implemented for NVMe SSD. All default parameters are - Do not use remote storage devices, such as NAS or SAN. Do not connect an external virtual hard disk based on HDFS or Ceph. -- Do not use RAID. +- RAID is not recommended because {{nebula.name}} provides a multi-replica mechanism. Configuring RAID would result in a waste of resources. - Use local SSD devices, or AWS Provisioned IOPS SSD equivalence. diff --git a/docs-2.0-en/4.deployment-and-installation/2.compile-and-install-nebula-graph/6.deploy-nebula-graph-with-peripherals.md b/docs-2.0-en/4.deployment-and-installation/2.compile-and-install-nebula-graph/6.deploy-nebula-graph-with-peripherals.md index 5a5ed84b18e..8509bdbc2e8 100644 --- a/docs-2.0-en/4.deployment-and-installation/2.compile-and-install-nebula-graph/6.deploy-nebula-graph-with-peripherals.md +++ b/docs-2.0-en/4.deployment-and-installation/2.compile-and-install-nebula-graph/6.deploy-nebula-graph-with-peripherals.md @@ -6,4 +6,4 @@ You can install the NebulaGraph Community Edition with the following ecosystem t ## Installation details -- To install NebulaGraph with **NebulaGraph Operator**, see [Deploy NebulaGraph clusters with Kubectl](../../nebula-operator/3.deploy-nebula-graph-cluster/3.1create-cluster-with-kubectl.md) or [Deploy NebulaGraph clusters with Helm](../../nebula-operator/3.deploy-nebula-graph-cluster/3.2create-cluster-with-helm.md). +- To install NebulaGraph with **NebulaGraph Operator**, see [Install NebulaGraph clusters](../../k8s-operator/4.cluster-administration/4.1.installation/4.1.1.cluster-install.md). diff --git a/docs-2.0-en/4.deployment-and-installation/6.deploy-text-based-index/3.deploy-listener.md b/docs-2.0-en/4.deployment-and-installation/6.deploy-text-based-index/3.deploy-listener.md index a8854c52392..6cea2b78885 100644 --- a/docs-2.0-en/4.deployment-and-installation/6.deploy-text-based-index/3.deploy-listener.md +++ b/docs-2.0-en/4.deployment-and-installation/6.deploy-text-based-index/3.deploy-listener.md @@ -34,8 +34,8 @@ Most configurations are the same as the configurations of [Storage Service](../. | :----------- | :----------------------- | :------------------ | | `daemonize` | `true` | When set to `true`, the process is a daemon process. | | `pid_file` | `pids/nebula-metad-listener.pid` | The file that records the process ID. | -| `meta_server_addrs` | - | IP addresses and ports of all Meta services. Multiple Meta services are separated by commas. | -| `local_ip` | - | The local IP address of the Listener service. Use real IP addresses instead of domain names or loopback IP addresses such as `127.0.0.1`. | +| `meta_server_addrs` | - | IP (or hostname) and ports of all Meta services. Multiple Meta services are separated by commas. | +| `local_ip` | - | The local IP (or hostname) of the Listener service. Use real IP addresses instead of domain names or loopback IP addresses such as `127.0.0.1`. | | `port` | - | The listening port of the RPC daemon of the Listener service. | | `heartbeat_interval_secs` | `10` | The heartbeat interval of the Meta service. The unit is second (s). | | `listener_path` | `data/listener` | The WAL directory of the Listener. Only one directory is allowed. | diff --git a/docs-2.0-en/5.configurations-and-logs/1.configurations/1.configurations.md b/docs-2.0-en/5.configurations-and-logs/1.configurations/1.configurations.md index d27f72ca49c..3a713f31f6e 100644 --- a/docs-2.0-en/5.configurations-and-logs/1.configurations/1.configurations.md +++ b/docs-2.0-en/5.configurations-and-logs/1.configurations/1.configurations.md @@ -59,7 +59,7 @@ curl -s 127.0.0.1:19559/flags !!! note - In an actual environment, use the real host IP address instead of `127.0.0.1` in the above example. + In an actual environment, use the real IP (or hostname) instead of `127.0.0.1` in the above example. ## Configuration files @@ -71,7 +71,7 @@ The configuration values in the initial configuration file are for reference onl !!! note - To ensure the availability of services, it is recommended that configurations for the same service be consistent, except for the local IP address `local_ip`. For example, three Storage servers are deployed in one NebulaGraph cluster. The configurations of the three Storage servers are recommended to be consistent, except for the IP address. + To ensure the availability of services, it is recommended that configurations for the same service be consistent, except for `local_ip`. For example, three Storage servers are deployed in one NebulaGraph cluster. The configurations of the three Storage servers are recommended to be consistent, except for `local_ip`. The initial configuration files corresponding to each service are as follows. @@ -125,7 +125,7 @@ By default, each NebulaGraph service gets configured from its configuration file * For clusters installed with Kubectl - For details, see [Customize configuration parameters for a NebulaGraph cluster](../../nebula-operator/8.custom-cluster-configurations/8.1.custom-conf-parameter.md). + For details, see [Customize configuration parameters for a NebulaGraph cluster](../../k8s-operator/4.cluster-administration/4.2.configuration.md). ### Dynamically modifying configurations using command diff --git a/docs-2.0-en/5.configurations-and-logs/1.configurations/2.meta-config.md b/docs-2.0-en/5.configurations-and-logs/1.configurations/2.meta-config.md index 9285c3a551c..2c4527bbde8 100644 --- a/docs-2.0-en/5.configurations-and-logs/1.configurations/2.meta-config.md +++ b/docs-2.0-en/5.configurations-and-logs/1.configurations/2.meta-config.md @@ -52,17 +52,16 @@ For all parameters and their current values, see [Configurations](1.configuratio | Name | Predefined value | Description |Whether supports runtime dynamic modifications| | :----------------------- | :---------------- | :---------------------------------------------------- |:----------------- | -| `meta_server_addrs` | `127.0.0.1:9559` | Specifies the IP addresses and ports of all Meta Services. Multiple addresses are separated with commas. | No| -|`local_ip` | `127.0.0.1` | Specifies the local IP for the Meta Service. The local IP address is used to identify the nebula-metad process. If it is a distributed cluster or requires remote access, modify it to the corresponding address.| No| +| `meta_server_addrs` | `127.0.0.1:9559` | Specifies the IPs (or hostnames) and ports of all Meta Services. Multiple addresses are separated with commas. | No| +|`local_ip` | `127.0.0.1` | Specifies the local IP (or hostname) for the Meta Service. The local IP address is used to identify the nebula-metad process. If it is a distributed cluster or requires remote access, modify it to the corresponding address.| No| | `port` | `9559` | Specifies RPC daemon listening port of the Meta service. The neighboring `+1` (`9560`) port is used for Raft communication between Meta services. | No| | `ws_ip` | `0.0.0.0` | Specifies the IP address for the HTTP service. | No| | `ws_http_port` | `19559` | Specifies the port for the HTTP service. | No| |`ws_storage_http_port`|`19779`| Specifies the Storage service listening port used by the HTTP protocol. It must be consistent with the `ws_http_port` in the Storage service configuration file. This parameter only applies to standalone NebulaGraph.| No| -|`heartbeat_interval_secs` | `10` | Specifies the default heartbeat interval. Make sure the `heartbeat_interval_secs` values for all services are the same, otherwise NebulaGraph **CANNOT** work normally. This configuration is measured in seconds. | Yes| !!! caution - The real IP address must be used in the configuration file. Otherwise, `127.0.0.1/0.0.0.0` cannot be parsed correctly in some cases. + It is recommended to use a real IP when using IP address. Otherwise, `127.0.0.1/0.0.0.0` cannot be parsed correctly in some cases. ## Storage configurations @@ -76,6 +75,8 @@ For all parameters and their current values, see [Configurations](1.configuratio | :------------------------- | :-------------------- | :---------------------------------------------------------------------------- |:----------------- | |`default_parts_num` | `10` | Specifies the default partition number when creating a new graph space. | No| |`default_replica_factor` | `1` | Specifies the default replica number when creating a new graph space. | No| +|`heartbeat_interval_secs` | `10` | Specifies the default heartbeat interval. Make sure the `heartbeat_interval_secs` values for all services are the same, otherwise NebulaGraph **CANNOT** work normally. This configuration is measured in seconds. | Yes| +|`agent_heartbeat_interval_secs`| `60` | Specifies the default heartbeat interval for the Agent service. This configuration influences the time it takes for the system to determine that the Agent service is offline. This configuration is measured in seconds. | No| ## RocksDB options configurations diff --git a/docs-2.0-en/5.configurations-and-logs/1.configurations/3.graph-config.md b/docs-2.0-en/5.configurations-and-logs/1.configurations/3.graph-config.md index 892e02c476a..fb7b81889e0 100644 --- a/docs-2.0-en/5.configurations-and-logs/1.configurations/3.graph-config.md +++ b/docs-2.0-en/5.configurations-and-logs/1.configurations/3.graph-config.md @@ -29,6 +29,8 @@ For all parameters and their current values, see [Configurations](1.configuratio | `pid_file` | `pids/nebula-graphd.pid`| The file that records the process ID. | No| |`enable_optimizer` |`true` | When set to `true`, the optimizer is enabled. | No| | `timezone_name` | - | Specifies the NebulaGraph time zone. This parameter is not predefined in the initial configuration files. The system default value is `UTC+00:00:00`. For the format of the parameter value, see [Specifying the Time Zone with TZ](https://www.gnu.org/software/libc/manual/html_node/TZ-Variable.html "Click to view the timezone-related content in the GNU C Library manual"). For example, `--timezone_name=UTC+08:00` represents the GMT+8 time zone. | No| +|`default_charset`|`utf8`|Specifies the default charset when creating a new graph space. | No| +|`default_collate`|`utf8_bin`|Specifies the default collate when creating a new graph space. | No| | `local_config` | `true` | When set to `true`, the process gets configurations from the configuration files. | No| !!! note @@ -62,8 +64,8 @@ For all parameters and their current values, see [Configurations](1.configuratio | Name | Predefined value | Description |Whether supports runtime dynamic modifications| | ----------------------- | ---------------- | ---------------------------------------------------- |------------------| -| `meta_server_addrs` | `127.0.0.1:9559` | Specifies the IP addresses and ports of all Meta Services. Multiple addresses are separated with commas.| No| -|`local_ip` | `127.0.0.1` | Specifies the local IP for the Graph Service. The local IP address is used to identify the nebula-graphd process. If it is a distributed cluster or requires remote access, modify it to the corresponding address.| No| +| `meta_server_addrs` | `127.0.0.1:9559` | Specifies the IPs (or hostnames) and ports of all Meta Services. Multiple addresses are separated with commas.| No| +|`local_ip` | `127.0.0.1` | Specifies the local IP (or hostname) for the Graph Service. The local IP address is used to identify the nebula-graphd process. If it is a distributed cluster or requires remote access, modify it to the corresponding address.| No| |`listen_netdev` |`any` | Specifies the listening network device. | No| | `port` | `9669` | Specifies RPC daemon listening port of the Graph service. | No| |`reuse_port` |`false` | When set to `false`, the `SO_REUSEPORT` is closed. | No| @@ -83,14 +85,7 @@ For all parameters and their current values, see [Configurations](1.configuratio !!! caution - The real IP address must be used in the configuration file. Otherwise, `127.0.0.1/0.0.0.0` cannot be parsed correctly in some cases. - -## Charset and collate configurations - -| Name | Predefined value | Description |Whether supports runtime dynamic modifications| -| ---------------- | ------------------ | -------------------------------------------------------------- |------------------| -|`default_charset` | `utf8` | Specifies the default charset when creating a new graph space. | No| -|`default_collate` | `utf8_bin` | Specifies the default collate when creating a new graph space. | No| + It is recommended to use a real IP when using IP address. Otherwise, `127.0.0.1/0.0.0.0` cannot be parsed correctly in some cases. ## Authorization configurations @@ -133,7 +128,7 @@ For all parameters and their current values, see [Configurations](1.configuratio | Name | Predefined value | Description |Whether supports runtime dynamic modifications| | :------------------- | :------------------------ | :------------------------------------------ |:------------------| -|`memory_tracker_limit_ratio` |`0.8` | The value of this parameter can be set to `(0, 1]`, `2`, and `3`.
**Caution: When setting this parameter, ensure that the value of `system_memory_high_watermark_ratio` is not set to `1`, otherwise the value of this parameter will not take effect.**
`(0, 1]`: The percentage of free memory. When the free memory is lower than this value, NebulaGraph stops accepting queries.
Calculated as follows:
`Free memory / (Total memory - Reserved memory)`
**Note**: For clusters with a mixed-used environment, the value of `memory_tracker_limit_ratio` should be set to a **lower** value. For example, when Graphd is expected to occupy only 50% of memory, the value can be set to less than `0.5`.
`2`: Dynamic Self Adaptive mode. MemoryTracker dynamically adjusts the available memory based on the system's current available memory.
**Note**: This feature is experimental. As memory usage cannot be monitored in real time in dynamic adaptive mode, an OOM error may still occur to handle large memory allocations.
`3`: Disable MemoryTracker. MemoryTracker only logs memory usage and does not interfere with executions even if the limit is exceeded.| Yes| +|`memory_tracker_limit_ratio` |`0.8` | The value of this parameter can be set to `(0, 1]`, `2`, and `3`.
**Caution: When setting this parameter, ensure that the value of `system_memory_high_watermark_ratio` is not set to `1`, otherwise the value of this parameter will not take effect.**
`(0, 1]`: The percentage of available memory. Formula: `Percentage of available memory = Available memory / (Total memory - Reserved memory)`.
When an ongoing query results in memory usage exceeding the configured limit, the query fails and subsequently the memory is released.
**Note**: For the hybrid deployment of a cluster with cloud-based and on-premises nodes, the value of `memory_tracker_limit_ratio` should be set to a **lower** value. For example, when the graphd is expected to occupy only 50% of memory, the value can be set to less than `0.5`.
`2`: Dynamic Self Adaptive mode. MemoryTracker dynamically adjusts the available memory based on the system's current available memory.
**Note**: This feature is experimental. As memory usage cannot be monitored in real time in dynamic adaptive mode, an OOM error may still occur to handle large memory allocations.
`3`: Disable MemoryTracker. MemoryTracker only logs memory usage and does not interfere with executions even if the limit is exceeded.| Yes| |`memory_tracker_untracked_reserved_memory_mb` |`50`| The reserved memory that is not tracked by the memory tracker. Unit: MB.| Yes| |`memory_tracker_detail_log` |`false` | Whether to enable the memory tracker log. When the value is `true`, the memory tracker log is generated.| Yes| |`memory_tracker_detail_log_interval_ms` |`60000`| The time interval for generating the memory tracker log. Unit: Millisecond. `memory_tracker_detail_log` is `true` when this parameter takes effect.| Yes| diff --git a/docs-2.0-en/5.configurations-and-logs/1.configurations/4.storage-config.md b/docs-2.0-en/5.configurations-and-logs/1.configurations/4.storage-config.md index 98b273a3d9d..5e78c018003 100644 --- a/docs-2.0-en/5.configurations-and-logs/1.configurations/4.storage-config.md +++ b/docs-2.0-en/5.configurations-and-logs/1.configurations/4.storage-config.md @@ -57,8 +57,8 @@ For all parameters and their current values, see [Configurations](1.configuratio | Name | Predefined value | Description |Whether supports runtime dynamic modifications| | :----------------------- | :---------------- | :---------------------------------------------------- |:------------------| -| `meta_server_addrs` | `127.0.0.1:9559` | Specifies the IP addresses and ports of all Meta Services. Multiple addresses are separated with commas. | No| -|`local_ip` | `127.0.0.1` | Specifies the local IP for the Storage Service. The local IP address is used to identify the nebula-storaged process. If it is a distributed cluster or requires remote access, modify it to the corresponding address.| No| +| `meta_server_addrs` | `127.0.0.1:9559` | Specifies the IPs (or hostnames) and ports of all Meta Services. Multiple addresses are separated with commas. | No| +|`local_ip` | `127.0.0.1` | Specifies the local IP (or hostname) for the Storage Service. The local IP address is used to identify the nebula-storaged process. If it is a distributed cluster or requires remote access, modify it to the corresponding address.| No| | `port` | `9779` | Specifies RPC daemon listening port of the Storage service. The neighboring ports `-1` (`9778`) and `+1` (`9780`) are also used.
`9778`: The port used by the Admin service, which receives Meta commands for Storage.
`9780`: The port used for Raft communication between Storage services.| No| | `ws_ip` | `0.0.0.0` | Specifies the IP address for the HTTP service. | No| | `ws_http_port` | `19779` | Specifies the port for the HTTP service. | No| @@ -66,7 +66,7 @@ For all parameters and their current values, see [Configurations](1.configuratio !!! caution - The real IP address must be used in the configuration file. Otherwise, `127.0.0.1/0.0.0.0` cannot be parsed correctly in some cases. + It is recommended to use a real IP when using IP address. Otherwise, `127.0.0.1/0.0.0.0` cannot be parsed correctly in some cases. ## Raft configurations @@ -105,25 +105,6 @@ For all parameters and their current values, see [Configurations](1.configuratio | `rocksdb_blob_compression` | `lz4` | Compression algorithm for BlobDB. Optional values are `no`, `snappy`, `lz4`, `lz4hc`, `zlib`, `bzip2`, and `zstd`. | | `rocksdb_enable_blob_garbage_collection` | `true` | Whether to perform BlobDB garbage collection during compaction. | --> -## Misc configurations - -!!! caution - - The configuration `snapshot` in the following table is different from the snapshot in NebulaGraph. The `snapshot` here refers to the stock data on the leader when synchronizing Raft. - -| Name | Predefined value | Description |Whether supports runtime dynamic modifications| -| :-- | :----- | :--- |:------------------| -| `query_concurrently` |`true`| Whether to turn on multi-threaded queries. Enabling it can improve the latency performance of individual queries, but it will reduce the overall throughput under high pressure. | Yes| -| `auto_remove_invalid_space` | `true` |After executing `DROP SPACE`, the specified graph space will be deleted. This parameter sets whether to delete all the data in the specified graph space at the same time. When the value is `true`, all the data in the specified graph space will be deleted at the same time.| Yes| -| `num_io_threads` | `16` | The number of network I/O threads used to send RPC requests and receive responses. | No| -|`num_max_connections` |`0` |Max active connections for all networking threads. 0 means no limit.
Max connections for each networking thread = num_max_connections / num_netio_threads|No| -| `num_worker_threads` | `32` | The number of worker threads for one RPC-based Storage service. | No| -| `max_concurrent_subtasks` | `10` | The maximum number of concurrent subtasks to be executed by the task manager. | No| -| `snapshot_part_rate_limit` | `10485760` | The rate limit when the Raft leader synchronizes the stock data with other members of the Raft group. Unit: bytes/s. | Yes| -| `snapshot_batch_size` | `1048576` | The amount of data sent in each batch when the Raft leader synchronizes the stock data with other members of the Raft group. Unit: bytes. | Yes| -| `rebuild_index_part_rate_limit` | `4194304` | The rate limit when the Raft leader synchronizes the index data rate with other members of the Raft group during the index rebuilding process. Unit: bytes/s. | Yes| -| `rebuild_index_batch_size` | `1048576` | The amount of data sent in each batch when the Raft leader synchronizes the index data with other members of the Raft group during the index rebuilding process. Unit: bytes. | Yes| - ## RocksDB options | Name | Predefined value | Description |Whether supports runtime dynamic modifications| @@ -177,7 +158,24 @@ Supported options of `rocksdb_db_options` and `rocksdb_column_family_options` ar For more information, see [RocksDB official documentation](https://rocksdb.org/). +## Misc configurations +!!! caution + + The configuration `snapshot` in the following table is different from the snapshot in NebulaGraph. The `snapshot` here refers to the stock data on the leader when synchronizing Raft. + +| Name | Predefined value | Description |Whether supports runtime dynamic modifications| +| :-- | :----- | :--- |:------------------| +| `query_concurrently` |`true`| Whether to turn on multi-threaded queries. Enabling it can improve the latency performance of individual queries, but it will reduce the overall throughput under high pressure. | Yes| +| `auto_remove_invalid_space` | `true` |After executing `DROP SPACE`, the specified graph space will be deleted. This parameter sets whether to delete all the data in the specified graph space at the same time. When the value is `true`, all the data in the specified graph space will be deleted at the same time.| Yes| +| `num_io_threads` | `16` | The number of network I/O threads used to send RPC requests and receive responses. | No| +|`num_max_connections` |`0` |Max active connections for all networking threads. 0 means no limit.
Max connections for each networking thread = num_max_connections / num_netio_threads|No| +| `num_worker_threads` | `32` | The number of worker threads for one RPC-based Storage service. | No| +| `max_concurrent_subtasks` | `10` | The maximum number of concurrent subtasks to be executed by the task manager. | No| +| `snapshot_part_rate_limit` | `10485760` | The rate limit when the Raft leader synchronizes the stock data with other members of the Raft group. Unit: bytes/s. | Yes| +| `snapshot_batch_size` | `1048576` | The amount of data sent in each batch when the Raft leader synchronizes the stock data with other members of the Raft group. Unit: bytes. | Yes| +| `rebuild_index_part_rate_limit` | `4194304` | The rate limit when the Raft leader synchronizes the index data rate with other members of the Raft group during the index rebuilding process. Unit: bytes/s. | Yes| +| `rebuild_index_batch_size` | `1048576` | The amount of data sent in each batch when the Raft leader synchronizes the index data with other members of the Raft group during the index rebuilding process. Unit: bytes. | Yes| ## Memory Tracker configurations @@ -185,7 +183,7 @@ For details about Memory Tracker, see [Memory Tracker: Memory Management Practic | Name | Predefined value | Description |Whether supports runtime dynamic modifications| | :------------------- | :------------------------ | :------------------------------------------ |:------------------| -|`memory_tracker_limit_ratio` |`0.8` | The value of this parameter can be set to `(0, 1]`, `2`, and `3`.
`(0, 1]`: The percentage of free memory. When the free memory is lower than this value, NebulaGraph stops accepting queries.
Calculated as follows:
`Free memory / (Total memory - Reserved memory)`
**Note**: For clusters with a mixed-used environment, the value of `memory_tracker_limit_ratio` should be set to a **lower** value. For example, when Graphd is expected to occupy only 50% of memory, the value can be set to less than `0.5`.
`2`: Dynamic Self Adaptive mode. MemoryTracker dynamically adjusts the available memory based on the system's current available memory.
**Note**: This feature is experimental. As memory usage cannot be monitored in real time in dynamic adaptive mode, an OOM error may still occur to handle large memory allocations.
`3`: Disable MemoryTracker. MemoryTracker only logs memory usage and does not interfere with executions even if the limit is exceeded.| Yes| +|`memory_tracker_limit_ratio` |`0.8` | The value of this parameter can be set to `(0, 1]`, `2`, and `3`.
`(0, 1]`: The percentage of available memory. Formula: `Percentage of available memory = Available memory / (Total memory - Reserved memory)`.
When an ongoing query results in memory usage exceeding the configured limit, the query fails and subsequently the memory is released.
**Note**: For the hybrid deployment of a cluster with cloud-based and on-premises nodes, the value of `memory_tracker_limit_ratio` should be set to a **lower** value. For example, when the graphd is expected to occupy only 50% of memory, the value can be set to less than `0.5`.
`2`: Dynamic Self Adaptive mode. MemoryTracker dynamically adjusts the available memory based on the system's current available memory.
**Note**: This feature is experimental. As memory usage cannot be monitored in real time in dynamic adaptive mode, an OOM error may still occur to handle large memory allocations.
`3`: Disable MemoryTracker. MemoryTracker only logs memory usage and does not interfere with executions even if the limit is exceeded.| Yes| |`memory_tracker_untracked_reserved_memory_mb` |`50`| The reserved memory that is not tracked by the Memory Tracker. Unit: MB.| Yes| |`memory_tracker_detail_log` |`false` | Whether to enable the Memory Tracker log. When the value is `true`, the Memory Tracker log is generated.| Yes| |`memory_tracker_detail_log_interval_ms` |`60000`| The time interval for generating the Memory Tracker log. Unit: Millisecond. `memory_tracker_detail_log` is `true` when this parameter takes effect.| Yes| diff --git a/docs-2.0-en/5.configurations-and-logs/1.configurations/6.kernel-config.md b/docs-2.0-en/5.configurations-and-logs/1.configurations/6.kernel-config.md index 9d49dabb893..57c77ca7e25 100644 --- a/docs-2.0-en/5.configurations-and-logs/1.configurations/6.kernel-config.md +++ b/docs-2.0-en/5.configurations-and-logs/1.configurations/6.kernel-config.md @@ -4,33 +4,30 @@ This topic introduces the Kernel configurations in Nebula Graph. ## Resource control -### ulimit precautions - -The `ulimit` command specifies the resource threshold for the current shell session. The precautions are as follows: - -- The changes made by `ulimit` only take effect for the current session or child process. - -- The resource threshold (soft threshold) cannot exceed the hard threshold. - -- Common users cannot use commands to adjust the hard threshold, even with `sudo`. - -- To modify the system level or adjust the hard threshold, edit the file `/etc/security/limits.conf`. This method requires re-login to take effect. - -### ulimit -c - -`ulimit -c` limits the size of the core dumps. We recommend that you set it to `unlimited`. The command is: +You may run the `ulimit` command to control the resource threshold. However, the changes made only take effect for the current session or sub-process. To make permanent changes, edit file `/etc/security/limits.conf`. The configuration is as follows: ```bash -ulimit -c unlimited +# +* soft core unlimited +* hard core unlimited +* soft nofile 130000 +* hard nofile 130000 ``` -### ulimit -n +!!! note -`ulimit -n` limits the number of open files. We recommend that you set it to more than 100,000. For example: + The configuration modification takes effect for new sessions. -```bash -ulimit -n 130000 -``` +The parameter descriptions are as follows. + +|Parameter|Description| +|:--|:--| +|`domain`| Control Domain. This parameter can be a user name, a user group name (starting with `@`), or `*` to indicate all users.| +|`type`| Control type. This parameter can be `soft` or `hard`. `soft` indicates a soft threshold (the default threshold) for the resource and `hard` indicates a maximum value that can be set by the user. The `ulimit` command can be used to increase `soft`, but not to exceed `hard`.| +|`item`| Resource types. For example, `core` limits the size of the core dump file, and `nofile` limits the maximum number of file descriptors a process can open.| +|`value`| Resource limit value. This parameter can be a number, or `unlimited` to indicate that there is no limit.| + +You can run `man limits.conf` for more helpful information. ## Memory @@ -50,17 +47,50 @@ ulimit -n 130000 These values control the dirty data cache for the system. For write-intensive scenarios, you can make adjustments based on your needs (throughput priority or delay priority). We recommend that you use the system default value. -### Transparent huge page +### Transparent Huge Pages -For better delay performance, you must run the following commands to disable the transparent huge pages (THP). +Transparent Huge Pages (THP) is a memory management feature of the Linux kernel, which enhances the system's ability to use large pages. In most database systems, Transparent Huge Pages can degrade performance, so it is recommended to disable it. -```bash -root# echo never > /sys/kernel/mm/transparent_hugepage/enabled -root# echo never > /sys/kernel/mm/transparent_hugepage/defrag -root# swapoff -a && swapon -a -``` +Perform the following steps: -To prevent THP from being enabled again after the system restarts, you can modify the GRUB configuration file or `/etc/rc.local` to disable THP automatically upon system startup. +1. Edit the GRUB configuration file `/etc/default/grub`. + + ```bash + sudo vi /etc/default/grub + ``` + +2. Add `transparent_hugepage=never` to the `GRUB_CMDLINE_LINUX` option, and then save and exit. + + ```bash + GRUB_CMDLINE_LINUX="... transparent_hugepage=never" + ``` + +3. Update the GRUB configuration. + + - For CentOS: + + ```bash + sudo grub2-mkconfig -o /boot/grub2/grub.cfg + ``` + + - For Ubuntu: + + ```bash + sudo update-grub + ``` + +5. Reboot the computer. + + ```bash + sudo reboot + ``` + + If you don't want to reboot, you can run the following commands to temporarily disable THP until the next reboot. + + ```bash + echo 'never' > /sys/kernel/mm/transparent_hugepage/enabled + echo 'never' > /sys/kernel/mm/transparent_hugepage/defrag + ``` ## Networking diff --git a/docs-2.0-en/5.configurations-and-logs/2.log-management/logs.md b/docs-2.0-en/5.configurations-and-logs/2.log-management/logs.md index 721ecf88cbf..e0c05804d72 100644 --- a/docs-2.0-en/5.configurations-and-logs/2.log-management/logs.md +++ b/docs-2.0-en/5.configurations-and-logs/2.log-management/logs.md @@ -75,6 +75,160 @@ If the log level is changed while NebulaGraph is running, it will be restored to RocksDB runtime logs are usually used to debug RocksDB parameters and stored in `/usr/local/nebula/data/storage/nebula/$id/data/LOG`. `$id` is the ID of the example. -## Log recycle +## Log recycling -How to recycle logs when the runtime log file is too large, see [FAQs](../../20.appendix/0.FAQ.md). +Glog does not inherently support log recycling. To implement this feature, you can either use [cron jobs](https://man7.org/linux/man-pages/man1/crontab.1.html) in Linux to regularly remove old log files or use the log management tool, [logrotate](https://github.com/logrotate/logrotate), to rotate logs for regular archiving and deletion. + +### Log recycling using cron jobs + +This section provides an example of how to use cron jobs to regularly delete old log files from the Graph service's runtime logs. + +1. In the Graph service configuration file, apply the following settings and restart the service: + + ```bash + timestamp_in_logfile_name = true + max_log_size = 500 + ``` + + - By setting `timestamp_in_logfile_name` to `true`, the log file name includes a timestamp, allowing regular deletion of old log files. + - The `max_log_size` parameter sets the maximum size of a single log file in MB, such as `500`. Once this size is exceeded, a new log file is automatically created. The default value is `1800`. + +2. Use the following command to open the cron job editor. + + ```bash + crontab -e + ``` + +3. Add a cron job command to the editor to regularly delete old log files. + + ```bash + * * * * * find -name "" -mtime +7 -delete + ``` + + !!! caution + + The `find` command in the above command should be executed by the root user or a user with sudo privileges. + + - `* * * * *`: This cron job time field signifies that the task is executed every minute. For other settings, see [Cron Expression](https://crontab.cronhub.io/). + - ``: The path of the service runtime log file, such as `/usr/local/nebula/logs`. + - ``: The log file name, such as `nebula-graphd.*`. + - `-mtime +7`: This deletes log files that are older than 7 days. Alternatively, use `-mmin +n` to delete log files older than `n` minutes. For details, see the find command. + - `-delete`: This deletes log files that meet the conditions. + + For example, to automatically delete the Graph service runtime log files older than 7 days at 3 o'clock every morning, use: + + ```bash + 0 3 * * * find /usr/local/nebula/logs -name nebula-graphd.* -mtime +7 -delete + ``` + +4. Save the cron job and exit the editor. + + +### Log recycling using logrotate + +Logrotate is a tool that can rotate specified log files for archiving and recycling. + +!!! note + + You must be the root user or a user with sudo privileges to install or run logrotate. + +This section provides an example of how to use logrotate to manage the Graph service's `INFO` level log file (`/usr/local/nebula/logs/nebula-graphd.INFO.impl`). + +1. In the Graph service configuration file, set `timestamp_in_logfile_name` to `false` so that the logrotate tool can recognize the log file name. Then, restart the service. + + ```bash + timestamp_in_logfile_name = false + ``` + +2. Install logrotate. + + - For Debian/Ubuntu: + + ```bash + sudo apt-get install logrotate + ``` + + - For CentOS/RHEL: + + ```bash + sudo yum install logrotate + ``` + +3. Create a logrotate configuration file, add log rotation rules, and save the configuration file. + + In the `/etc/logrotate.d` directory, create a new logrotate configuration file `nebula-graphd.INFO`. + + ```bash + sudo vim /etc/logrotate.d/nebula-graphd.INFO + ``` + + Then, add the following content: + + ```bash + # The absolute path of the log file needs to be configured + # And the file name cannot be a symbolic link file, such as `nebula-graph.INFO` + /usr/local/nebula/logs/nebula-graphd.INFO.impl { + daily + rotate 2 + copytruncate + nocompress + missingok + notifempty + create 644 root root + dateext + dateformat .%Y-%m-%d-%s + maxsize 1k + } + ``` + + | Parameter | Description | + | --------------- | ------------------------------------------------------------ | + | `daily` | Rotate the log daily. Other available time units include `hourly`, `daily`, `weekly`, `monthly`, and `yearly`. | + | `rotate 2` | Keep the most recent 2 log files before deleting the older one. | + | `copytruncate` | Copy the current log file and then truncate it, ensuring no disruption to the logging process. | + | `nocompress` | Do not compress the old log files. | + | `missingok` | Do not report errors if the log file is missing. | + | `notifempty` | Do not rotate the log file if it's empty. | + | `create 644 root root` | Create a new log file with the specified permissions and ownership. | + | `dateext` | Add a date extension to the log file name.
The default is the current date in the format `-%Y%m%d`.
You can extend this using the `dateformat` option. | + | `dateformat .%Y-%m-%d-%s` | This must follow immediately after `dateext` and defines the file name after log rotation.
Before V3.9.0, only `%Y`, `%m`, `%d`, and `%s` parameters were supported.
Starting from V3.9.0, the `%H` parameter is also supported.| + | `maxsize 1k` | Rotate the log when it exceeds 1 kilobyte (`1024` bytes) in size or when the specified time unit (e.g., `daily`) passes.
You can use size units like `k` and `M`, with the default unit being bytes. | + + Modify the parameters in the configuration file according to actual needs. For more information about parameter configuration, see [logrotate](https://github.com/logrotate/logrotate). + +4. Test the logrotate configuration. + + To verify whether the logrotate configuration is correct, use the following command for testing. + + ```bash + sudo logrotate --debug /etc/logrotate.d/nebula-graphd.INFO + ``` + +5. Execute logrotate. + + Although `logrotate` is typically executed automatically by cron jobs, you can manually execute the following command to perform log rotation immediately. + + ```bash + sudo logrotate -fv /etc/logrotate.d/nebula-graphd.INFO + ``` + + `-fv`: `f` stands for forced execution, `v` stands for verbose output. + +6. Verify the log rotation results. + + After log rotation, new log files are found in the `/usr/local/nebula/logs` directory, such as `nebula-graphd.INFO.impl.2024-01-04-1704338204`. The original log content is cleared, but the file is retained for new log entries. When the number of log files exceeds the value set by `rotate`, the oldest log file is deleted. + + For example, `rotate `2` means keeping the 2 most recently generated log files. When the number of log files exceeds 2, the oldest log file is deleted. + + ```bash + [test@test logs]$ ll + -rw-r--r-- 1 root root 0 Jan 4 11:18 nebula-graphd.INFO.impl + -rw-r--r-- 1 root root 6894 Jan 4 11:16 nebula-graphd.INFO.impl.2024-01-04-1704338204 # This file is deleted when a new log file is generated + -rw-r--r-- 1 root root 222 Jan 4 11:18 nebula-graphd.INFO.impl.2024-01-04-1704338287 + [test@test logs]$ ll + -rw-r--r-- 1 root root 0 Jan 4 11:18 nebula-graphd.INFO.impl + -rw-r--r-- 1 root root 222 Jan 4 11:18 nebula-graphd.INFO.impl.2024-01-04-1704338287 + -rw-r--r-- 1 root root 222 Jan 4 11:18 nebula-graphd.INFO.impl.2024-01-04-1704338339 # The new log file is generated + ``` + +If you need to rotate multiple log files, create multiple configuration files in the `/etc/logrotate.d` directory, with each configuration file corresponding to a log file. For example, to rotate the `INFO` level log file and the `WARNING` level log file of the Meta service, create two configuration files `nebula-metad.INFO` and `nebula-metad.WARNING`, and add log rotation rules in them respectively. diff --git a/docs-2.0-en/6.monitor-and-metrics/1.query-performance-metrics.md b/docs-2.0-en/6.monitor-and-metrics/1.query-performance-metrics.md index 4ba6f0b5c18..f03a539a8f9 100644 --- a/docs-2.0-en/6.monitor-and-metrics/1.query-performance-metrics.md +++ b/docs-2.0-en/6.monitor-and-metrics/1.query-performance-metrics.md @@ -18,12 +18,12 @@ Each metric of NebulaGraph consists of three fields: name, type, and time range. ### Syntax ```bash -curl -G "http://:/stats?stats= [&format=json]" +curl -G "http://:/stats?stats= [&format=json]" ``` |Parameter|Description| |-|-| -|`ip`|The IP address of the server. You can find it in the configuration file in the installation directory.| +|`host`|The IP (or hostname) of the server. You can find it in the configuration file in the installation directory.| |`port`|The HTTP port of the server. You can find it in the configuration file in the installation directory. The default ports are 19559 (Meta), 19669 (Graph), and 19779 (Storage).| |`metric_name_list`|The metrics names. Multiple metrics are separated by commas (,).| |`&format=json`|Optional. Returns the result in the JSON format.| diff --git a/docs-2.0-en/README.md b/docs-2.0-en/README.md index 0744a38d69f..d44f9dcd48f 100644 --- a/docs-2.0-en/README.md +++ b/docs-2.0-en/README.md @@ -13,7 +13,7 @@ NebulaGraph is a distributed, scalable, and lightning-fast graph database. It is * [nGQL cheatsheet](2.quick-start/6.cheatsheet-for-ngql.md) * [FAQ](20.appendix/0.FAQ.md) * [Ecosystem Tools](20.appendix/6.eco-tool-version.md) - +* [Live Demo](https://www.nebula-graph.io/demo) ## Release notes diff --git a/docs-2.0-en/backup-and-restore/3.manage-snapshot.md b/docs-2.0-en/backup-and-restore/3.manage-snapshot.md index 3372435760e..67c0b25adc9 100644 --- a/docs-2.0-en/backup-and-restore/3.manage-snapshot.md +++ b/docs-2.0-en/backup-and-restore/3.manage-snapshot.md @@ -14,23 +14,7 @@ If authentication is enabled, only the GOD role user can use the snapshot featur * NebulaGraph cannot automatically delete the invalid files created by a failed snapshot task. You have to manually delete them by using [`DROP SNAPSHOT`](#delete_snapshots). -* Customizing the storage path for snapshots is not supported for now. The default path is `/usr/local/nebula/data`. - -## Snapshot form and path - -NebulaGraph snapshots are stored in the form of directories with names like `SNAPSHOT_2021_03_09_08_43_12`. The suffix `2021_03_09_08_43_12` is generated automatically based on the creation time (UTC). - -When a snapshot is created, snapshot directories will be automatically created in the `checkpoints` directory on the leader Meta server and each Storage server. - -To fast locate the path where the snapshots are stored, you can use the Linux command `find`. For example: - -```bash -$ find |grep 'SNAPSHOT_2021_03_09_08_43_12' -./data/meta2/nebula/0/checkpoints/SNAPSHOT_2021_03_09_08_43_12 -./data/meta2/nebula/0/checkpoints/SNAPSHOT_2021_03_09_08_43_12/data -./data/meta2/nebula/0/checkpoints/SNAPSHOT_2021_03_09_08_43_12/data/000081.sst -... -``` +* Customizing the storage path for snapshots is not supported for now. ## Create snapshots @@ -38,7 +22,7 @@ Run `CREATE SNAPSHOT` to create a snapshot for all the graph spaces based on the !!! note - If the creation fails, [delete the snapshot](#delete_snapshots) and try again. + If the creation fails, refer to the later section to delete the corrupted snapshot and then recreate the snapshot. ```ngql nebula> CREATE SNAPSHOT; @@ -64,7 +48,22 @@ The parameters in the return information are described as follows. |-----------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `Name` | The name of the snapshot directory. The prefix `SNAPSHOT` indicates that the file is a snapshot file, and the suffix indicates the time the snapshot was created (UTC). | | `Status` | The status of the snapshot. `VALID` indicates that the creation succeeded, while `INVALID` indicates that it failed. | -| `Hosts` | IP addresses and ports of all Storage servers at the time the snapshot was created. | +| `Hosts` | The IPs (or hostnames) and ports of all Storage servers at the time the snapshot was created. | + +### Snapshot path + +Snapshots are stored in the path specified by the `data_path` parameter in the Meta and Storage configuration files. When a snapshot is created, the `checkpoints` directory is checked in the datastore path of the leader Meta service and all Storage services for the existence, and if it is not there, it is automatically created. The newly created snapshot is stored as a subdirectory within the `checkpoints` directory. For example, `SNAPSHOT_2021_03_09_08_43_12`. The suffix `2021_03_09_08_43_12` is generated automatically based on the creation time (UTC). + +To fast locate the path where the snapshots are stored, you can use the Linux command `find` in the datastore path. For example: + +```bash +$ cd /usr/local/nebula-graph-ent-{{nebula.release}}/data +$ find |grep 'SNAPSHOT_2021_03_09_08_43_12' +./data/meta2/nebula/0/checkpoints/SNAPSHOT_2021_03_09_08_43_12 +./data/meta2/nebula/0/checkpoints/SNAPSHOT_2021_03_09_08_43_12/data +./data/meta2/nebula/0/checkpoints/SNAPSHOT_2021_03_09_08_43_12/data/000081.sst +... +``` ## Delete snapshots @@ -86,6 +85,10 @@ nebula> SHOW SNAPSHOTS; +--------------------------------+---------+------------------+ ``` +!!! note + + Deleting the only snapshot within the `checkpoints` directory also deletes the `checkpoints` directory. + ## Restore data with snapshots !!! warning @@ -94,7 +97,7 @@ nebula> SHOW SNAPSHOTS; Currently, there is no command to restore data with snapshots. You need to manually copy the snapshot file to the corresponding folder, or you can make it by using a shell script. The logic implements as follows: -1. After the snapshot is created, the `checkpoints` directory is generated in the installation directory of the leader Meta server and all Storage servers, and saves the created snapshot. Taking this topic as an example, when there are two graph spaces, the snapshots created are saved in `/usr/local/nebula/data/meta/nebula/0/checkpoints`, `/usr/local/nebula/data/storage/ nebula/3/checkpoints` and `/usr/local/nebula/data/storage/nebula/4/checkpoints`. +1. After the snapshot is created, the `checkpoints` directory is generated in the installation directory of the leader Meta service and all Storage services, and saves the created snapshot. Taking this topic as an example, when there are two graph spaces, the snapshots created are saved in `/usr/local/nebula/data/meta/nebula/0/checkpoints`, `/usr/local/nebula/data/storage/ nebula/3/checkpoints` and `/usr/local/nebula/data/storage/nebula/4/checkpoints`. ```bash $ ls /usr/local/nebula/data/meta/nebula/0/checkpoints/ @@ -109,7 +112,7 @@ Currently, there is no command to restore data with snapshots. You need to manua !!! warning - The data and wal directories of all Meta servers should be overwritten at the same time. Otherwise, the new leader Meta server will use the latest Meta data after a cluster is restarted. + The data and wal directories of all Meta services should be overwritten at the same time. Otherwise, the new leader Meta service will use the latest Meta data after a cluster is restarted. | +| `-addr/-address` | Sets the IP or hostname of the Graph service. The default address is 127.0.0.1. | | `-P/-port` | Sets the port number of the graphd service. The default port number is 9669. | | `-u/-user` | Sets the username of your NebulaGraph account. Before enabling authentication, you can use any existing username. The default username is `root`. | | `-p/-password` | Sets the password of your NebulaGraph account. Before enabling authentication, you can use any characters as the password. | diff --git a/docs-2.0-en/nebula-operator/2.deploy-nebula-operator.md b/docs-2.0-en/nebula-operator/2.deploy-nebula-operator.md deleted file mode 100644 index 4b5e5da0591..00000000000 --- a/docs-2.0-en/nebula-operator/2.deploy-nebula-operator.md +++ /dev/null @@ -1,267 +0,0 @@ -# Deploy NebulaGraph Operator - -You can deploy NebulaGraph Operator with [Helm](https://helm.sh/). - -## Background - -[NebulaGraph Operator](1.introduction-to-nebula-operator.md) automates the management of NebulaGraph clusters, and eliminates the need for you to install, scale, upgrade, and uninstall NebulaGraph clusters, which lightens the burden on managing different application versions. - -## Prerequisites - -Before installing NebulaGraph Operator, you need to install the following software and ensure the correct version of the software : - -| Software | Requirement | -| ------------------------------------------------------------ | --------- | -| [Kubernetes](https://kubernetes.io) | \>= 1.16 | -| [Helm](https://helm.sh) | \>= 3.2.0 | -| [CoreDNS](https://github.com/coredns/coredns) | \>= 1.6.0 | - -!!! note - - - If using a role-based access control policy, you need to enable [RBAC](https://kubernetes.io/docs/reference/access-authn-authz/rbac/) (optional). - - - [CoreDNS](https://coredns.io/) is a flexible and scalable DNS server that is [installed](https://github.com/coredns/helm) for Pods in NebulaGraph clusters. - -## Steps - -### Install NebulaGraph Operator - -1. Add the NebulaGraph Operator Helm repository. - - ```bash - helm repo add nebula-operator https://vesoft-inc.github.io/nebula-operator/charts - ``` - -2. Update information of available charts locally from repositories. - - ```bash - helm repo update - ``` - - For more information about `helm repo`, see [Helm Repo](https://helm.sh/docs/helm/helm_repo/). - -3. Create a namespace for NebulaGraph Operator. - - ```bash - kubectl create namespace - ``` - - For example, run the following command to create a namespace named `nebula-operator-system`. - - ```bash - kubectl create namespace nebula-operator-system - ``` - - All the resources of NebulaGraph Operator are deployed in this namespace. - -4. Install NebulaGraph Operator. - - ```bash - helm install nebula-operator nebula-operator/nebula-operator --namespace= --version=${chart_version} - ``` - - For example, the command to install NebulaGraph Operator of version {{operator.release}} is as follows. - - ```bash - helm install nebula-operator nebula-operator/nebula-operator --namespace=nebula-operator-system --version={{operator.release}} - ``` - - - `nebula-operator-system` is a user-created namespace name. If you have not created this namespace, run `kubectl create namespace nebula-operator-system` to create one. You can also use a different name. - - - `{{operator.release}}` is the version of the nebula-operator chart. When not specifying `--version`, the latest version of the nebula-operator chart is used by default. Run `helm search repo -l nebula-operator` to see chart versions. - - You can customize the configuration items of the NebulaGraph Operator chart before running the installation command. For more information, see **Customize Helm charts** below. - -### Customize Helm charts - -When executing the `helm install [NAME] [CHART] [flags]` command to install a chart, you can specify the chart configuration. For more information, see [Customizing the Chart Before Installing](https://helm.sh/docs/intro/using_helm/#customizing-the-chart-before-installing). - -View the related configuration options in the [nebula-operator chart](https://github.com/vesoft-inc/nebula-operator/blob/v{{operator.release}}/charts/nebula-operator/values.yaml) configuration file. - -Alternatively, you can view the configurable options through the command `helm show values nebula-operator/nebula-operator`, as shown below. - - -For example: - -```yaml -[k8s@master ~]$ helm show values nebula-operator/nebula-operator -image: - nebulaOperator: - image: vesoft/nebula-operator:{{operator.tag}} - imagePullPolicy: Always - kubeRBACProxy: - image: bitnami/kube-rbac-proxy:0.14.2 - imagePullPolicy: Always - kubeScheduler: - image: registry.k8s.io/kube-scheduler:v1.24.11 - imagePullPolicy: Always - -imagePullSecrets: [] -kubernetesClusterDomain: "" - -controllerManager: - create: true - replicas: 2 - env: [] - resources: - limits: - cpu: 200m - memory: 200Mi - requests: - cpu: 100m - memory: 100Mi - -admissionWebhook: - create: false - -scheduler: - create: true - schedulerName: nebula-scheduler - replicas: 2 - env: [] - resources: - limits: - cpu: 200m - memory: 20Mi - requests: - cpu: 100m - memory: 100Mi -``` - -Part of the above parameters are described as follows: - -| Parameter | Default value | Description | -| :------------------------------------- | :------------------------------ | :----------------------------------------- | -| `image.nebulaOperator.image` | `vesoft/nebula-operator:{{operator.tag}}` | The image of NebulaGraph Operator, version of which is {{operator.release}}. | -| `image.nebulaOperator.imagePullPolicy` | `IfNotPresent` | The image pull policy in Kubernetes. | -| `imagePullSecrets` | - | The image pull secret in Kubernetes. | -| `kubernetesClusterDomain` | `cluster.local` | The cluster domain. | -| `controllerManager.create` | `true` | Whether to enable the controller-manager component. | -| `controllerManager.replicas` | `2` | The number of controller-manager replicas. | -| `admissionWebhook.create` | `false` | Whether to enable Admission Webhook. This option is disabled. To enable it, set the value to `true` and you will need to install [cert-manager](https://cert-manager.io/docs/installation/helm/). | -| `shceduler.create` | `true` | Whether to enable Scheduler. | -| `shceduler.schedulerName` | `nebula-scheduler` | The Scheduler name. | -| `shceduler.replicas` | `2` | The number of nebula-scheduler replicas. | - -You can run `helm install [NAME] [CHART] [flags]` to specify chart configurations when installing a chart. For more information, see [Customizing the Chart Before Installing](https://helm.sh/docs/intro/using_helm/#customizing-the-chart-before-installing). - -The following example shows how to specify the NebulaGraph Operator's AdmissionWebhook mechanism to be turned on when you install NebulaGraph Operator (AdmissionWebhook is disabled by default): - -```bash -helm install nebula-operator nebula-operator/nebula-operator --namespace= --set admissionWebhook.create=true -``` - -For more information about `helm install`, see [Helm Install](https://helm.sh/docs/helm/helm_install/). - -### Update NebulaGraph Operator - -1. Update the information of available charts locally from chart repositories. - - ```bash - helm repo update - ``` - -1. Update NebulaGraph Operator by passing configuration parameters via `--set`. - - - `--set`:Overrides values using the command line. For configurable items, see the above-mentioned section **Customize Helm charts**. - - For example, to enable the AdmissionWebhook, run the following command: - - ```bash - helm upgrade nebula-operator nebula-operator/nebula-operator --namespace=nebula-operator-system --version={{operator.release}} --set admissionWebhook.create=true - ``` - - For more information, see [Helm upgrade](https://helm.sh/docs/helm/helm_update/). - -### Upgrade NebulaGraph Operator - -!!! compatibility "Legacy version compatibility" - - - Does not support upgrading 0.9.0 and below version NebulaGraph Operator to 1.x. - - The 1.x version NebulaGraph Operator is not compatible with NebulaGraph of version below v3.x. - -1. Update the information of available charts locally from chart repositories. - - ```bash - helm repo update - ``` - -2. Upgrade Operator to {{operator.tag}}. - - ```bash - helm upgrade nebula-operator nebula-operator/nebula-operator --namespace= --version={{operator.release}} - ``` - - For example: - - ```bash - helm upgrade nebula-operator nebula-operator/nebula-operator --namespace=nebula-operator-system --version={{operator.release}} - ``` - - Output: - - ```bash - Release "nebula-operator" has been upgraded. Happy Helming! - NAME: nebula-operator - LAST DEPLOYED: Tue Apr 16 02:21:08 2022 - NAMESPACE: nebula-operator-system - STATUS: deployed - REVISION: 3 - TEST SUITE: None - NOTES: - NebulaGraph Operator installed! - ``` - -3. Pull the latest CRD configuration file. - - !!! note - You need to upgrade the corresponding CRD configurations after NebulaGraph Operator is upgraded. Otherwise, the creation of NebulaGraph clusters will fail. For information about the CRD configurations, see [apps.nebula-graph.io_nebulaclusters.yaml](https://github.com/vesoft-inc/nebula-operator/blob/{{operator.tag}}/config/crd/bases/apps.nebula-graph.io_nebulaclusters.yaml). - - 1. Pull the NebulaGraph Operator chart package. - - ```bash - helm pull nebula-operator/nebula-operator --version={{operator.release}} - ``` - - - `--version`: The NebulaGraph Operator version you want to upgrade to. If not specified, the latest version will be pulled. - - 2. Run `tar -zxvf` to unpack the charts. - - For example: To unpack {{operator.tag}} chart to the `/tmp` path, run the following command: - - ```bash - tar -zxvf nebula-operator-{{operator.release}}.tgz -C /tmp - ``` - - - `-C /tmp`: If not specified, the chart files will be unpacked to the current directory. - - -4. Upgrade the CRD configuration file in the `nebula-operator` directory. - - ```bash - kubectl apply -f crds/nebulacluster.yaml - ``` - - Output: - - ```bash - customresourcedefinition.apiextensions.k8s.io/nebulaclusters.apps.nebula-graph.io configured - ``` - -### Uninstall NebulaGraph Operator - -1. Uninstall the NebulaGraph Operator chart. - - ```bash - helm uninstall nebula-operator --namespace= - ``` - -2. Delete CRD. - - ```bash - kubectl delete crd nebulaclusters.apps.nebula-graph.io - ``` - -## What's next - -Automate the deployment of NebulaGraph clusters with NebulaGraph Operator. For more information, see [Deploy NebulaGraph Clusters with Kubectl](3.deploy-nebula-graph-cluster/3.1create-cluster-with-kubectl.md) or [Deploy NebulaGraph Clusters with Helm](3.deploy-nebula-graph-cluster/3.2create-cluster-with-helm.md). diff --git a/docs-2.0-en/nebula-operator/3.deploy-nebula-graph-cluster/3.1create-cluster-with-kubectl.md b/docs-2.0-en/nebula-operator/3.deploy-nebula-graph-cluster/3.1create-cluster-with-kubectl.md deleted file mode 100644 index 18ce95076db..00000000000 --- a/docs-2.0-en/nebula-operator/3.deploy-nebula-graph-cluster/3.1create-cluster-with-kubectl.md +++ /dev/null @@ -1,99 +0,0 @@ -# Deploy NebulaGraph clusters with Kubectl - -!!! compatibility "Legacy version compatibility" - - The 1.x version NebulaGraph Operator is not compatible with NebulaGraph of version below v3.x. - -## Prerequisites - -- [You have installed NebulaGraph Operator](../2.deploy-nebula-operator.md) - -- [You have created StorageClass](https://kubernetes.io/docs/concepts/storage/storage-classes/) - -## Create clusters - -The following example shows how to create a NebulaGraph cluster by creating a cluster named `nebula`. - -1. Create a namespace, for example, `nebula`. If not specified, the `default` namespace is used. - - ```bash - kubectl create namespace nebula - ``` - -2. Create a file named `apps_v1alpha1_nebulacluster.yaml`. - - See [community cluster configurations](https://github.com/vesoft-inc/nebula-operator/blob/v{{operator.release}}/config/samples/nebulacluster.yaml). - - The following table describes the parameters in the sample configuration file. - - | Parameter | Default value | Description | - | :---------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | - | `metadata.name` | - | The name of the created NebulaGraph cluster. | - | `spec.console` | - | Configuration of the Console service. For details, see [nebula-console](https://github.com/vesoft-inc/nebula-operator/blob/v{{operator.release}}/doc/user/nebula_console.md#nebula-console). | - | `spec.graphd.replicas` | `1` | The numeric value of replicas of the Graphd service. | - | `spec.graphd.image` | `vesoft/nebula-graphd` | The container image of the Graphd service. | - | `spec.graphd.version` | `v3.6.0` | The version of the Graphd service. | - | `spec.graphd.service` | - | The Service configurations for the Graphd service. | - | `spec.graphd.logVolumeClaim.storageClassName` | - | The log disk storage configurations for the Graphd service. | - | `spec.metad.replicas` | `1` | The numeric value of replicas of the Metad service. | - | `spec.metad.image` | `vesoft/nebula-metad` | The container image of the Metad service. | - | `spec.metad.version` | `v3.6.0` | The version of the Metad service. | - | `spec.metad.dataVolumeClaim.storageClassName` | - | The data disk storage configurations for the Metad service. | - | `spec.metad.logVolumeClaim.storageClassName` | - | The log disk storage configurations for the Metad service. | - | `spec.storaged.replicas` | `3` | The numeric value of replicas of the Storaged service. | - | `spec.storaged.image` | `vesoft/nebula-storaged` | The container image of the Storaged service. | - | `spec.storaged.version` | `v3.6.0` | The version of the Storaged service. | - | `spec.storaged.dataVolumeClaims.resources.requests.storage` | - | Data disk storage size for the Storaged service. You can specify multiple data disks to store data. When multiple disks are specified, the storage path is `/usr/local/nebula/data1`, `/usr/local/nebula/data2`, etc. | - | `spec.storaged.dataVolumeClaims.resources.storageClassName` | - | The data disk storage configurations for Storaged. If not specified, the global storage parameter is applied. | - | `spec.storaged.logVolumeClaim.storageClassName` | - | The log disk storage configurations for the Storaged service. | - | `spec.storaged.enableAutoBalance` | `true` | Whether to balance data automatically. | - | `spec..securityContext` | `{}` | Defines privilege and access control settings for NebulaGraph service containers. For details, see [SecurityContext](https://github.com/vesoft-inc/nebula-operator/blob/release-1.5/doc/user/security_context.md). | - | `spec.agent` | `{}` | Configuration of the Agent service. This is used for backup and recovery as well as log cleanup functions. If you do not customize this configuration, the default configuration will be used. | - | `spec.reference.name` | - | The name of the dependent controller. | - | `spec.schedulerName` | - | The scheduler name. | - | `spec.imagePullPolicy` | The image policy to pull the NebulaGraph image. For details, see [Image pull policy](https://kubernetes.io/docs/concepts/containers/images/#image-pull-policy). | The image pull policy in Kubernetes. | - | `spec.logRotate` | - | Log rotation configuration. For more information, see [Manage cluster logs](../8.custom-cluster-configurations/8.4.manage-running-logs.md). | - | `spec.enablePVReclaim` | `false` | Define whether to automatically delete PVCs and release data after deleting the cluster. For more information, see [Reclaim PVs](../8.custom-cluster-configurations/8.2.pv-reclaim.md). | - | | | | - - -3. Create a NebulaGraph cluster. - - ```bash - kubectl create -f apps_v1alpha1_nebulacluster.yaml - ``` - - Output: - - ```bash - nebulacluster.apps.nebula-graph.io/nebula created - ``` - -4. Check the status of the NebulaGraph cluster. - - ```bash - kubectl get nebulaclusters.apps.nebula-graph.io nebula - ``` - - Output: - - ```bash - NAME GRAPHD-DESIRED GRAPHD-READY METAD-DESIRED METAD-READY STORAGED-DESIRED STORAGED-READY AGE - nebula 1 1 1 1 3 3 86s - ``` - -## Scaling clusters - -The cluster scaling feature is for NebulaGraph Enterprise Edition only. - -## Delete clusters - -Run the following command to delete a NebulaGraph cluster with Kubectl: - -```bash -kubectl delete -f apps_v1alpha1_nebulacluster.yaml -``` - -## What's next - -[Connect to NebulaGraph databases](../4.connect-to-nebula-graph-service.md) diff --git a/docs-2.0-en/nebula-operator/3.deploy-nebula-graph-cluster/3.2create-cluster-with-helm.md b/docs-2.0-en/nebula-operator/3.deploy-nebula-graph-cluster/3.2create-cluster-with-helm.md deleted file mode 100644 index bf3c80c80cd..00000000000 --- a/docs-2.0-en/nebula-operator/3.deploy-nebula-graph-cluster/3.2create-cluster-with-helm.md +++ /dev/null @@ -1,88 +0,0 @@ -# Deploy NebulaGraph clusters with Helm - -!!! compatibility "Legacy version compatibility" - - The 1.x version NebulaGraph Operator is not compatible with NebulaGraph of version below v3.x. - -## Prerequisite - -- [You have installed NebulaGraph Operator](../2.deploy-nebula-operator.md) - -- [You have created StorageClass](https://kubernetes.io/docs/concepts/storage/storage-classes/) - -## Create clusters - -1. Add the NebulaGraph Operator Helm repository. - - ```bash - helm repo add nebula-operator https://vesoft-inc.github.io/nebula-operator/charts - ``` - -2. Update information of available charts locally from chart repositories. - - ```bash - helm repo update - ``` - -3. Set environment variables to your desired values. - - ```bash - export NEBULA_CLUSTER_NAME=nebula # The desired NebulaGraph cluster name. - export NEBULA_CLUSTER_NAMESPACE=nebula # The desired namespace where your NebulaGraph cluster locates. - export STORAGE_CLASS_NAME=fast-disks # The name of the StorageClass that has been created. - ``` - -4. Create a namespace for your NebulaGraph cluster (If you have created one, skip this step). - - ```bash - kubectl create namespace "${NEBULA_CLUSTER_NAMESPACE}" - ``` - -5. Apply the variables to the Helm chart to create a NebulaGraph cluster. - - ```bash - helm install "${NEBULA_CLUSTER_NAME}" nebula-operator/nebula-cluster \ - --set nameOverride=${NEBULA_CLUSTER_NAME} \ - --set nebula.storageClassName="${STORAGE_CLASS_NAME}" \ - # Specify the version of the NebulaGraph cluster. - --set nebula.version=v{{nebula.release}} \ - # Specify the version of the nebula-cluster chart. If not specified, the latest version of the chart is installed by default. - # Run 'helm search repo nebula-operator/nebula-cluster' to view the available versions of the chart. - --version={{operator.release}} \ - --namespace="${NEBULA_CLUSTER_NAMESPACE}" \ - ``` - - To view all configuration parameters of the NebulaGraph cluster, run the `helm show values nebula-operator/nebula-cluster` command or click [nebula-cluster/values.yaml](https://github.com/vesoft-inc/nebula-operator/blob/{{operator.branch}}/charts/nebula-cluster/values.yaml). - - Click [Chart parameters](https://github.com/vesoft-inc/nebula-operator/blob/{{operator.branch}}/doc/user/nebula_cluster_helm_guide.md#optional-chart-parameters) to see descriptions and default values of the configurable cluster parameters. - - Use the `--set` argument to set configuration parameters for the cluster. For example, `--set nebula.storaged.replicas=3` will set the number of replicas for the Storage service in the cluster to 3. - - -6. Check the status of the NebulaGraph cluster you created. - - ```bash - kubectl -n "${NEBULA_CLUSTER_NAMESPACE}" get pod -l "app.kubernetes.io/cluster=${NEBULA_CLUSTER_NAME}" - ``` - -## Scaling clusters - -The cluster scaling feature is for NebulaGraph Enterprise Edition only. - -## Delete clusters - -Run the following command to delete a NebulaGraph cluster with Helm: - -```bash -helm uninstall "${NEBULA_CLUSTER_NAME}" --namespace="${NEBULA_CLUSTER_NAMESPACE}" -``` - -Or use variable values to delete a NebulaGraph cluster with Helm: - -```bash -helm uninstall nebula --namespace=nebula -``` - -## What's next - -[Connect to NebulaGraph Databases](../4.connect-to-nebula-graph-service.md) diff --git a/docs-2.0-en/nebula-operator/6.get-started-with-operator.md b/docs-2.0-en/nebula-operator/6.get-started-with-operator.md deleted file mode 100644 index 4b608c68475..00000000000 --- a/docs-2.0-en/nebula-operator/6.get-started-with-operator.md +++ /dev/null @@ -1,10 +0,0 @@ -# Overview of using NebulaGraph Operator - -To use NebulaGraph Operator to connect to NebulaGraph databases, see steps as follows: - -1. [Install NebulaGraph Operator](2.deploy-nebula-operator.md). -2. Create a NebulaGraph cluster. - - For more information, see [Deploy NebulaGraph clusters with Kubectl](3.deploy-nebula-graph-cluster/3.1create-cluster-with-kubectl.md) or [Deploy NebulaGraph clusters with Helm](3.deploy-nebula-graph-cluster/3.2create-cluster-with-helm.md). - -3. [Connect to a NebulaGraph database](4.connect-to-nebula-graph-service.md). diff --git a/docs-2.0-en/nebula-operator/8.custom-cluster-configurations/8.1.custom-conf-parameter.md b/docs-2.0-en/nebula-operator/8.custom-cluster-configurations/8.1.custom-conf-parameter.md deleted file mode 100644 index f75c4564bde..00000000000 --- a/docs-2.0-en/nebula-operator/8.custom-cluster-configurations/8.1.custom-conf-parameter.md +++ /dev/null @@ -1,173 +0,0 @@ -# Customize parameters for a NebulaGraph cluster - -Meta, Storage, and Graph services in a NebulaGraph cluster have their own configuration settings, which are defined in the YAML file of the NebulaGraph cluster instance as `config`. These settings are mapped and loaded into the corresponding service's ConfigMap in Kubernetes. At the time of startup, the configuration present in the ConfigMap is mounted onto the directory `/usr/local/nebula/etc/` for every service. - -!!! note - - It is not available to customize configuration parameters for NebulaGraph Clusters deployed with Helm. - -The structure of `config` is as follows. - -```go -Config map[string]string `json:"config,omitempty"` -``` - -## Prerequisites - -You have created a NebulaGraph cluster. For how to create a cluster with Kubectl, see [Create a cluster with Kubectl](../3.deploy-nebula-graph-cluster/3.1create-cluster-with-kubectl.md). - -## Steps - -The following example uses a cluster named `nebula` and the cluster's configuration file named `nebula_cluster.yaml` to show how to set `config` for the Graph service in a NebulaGraph cluster. - -1. Run the following command to access the edit page of the `nebula` cluster. - - ```bash - kubectl edit nebulaclusters.apps.nebula-graph.io nebula - ``` - -2. Customize parameters under the `spec.graphd.config` field. In the following sample, the `enable_authorize` and `auth_type` parameters are used for demonstration purposes. - - ```yaml - apiVersion: apps.nebula-graph.io/v1alpha1 - kind: NebulaCluster - metadata: - name: nebula - namespace: default - spec: - graphd: - resources: - requests: - cpu: "500m" - memory: "500Mi" - limits: - cpu: "1" - memory: "1Gi" - replicas: 1 - image: vesoft/nebula-graphd - version: {{nebula.tag}} - storageClaim: - resources: - requests: - storage: 2Gi - storageClassName: fast-disks - config: // Custom configuration parameters for the Graph service in a cluster. - "enable_authorize": "true" - "auth_type": "password" - ... - ``` - - The parameters that can be added under the `config` field are listed in detail in the [Meta service configuration parameters](../../5.configurations-and-logs/1.configurations/2.meta-config.md), [Storage service configuration parameters](../../5.configurations-and-logs/1.configurations/4.storage-config.md), and [Graph service configuration parameters](../../5.configurations-and-logs/1.configurations/3.graph-config.md) topics. - - !!! note - - * To update cluster configurations without incurring pod restart, ensure that all parameters added under the `config` field support runtime dynamic modification. Check the **Whether supports runtime dynamic modifications** column of the parameter tables on the aforementioned parameter details pages to see if a parameter supports runtime dynamic modification. - * If one or more parameters that do not support runtime dynamic modification are added under the `config` field, pod restart is required for the parameters to take effect. - - - To add the `config` for the Meta and Storage services, add `spec.metad.config` and `spec.storaged.config` respectively. - -3. Run `kubectl apply -f nebula_cluster.yaml` to push your configuration changes to the cluster. - - After customizing the parameters, the configurations in the corresponding ConfigMap (`nebula-graphd`) of the Graph service will be overwritten. - - -## Customize port configurations - -You can add the `port` and `ws_http_port` parameters under the `config` field to customize port configurations. For details about these two parameters, see the Networking configurations section in [Meta service configuration parameters](../../5.configurations-and-logs/1.configurations/2.meta-config.md), [Storage service configuration parameters](../../5.configurations-and-logs/1.configurations/4.storage-config.md), and [Graph service configuration parameters](../../5.configurations-and-logs/1.configurations/3.graph-config.md). - -!!! note - - * Pod restart is required for the `port` and `ws_http_port` parameters to take effect. - * It is NOT recommnended to modify the `port` parameter after the cluster is started. - -1. Modifiy the cluster configuration file. - - ```yaml - apiVersion: apps.nebula-graph.io/v1alpha1 - kind: NebulaCluster - metadata: - name: nebula - namespace: default - spec: - graphd: - config: - port: "3669" - ws_http_port: "8080" - resources: - requests: - cpu: "200m" - memory: "500Mi" - limits: - cpu: "1" - memory: "1Gi" - replicas: 1 - image: vesoft/nebula-graphd - version: {{nebula.tag}} - metad: - config: - ws_http_port: 8081 - resources: - requests: - cpu: "300m" - memory: "500Mi" - limits: - cpu: "1" - memory: "1Gi" - replicas: 1 - image: vesoft/nebula-metad - version: {{nebula.tag}} - dataVolumeClaim: - resources: - requests: - storage: 2Gi - storageClassName: local-path - storaged: - config: - ws_http_port: 8082 - resources: - requests: - cpu: "300m" - memory: "500Mi" - limits: - cpu: "1" - memory: "1Gi" - replicas: 1 - image: vesoft/nebula-storaged - version: {{nebula.tag}} - dataVolumeClaims: - - resources: - requests: - storage: 2Gi - storageClassName: local-path - enableAutoBalance: true - reference: - name: statefulsets.apps - version: v1 - schedulerName: default-scheduler - imagePullPolicy: IfNotPresent - imagePullSecrets: - - name: nebula-image - enablePVReclaim: true - topologySpreadConstraints: - - topologyKey: kubernetes.io/hostname - whenUnsatisfiable: "ScheduleAnyway" - ``` - -2. Run the `kubectl apply -f nebula_cluster.yaml` to push your configuration changes to the cluster. - -3. Verify that the configuration takes effect. - - ```bash - kubectl get svc - ``` - - Sample response: - - ``` - NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE - nebula-graphd-headless ClusterIP None 3669/TCP,8080/TCP 10m - nebula-graphd-svc ClusterIP 10.102.13.115 3669/TCP,8080/TCP 10m - nebula-metad-headless ClusterIP None 9559/TCP,8081/TCP 11m - nebula-storaged-headless ClusterIP None 9779/TCP,8082/TCP,9778/TCP 11m - ``` diff --git a/docs-2.0-en/reuse/source_connect-to-nebula-graph.md b/docs-2.0-en/reuse/source_connect-to-nebula-graph.md index 4f595c39b26..bb4ec7b4df2 100644 --- a/docs-2.0-en/reuse/source_connect-to-nebula-graph.md +++ b/docs-2.0-en/reuse/source_connect-to-nebula-graph.md @@ -67,7 +67,7 @@ NebulaGraph supports multiple types of clients, including a CLI client, a GUI cl | Parameter | Description | | - | - | | `-h/-help` | Shows the help menu. | - | `-addr/-address` | Sets the IP address of the Graph service. The default address is 127.0.0.1. | + | `-addr/-address` | Sets the IP (or hostname) of the Graph service. The default address is 127.0.0.1. | | `-P/-port` | Sets the port number of the graphd service. The default port number is 9669. | | `-u/-user` | Sets the username of your NebulaGraph account. Before enabling authentication, you can use any existing username. The default username is `root`. | | `-p/-password` | Sets the password of your NebulaGraph account. Before enabling authentication, you can use any characters as the password. | diff --git a/docs-2.0-en/stylesheets/pdf.css b/docs-2.0-en/stylesheets/pdf.css index 8a02a7f3d5f..f87a8799404 100644 --- a/docs-2.0-en/stylesheets/pdf.css +++ b/docs-2.0-en/stylesheets/pdf.css @@ -1,3 +1,4 @@ -* { - font-family: Noto Sans, Noto Sans SC !important; - } \ No newline at end of file +@font-face { + font-family: 'Zh Font'; + src: url('../fonts/NotoSansSC-Regular.ttf') format('truetype'); +} diff --git a/docs-2.0-zh/1.introduction/1.what-is-nebula-graph.md b/docs-2.0-zh/1.introduction/1.what-is-nebula-graph.md index 63a240a8e64..20756855672 100644 --- a/docs-2.0-zh/1.introduction/1.what-is-nebula-graph.md +++ b/docs-2.0-zh/1.introduction/1.what-is-nebula-graph.md @@ -1,11 +1,9 @@ -# 什么是{{nebula.name}} +# 什么是 {{nebula.name}} +{{nebula.name}} 是一款开源的、分布式的、易扩展的原生图数据库,能够承载包含数千亿个点和数万亿条边的超大规模数据集,并且提供毫秒级查询。 - -{{nebula.name}}是一款开源的、分布式的、易扩展的原生图数据库,能够承载包含数千亿个点和数万亿条边的超大规模数据集,并且提供毫秒级查询。 - -![{{nebula.name}}鸟瞰图](https://docs-cdn.nebula-graph.com.cn/figures/architecture_map_2022-08-08_17-37-15.png) +![{{nebula.name}} 鸟瞰图](https://docs-cdn.nebula-graph.com.cn/figures/architecture_map_2022-08-08_17-37-15.png) ## 什么是图数据库 @@ -16,81 +14,81 @@ 图数据库适合存储大多数从现实抽象出的数据类型。世界上几乎所有领域的事物都有内在联系,像关系型数据库这样的建模系统会提取实体之间的关系,并将关系单独存储到表和列中,而实体的类型和属性存储在其他列甚至其他表中,这使得数据管理费时费力。 -{{nebula.name}}作为一个典型的图数据库,可以将丰富的关系通过边及其类型和属性自然地呈现。 +{{nebula.name}} 作为一个典型的图数据库,可以将丰富的关系通过边及其类型和属性自然地呈现。 -## {{nebula.name}}的优势 +## {{nebula.name}} 的优势 ### 开源 -{{nebula.name}}是在 Apache 2.0 条款下开发的。越来越多的人,如数据库开发人员、数据科学家、安全专家、算法工程师,都参与到{{nebula.name}}的设计和开发中来,欢迎访问 [{{nebula.name}} GitHub 主页](https://github.com/vesoft-inc/nebula)参与开源项目。 +{{nebula.name}} 是在 Apache 2.0 条款下开发的。越来越多的人,如数据库开发人员、数据科学家、安全专家、算法工程师,都参与到 {{nebula.name}} 的设计和开发中来,欢迎访问[ {{nebula.name}} GitHub 主页](https://github.com/vesoft-inc/nebula)参与开源项目。 ### 高性能 -基于图数据库的特性使用 C++ 编写的{{nebula.name}},可以提供毫秒级查询。众多数据库中,{{nebula.name}}在图数据服务领域展现了卓越的性能,数据规模越大,{{nebula.name}}优势就越大。详情请参见 [{{nebula.name}} benchmarking 页面](https://discuss.nebula-graph.com.cn/t/topic/11727)。 +基于图数据库的特性使用 C++ 编写的 {{nebula.name}},可以提供毫秒级查询。众多数据库中,{{nebula.name}} 在图数据服务领域展现了卓越的性能,数据规模越大,{{nebula.name}} 优势就越大。详情请参见 [{{nebula.name}} benchmarking 页面](https://discuss.nebula-graph.com.cn/t/topic/11727)。 ### 易扩展 -{{nebula.name}}采用 shared-nothing 架构,支持在不停止数据库服务的情况下扩缩容。 +{{nebula.name}} 采用 shared-nothing 架构,支持在不停止数据库服务的情况下扩缩容。 ### 易开发 -{{nebula.name}}提供 Java、Python、C++ 和 Go 等流行编程语言的客户端,更多客户端仍在开发中。详情请参见 [{{nebula.name}} clients](../14.client/1.nebula-client.md)。 +{{nebula.name}} 提供 Java、Python、C++ 和 Go 等流行编程语言的客户端,更多客户端仍在开发中。详情请参见 [{{nebula.name}} clients](../14.client/1.nebula-client.md)。 ### 高可靠访问控制 -{{nebula.name}}支持严格的角色访问控制和 LDAP(Lightweight Directory Access Protocol)等外部认证服务,能够有效提高数据安全性。详情请参见[验证和授权](../7.data-security/1.authentication/1.authentication.md)。 +{{nebula.name}} 支持严格的角色访问控制和 LDAP(Lightweight Directory Access Protocol)等外部认证服务,能够有效提高数据安全性。详情请参见[验证和授权](../7.data-security/1.authentication/1.authentication.md)。 ### 生态多样化 -{{nebula.name}}开放了越来越多的原生工具,例如 [NebulaGraph Studio](https://github.com/vesoft-inc/nebula-studio)、[NebulaGraph Console](https://github.com/vesoft-inc/nebula-console)、[NebulaGraph Exchange](https://github.com/vesoft-inc/nebula-exchange) 等,更多工具可以查看[生态工具概览](../20.appendix/6.eco-tool-version.md)。 +{{nebula.name}} 开放了越来越多的原生工具,例如 [NebulaGraph Studio](https://github.com/vesoft-inc/nebula-studio)、[NebulaGraph Console](https://github.com/vesoft-inc/nebula-console)、[NebulaGraph Exchange](https://github.com/vesoft-inc/nebula-exchange) 等,更多工具可以查看[生态工具概览](../20.appendix/6.eco-tool-version.md)。 -此外,{{nebula.name}}还具备与 Spark、Flink、HBase 等产品整合的能力,在这个充满挑战与机遇的时代,大大增强了自身的竞争力。 +此外,{{nebula.name}} 还具备与 Spark、Flink、HBase 等产品整合的能力,在这个充满挑战与机遇的时代,大大增强了自身的竞争力。 ### 兼容 openCypher 查询语言 -{{nebula.name}}查询语言,简称为 nGQL,是一种声明性的、部分兼容 openCypher 的文本查询语言,易于理解和使用。详细语法请参见 [nGQL 指南](../3.ngql-guide/1.nGQL-overview/1.overview.md)。 +{{nebula.name}} 查询语言,简称为 nGQL,是一种声明性的、部分兼容 openCypher 的文本查询语言,易于理解和使用。详细语法请参见 [nGQL 指南](../3.ngql-guide/1.nGQL-overview/1.overview.md)。 ### 面向未来硬件,读写平衡 -闪存型设备有着极高的性能,并且[价格快速下降](https://blocksandfiles.com/wp-content/uploads/2021/01/Wikibon-SSD-less-than-HDD-in-2026.jpg),{{nebula.name}}是一个面向 SSD 设计的产品,相比于基于 HDD + 大内存的产品,更适合面向未来的硬件趋势,也更容易做到读写平衡。 +闪存型设备有着极高的性能,并且[价格快速下降](https://blocksandfiles.com/wp-content/uploads/2021/01/Wikibon-SSD-less-than-HDD-in-2026.jpg),{{nebula.name}} 是一个面向 SSD 设计的产品,相比于基于 HDD + 大内存的产品,更适合面向未来的硬件趋势,也更容易做到读写平衡。 ### 灵活数据建模 -用户可以轻松地在{{nebula.name}}中建立数据模型,不必将数据强制转换为关系表。而且可以自由增加、更新和删除属性。详情请参见[数据模型](2.data-model.md)。 +用户可以轻松地在 {{nebula.name}} 中建立数据模型,不必将数据强制转换为关系表。而且可以自由增加、更新和删除属性。详情请参见[数据模型](2.data-model.md)。 ### 广受欢迎 -腾讯、美团、京东、快手、360 等科技巨头都在使用{{nebula.name}}。详情请参见 [{{nebula.name}}官网](https://nebula-graph.com.cn/)。 +腾讯、美团、京东、快手、360 等科技巨头都在使用 {{nebula.name}} 。详情请参见 [{{nebula.name}} 官网](https://nebula-graph.com.cn/)。 ## 适用场景 -{{nebula.name}}可用于各种基于图的业务场景。为节约转换各类数据到关系型数据库的时间,以及避免复杂查询,建议使用{{nebula.name}}。 +{{nebula.name}} 可用于各种基于图的业务场景。为节约转换各类数据到关系型数据库的时间,以及避免复杂查询,建议使用 {{nebula.name}} 。 ### 欺诈检测 -金融机构必须仔细研究大量的交易信息,才能检测出潜在的金融欺诈行为,并了解某个欺诈行为和设备的内在关联。这种场景可以通过图来建模,然后借助{{nebula.name}},可以很容易地检测出诈骗团伙或其他复杂诈骗行为。 +金融机构必须仔细研究大量的交易信息,才能检测出潜在的金融欺诈行为,并了解某个欺诈行为和设备的内在关联。这种场景可以通过图来建模,然后借助 {{nebula.name}},可以很容易地检测出诈骗团伙或其他复杂诈骗行为。 ### 实时推荐 -{{nebula.name}}能够及时处理访问者产生的实时信息,并且精准推送文章、视频、产品和服务。 +{{nebula.name}} 能够及时处理访问者产生的实时信息,并且精准推送文章、视频、产品和服务。 ### 知识图谱 -自然语言可以转化为知识图谱,存储在{{nebula.name}}中。用自然语言组织的问题可以通过智能问答系统中的语义解析器进行解析并重新组织,然后从知识图谱中检索出问题的可能答案,提供给提问人。 +自然语言可以转化为知识图谱,存储在 {{nebula.name}} 中。用自然语言组织的问题可以通过智能问答系统中的语义解析器进行解析并重新组织,然后从知识图谱中检索出问题的可能答案,提供给提问人。 ### 社交网络 -人际关系信息是典型的图数据,{{nebula.name}}可以轻松处理数十亿人和数万亿人际关系的社交网络信息,并在海量并发的情况下,提供快速的好友推荐和工作岗位查询。 +人际关系信息是典型的图数据,{{nebula.name}} 可以轻松处理数十亿人和数万亿人际关系的社交网络信息,并在海量并发的情况下,提供快速的好友推荐和工作岗位查询。 ## 视频 用户也可以通过视频了解什么是图数据。 -- [{{nebula.name}}介绍视频](https://www.bilibili.com/video/BV1kf4y1v7LM)(01 分 39 秒) +- [{{nebula.name}} 介绍视频](https://www.bilibili.com/video/BV1kf4y1v7LM)(01 分 39 秒) - + ## 主题演讲 diff --git a/docs-2.0-zh/1.introduction/2.1.path.md b/docs-2.0-zh/1.introduction/2.1.path.md index ffee3e94089..5eb906cdb79 100644 --- a/docs-2.0-zh/1.introduction/2.1.path.md +++ b/docs-2.0-zh/1.introduction/2.1.path.md @@ -52,4 +52,4 @@ [Path](https://www.bilibili.com/video/BV1Uf4y1t72L)(03 分 09 秒) - + diff --git a/docs-2.0-zh/1.introduction/2.data-model.md b/docs-2.0-zh/1.introduction/2.data-model.md index b906e2d67cf..879600fe200 100644 --- a/docs-2.0-zh/1.introduction/2.data-model.md +++ b/docs-2.0-zh/1.introduction/2.data-model.md @@ -1,10 +1,10 @@ # 数据模型 -本文介绍{{nebula.name}}的数据模型。数据模型是一种组织数据并说明它们如何相互关联的模型。 +本文介绍 {{nebula.name}} 的数据模型。数据模型是一种组织数据并说明它们如何相互关联的模型。 ## 数据模型 -{{nebula.name}}数据模型使用 6 种基本的数据模型: +{{nebula.name}} 数据模型使用 6 种基本的数据模型: - 图空间(Space) @@ -55,7 +55,7 @@ ## 有向属性图 -{{nebula.name}}使用有向属性图模型,指点和边构成的图,这些边是有方向的,点和边都可以有属性。 +{{nebula.name}} 使用有向属性图模型,指点和边构成的图,这些边是有方向的,点和边都可以有属性。 下表为篮球运动员数据集的结构示例,包括两种类型的点(**player**、**team**)和两种类型的边(**serve**、**follow**)。 @@ -68,10 +68,10 @@ !!! note - {{nebula.name}}中没有无向边,只支持有向边。 + {{nebula.name}} 中没有无向边,只支持有向边。 !!! compatibility - 由于{{nebula.name}} {{ nebula.release }} 的数据模型中,允许存在"悬挂边",因此在增删时,用户需自行保证“一条边所对应的起点和终点”的存在性。详见 [INSERT VERTEX](../3.ngql-guide/12.vertex-statements/1.insert-vertex.md)、[DELETE VERTEX](../3.ngql-guide/12.vertex-statements/4.delete-vertex.md)、[INSERT EDGE](../3.ngql-guide/13.edge-statements/1.insert-edge.md)、[DELETE EDGE](../3.ngql-guide/13.edge-statements/4.delete-edge.md)。 + 由于 {{nebula.name}} {{ nebula.release }} 的数据模型中,允许存在"悬挂边",因此在增删时,用户需自行保证“一条边所对应的起点和终点”的存在性。详见 [INSERT VERTEX](../3.ngql-guide/12.vertex-statements/1.insert-vertex.md)、[DELETE VERTEX](../3.ngql-guide/12.vertex-statements/4.delete-vertex.md)、[INSERT EDGE](../3.ngql-guide/13.edge-statements/1.insert-edge.md)、[DELETE EDGE](../3.ngql-guide/13.edge-statements/4.delete-edge.md)。 不支持 openCypher 中的 MERGE 语句。 diff --git a/docs-2.0-zh/1.introduction/3.nebula-graph-architecture/1.architecture-overview.md b/docs-2.0-zh/1.introduction/3.nebula-graph-architecture/1.architecture-overview.md index 8d6a456020e..8ca54979b2b 100644 --- a/docs-2.0-zh/1.introduction/3.nebula-graph-architecture/1.architecture-overview.md +++ b/docs-2.0-zh/1.introduction/3.nebula-graph-architecture/1.architecture-overview.md @@ -1,22 +1,22 @@ -# {{nebula.name}}架构总览 +# {{nebula.name}} 架构总览 -{{nebula.name}}由三种服务构成:Graph 服务、Meta 服务和 Storage 服务,是一种存储与计算分离的架构。 +{{nebula.name}} 由三种服务构成:Graph 服务、Meta 服务和 Storage 服务,是一种存储与计算分离的架构。 -每个服务都有可执行的二进制文件和对应进程,用户可以使用这些二进制文件在一个或多个计算机上部署{{nebula.name}}集群。 +每个服务都有可执行的二进制文件和对应进程,用户可以使用这些二进制文件在一个或多个计算机上部署 {{nebula.name}} 集群。 -下图展示了{{nebula.name}}集群的经典架构。 +下图展示了 {{nebula.name}} 集群的经典架构。 -![{{nebula.name}} architecture](https://docs-cdn.nebula-graph.com.cn/figures/nebula-graph-architecture_3.png "{{nebula.name}} architecture") +![{{nebula.name}} architecture](https://docs-cdn.nebula-graph.com.cn/figures/nebula-graph-architecture_3.png " {{nebula.name}} architecture") ## Meta 服务 -在{{nebula.name}}架构中,Meta 服务是由 nebula-metad 进程提供的,负责数据管理,例如 Schema 操作、集群管理和用户权限管理等。 +在 {{nebula.name}} 架构中,Meta 服务是由 nebula-metad 进程提供的,负责数据管理,例如 Schema 操作、集群管理和用户权限管理等。 Meta 服务的详细说明,请参见 [Meta 服务](2.meta-service.md)。 ## Graph 服务和 Storage 服务 -{{nebula.name}}采用计算存储分离架构。Graph 服务负责处理计算请求,Storage 服务负责存储数据。它们由不同的进程提供,Graph 服务是由 nebula-graphd 进程提供,Storage 服务是由 nebula-storaged 进程提供。计算存储分离架构的优势如下: +{{nebula.name}} 采用计算存储分离架构。Graph 服务负责处理计算请求,Storage 服务负责存储数据。它们由不同的进程提供,Graph 服务是由 nebula-graphd 进程提供,Storage 服务是由 nebula-storaged 进程提供。计算存储分离架构的优势如下: - 易扩展 diff --git a/docs-2.0-zh/1.introduction/3.nebula-graph-architecture/2.meta-service.md b/docs-2.0-zh/1.introduction/3.nebula-graph-architecture/2.meta-service.md index 4a87054a1d8..659afbeb87b 100644 --- a/docs-2.0-zh/1.introduction/3.nebula-graph-architecture/2.meta-service.md +++ b/docs-2.0-zh/1.introduction/3.nebula-graph-architecture/2.meta-service.md @@ -8,8 +8,8 @@ Meta 服务是由 nebula-metad 进程提供的,用户可以根据场景配置 nebula-metad 进程数量: -- 测试环境中,用户可以在{{nebula.name}}集群中部署 1 个或 3 个 nebula-metad 进程。如果要部署 3 个,用户可以将它们部署在 1 台机器上,或者分别部署在不同的机器上。 -- 生产环境中,建议在{{nebula.name}}集群中部署 3 个 nebula-metad 进程。请将这些进程部署在不同的机器上以保证高可用。 +- 测试环境中,用户可以在 {{nebula.name}} 集群中部署 1 个或 3 个 nebula-metad 进程。如果要部署 3 个,用户可以将它们部署在 1 台机器上,或者分别部署在不同的机器上。 +- 生产环境中,建议在 {{nebula.name}} 集群中部署 3 个 nebula-metad 进程。请将这些进程部署在不同的机器上以保证高可用。 所有 nebula-metad 进程构成了基于 Raft 协议的集群,其中一个进程是 leader,其他进程都是 follower。 @@ -25,7 +25,7 @@ leader 是由多数派选举出来,只有 leader 能够对客户端或其他 Meta 服务中存储了用户的账号和权限信息,当客户端通过账号发送请求给 Meta 服务,Meta 服务会检查账号信息,以及该账号是否有对应的请求权限。 -更多{{nebula.name}}的访问控制说明,请参见[身份验证](../../7.data-security/1.authentication/1.authentication.md)。 +更多 {{nebula.name}} 的访问控制说明,请参见[身份验证](../../7.data-security/1.authentication/1.authentication.md)。 ### 管理分片 @@ -33,15 +33,15 @@ Meta 服务负责存储和管理分片的位置信息,并且保证分片的负 ### 管理图空间 -{{nebula.name}}支持多个图空间,不同图空间内的数据是安全隔离的。Meta 服务存储所有图空间的元数据(非完整数据),并跟踪数据的变更,例如增加或删除图空间。 +{{nebula.name}} 支持多个图空间,不同图空间内的数据是安全隔离的。Meta 服务存储所有图空间的元数据(非完整数据),并跟踪数据的变更,例如增加或删除图空间。 ### 管理 Schema 信息 -{{nebula.name}}是强类型图数据库,它的 Schema 包括 Tag、Edge type、Tag 属性和 Edge type 属性。 +{{nebula.name}} 是强类型图数据库,它的 Schema 包括 Tag、Edge type、Tag 属性和 Edge type 属性。 Meta 服务中存储了 Schema 信息,同时还负责 Schema 的添加、修改和删除,并记录它们的版本。 -更多{{nebula.name}}的 Schema 信息,请参见[数据模型](../2.data-model.md)。 +更多 {{nebula.name}} 的 Schema 信息,请参见[数据模型](../2.data-model.md)。 ### 管理 TTL 信息 diff --git a/docs-2.0-zh/1.introduction/3.nebula-graph-architecture/3.graph-service.md b/docs-2.0-zh/1.introduction/3.nebula-graph-architecture/3.graph-service.md index 9ed312c24c8..6675415502d 100644 --- a/docs-2.0-zh/1.introduction/3.nebula-graph-architecture/3.graph-service.md +++ b/docs-2.0-zh/1.introduction/3.nebula-graph-architecture/3.graph-service.md @@ -94,7 +94,7 @@ Executor 模块包含调度器(Scheduler)和执行器(Executor),通过 ## 代码结构 -{{nebula.name}}的代码层次结构如下: +{{nebula.name}} 的代码层次结构如下: ```bash |--src @@ -115,8 +115,8 @@ Executor 模块包含调度器(Scheduler)和执行器(Executor),通过 ## 视频 -用户也可以通过视频全方位了解{{nebula.name}}的查询引擎。 +用户也可以通过视频全方位了解 {{nebula.name}} 的查询引擎。 - [nMeetup·上海 |全面解析 Query Engine](https://www.bilibili.com/video/BV1xV411n7DD)(33 分 30 秒) - + diff --git a/docs-2.0-zh/1.introduction/3.nebula-graph-architecture/4.storage-service.md b/docs-2.0-zh/1.introduction/3.nebula-graph-architecture/4.storage-service.md index 0ebbe2269cf..b284adf2d96 100644 --- a/docs-2.0-zh/1.introduction/3.nebula-graph-architecture/4.storage-service.md +++ b/docs-2.0-zh/1.introduction/3.nebula-graph-architecture/4.storage-service.md @@ -1,6 +1,6 @@ # Storage 服务 -{{nebula.name}}的存储包含两个部分,一个是 Meta 相关的存储,称为 Meta 服务,在前文已有介绍。 +{{nebula.name}} 的存储包含两个部分,一个是 Meta 相关的存储,称为 Meta 服务,在前文已有介绍。 另一个是具体数据相关的存储,称为 Storage 服务。其运行在 nebula-storaged 进程中。本文仅介绍 Storage 服务的架构设计。 @@ -52,17 +52,17 @@ Storage 服务是由 nebula-storaged 进程提供的,用户可以根据场景 ## KVStore -{{nebula.name}}使用自行开发的 KVStore,而不是其他开源 KVStore,原因如下: +{{nebula.name}} 使用自行开发的 KVStore,而不是其他开源 KVStore,原因如下: - 需要高性能 KVStore。 -- 需要以库的形式提供,实现高效计算下推。对于强 Schema 的{{nebula.name}}来说,计算下推时如何提供 Schema 信息,是高效的关键。 +- 需要以库的形式提供,实现高效计算下推。对于强 Schema 的 {{nebula.name}} 来说,计算下推时如何提供 Schema 信息,是高效的关键。 - 需要数据强一致性。 -基于上述原因,{{nebula.name}}使用 RocksDB 作为本地存储引擎,实现了自己的 KVStore,有如下优势: +基于上述原因,{{nebula.name}} 使用 RocksDB 作为本地存储引擎,实现了自己的 KVStore,有如下优势: -- 对于多硬盘机器,{{nebula.name}}只需配置多个不同的数据目录即可充分利用多硬盘的并发能力。 +- 对于多硬盘机器,{{nebula.name}} 只需配置多个不同的数据目录即可充分利用多硬盘的并发能力。 - 由 Meta 服务统一管理所有 Storage 服务,可以根据所有分片的分布情况和状态,手动进行负载均衡。 @@ -76,11 +76,11 @@ Storage 服务是由 nebula-storaged 进程提供的,用户可以根据场景 ## 数据存储格式 -图存储的主要数据是点和边,{{nebula.name}}将点和边的信息存储为 key,同时将点和边的属性信息存储在 value 中,以便更高效地使用属性过滤。 +图存储的主要数据是点和边,{{nebula.name}} 将点和边的信息存储为 key,同时将点和边的属性信息存储在 value 中,以便更高效地使用属性过滤。 - 点数据存储格式 - 相比{{nebula.name}} 2.x 版本,3.x 版本在开启**无 Tag** 的点配置后,每个点多了一个不含 TagID 字段并且无 value 的 key。 + 相比 {{nebula.name}} 2.x 版本,3.x 版本在开启**无 Tag** 的点配置后,每个点多了一个不含 TagID 字段并且无 value 的 key。 ![The vertex format of storage service](https://docs-cdn.nebula-graph.com.cn/figures/3.0-vertex-key.png) @@ -108,19 +108,19 @@ Storage 服务是由 nebula-storaged 进程提供的,用户可以根据场景 ### 属性说明 -{{nebula.name}}使用强类型 Schema。 +{{nebula.name}} 使用强类型 Schema。 -对于点或边的属性信息,{{nebula.name}}会将属性信息编码后按顺序存储。由于定长属性的长度是固定的,查询时可以根据偏移量快速查询。在解码之前,需要先从 Meta 服务中查询具体的 Schema 信息(并缓存)。同时为了支持在线变更 Schema,在编码属性时,会加入对应的 Schema 版本信息。 +对于点或边的属性信息,{{nebula.name}} 会将属性信息编码后按顺序存储。由于定长属性的长度是固定的,查询时可以根据偏移量快速查询。在解码之前,需要先从 Meta 服务中查询具体的 Schema 信息(并缓存)。同时为了支持在线变更 Schema,在编码属性时,会加入对应的 Schema 版本信息。 ## 数据分片 -由于超大规模关系网络的节点数量高达百亿到千亿,而边的数量更会高达万亿,即使仅存储点和边两者也远大于一般服务器的容量。因此需要有方法将图元素切割,并存储在不同逻辑分片(Partition)上。{{nebula.name}}采用边分割的方式。 +由于超大规模关系网络的节点数量高达百亿到千亿,而边的数量更会高达万亿,即使仅存储点和边两者也远大于一般服务器的容量。因此需要有方法将图元素切割,并存储在不同逻辑分片(Partition)上。{{nebula.name}} 采用边分割的方式。 ![data partitioning](https://www-cdn.nebula-graph.com.cn/nebula-blog/DataModel02.png) ### 切边与存储放大 -{{nebula.name}}中逻辑上的一条边对应着硬盘上的两个键值对(key-value pair),在边的数量和属性较多时,存储放大现象较明显。边的存储方式如下图所示。 +{{nebula.name}} 中逻辑上的一条边对应着硬盘上的两个键值对(key-value pair),在边的数量和属性较多时,存储放大现象较明显。边的存储方式如下图所示。 ![edge storage](https://docs-cdn.nebula-graph.com.cn/figures/edge-division.png) @@ -136,7 +136,7 @@ Storage 服务是由 nebula-storaged 进程提供的,用户可以根据场景 EdgeA_Out 和 EdgeA_In 以方向相反的两条边的形式存在于存储层,二者组合成了逻辑上的一条边 EdgeA。EdgeA_Out 用于从起点开始的遍历请求,例如`(a)-[]->()`;EdgeA_In 用于指向目的点的遍历请求,或者说从目的点开始,沿着边的方向逆序进行的遍历请求,例如例如`()-[]->(a)`。 -如 EdgeA_Out 和 EdgeA_In 一样,{{nebula.name}}冗余了存储每条边的信息,导致存储边所需的实际空间翻倍。因为边对应的 key 占用的硬盘空间较小,但 value 占用的空间与属性值的长度和数量成正比,所以,当边的属性值较大或数量较多时候,硬盘空间占用量会比较大。 +如 EdgeA_Out 和 EdgeA_In 一样,{{nebula.name}} 冗余了存储每条边的信息,导致存储边所需的实际空间翻倍。因为边对应的 key 占用的硬盘空间较小,但 value 占用的空间与属性值的长度和数量成正比,所以,当边的属性值较大或数量较多时候,硬盘空间占用量会比较大。 ### 分片算法 @@ -202,14 +202,14 @@ pId = vid % numParts + 1; Raft 多副本的方式与 HDFS 多副本的方式是不同的,Raft 基于“多数派”投票,因此副本数量不能是偶数。 ### Multi Group Raft 由于 Storage 服务需要支持集群分布式架构,所以基于 Raft 协议实现了 Multi Group Raft,即每个分片的所有副本共同组成一个 Raft group,其中一个副本是 leader,其他副本是 follower,从而实现强一致性和高可用性。Raft 的部分实现如下。 -由于 Raft 日志不允许空洞,{{nebula.name}}使用 Multi Group Raft 缓解此问题,分片数量较多时,可以有效提高{{nebula.name}}的性能。但是分片数量太多会增加开销,例如 Raft group 内部存储的状态信息、WAL 文件,或者负载过低时的批量操作。 +由于 Raft 日志不允许空洞,{{nebula.name}} 使用 Multi Group Raft 缓解此问题,分片数量较多时,可以有效提高 {{nebula.name}} 的性能。但是分片数量太多会增加开销,例如 Raft group 内部存储的状态信息、WAL 文件,或者负载过低时的批量操作。 实现 Multi Group Raft 有 2 个关键点: @@ -223,7 +223,7 @@ Listener:这是一种特殊的 Raft 角色,并不参与投票,也不能用 ### 批量(Batch)操作 -{{nebula.name}}中,每个分片都是串行写日志,为了提高吞吐,写日志时需要做批量操作,但是由于{{nebula.name}}利用 WAL 实现一些特殊功能,需要对批量操作进行分组,这是{{nebula.name}}的特色。 + {{nebula.name}} 中,每个分片都是串行写日志,为了提高吞吐,写日志时需要做批量操作,但是由于 {{nebula.name}} 利用 WAL 实现一些特殊功能,需要对批量操作进行分组,这是 {{nebula.name}} 的特色。 例如无锁 CAS 操作需要之前的 WAL 全部提交后才能执行,如果一个批量写入的 WAL 里包含了 CAS 类型的 WAL,就需要拆分成粒度更小的几个组,还要保证这几组 WAL 串行提交。 @@ -245,14 +245,14 @@ leader 切换对于负载均衡至关重要,当把某个分片从一台机器 ### 成员变更 -为了避免脑裂,当一个 Raft group 的成员发生变化时,需要有一个中间状态,该状态下新旧 group 的多数派需要有重叠的部分,这样就防止了新的 group 或旧的 group 单方面做出决定。为了更加简化,Diego Ongaro 在自己的博士论文中提出每次只增减一个 peer 的方式,以保证新旧 group 的多数派总是有重叠。{{nebula.name}}也采用了这个方式,只不过增加成员和移除成员的实现有所区别。具体实现方式请参见 Raft Part class 里 addPeer/removePeer 的实现。 +为了避免脑裂,当一个 Raft group 的成员发生变化时,需要有一个中间状态,该状态下新旧 group 的多数派需要有重叠的部分,这样就防止了新的 group 或旧的 group 单方面做出决定。为了更加简化,Diego Ongaro 在自己的博士论文中提出每次只增减一个 peer 的方式,以保证新旧 group 的多数派总是有重叠。 {{nebula.name}} 也采用了这个方式,只不过增加成员和移除成员的实现有所区别。具体实现方式请参见 Raft Part class 里 addPeer/removePeer 的实现。 diff --git a/docs-2.0-zh/1.introduction/3.vid.md b/docs-2.0-zh/1.introduction/3.vid.md index 0003838dd33..63205dad97a 100644 --- a/docs-2.0-zh/1.introduction/3.vid.md +++ b/docs-2.0-zh/1.introduction/3.vid.md @@ -52,7 +52,7 @@ VID 必须在[插入点](../3.ngql-guide/12.vertex-statements/1.insert-vertex.md ## "查询起始点"(`start vid`) 与全局扫描 -绝大多数情况下,{{nebula.name}}的查询语句(`MATCH`、`GO`、`LOOKUP`)的执行计划,必须要通过一定方式找到查询起始点的 VID(`start vid`)。 +绝大多数情况下,{{nebula.name}} 的查询语句(`MATCH`、`GO`、`LOOKUP`)的执行计划,必须要通过一定方式找到查询起始点的 VID(`start vid`)。 定位 `start vid` 只有两种方式: diff --git a/docs-2.0-zh/14.client/1.nebula-client.md b/docs-2.0-zh/14.client/1.nebula-client.md index 20e59f10cad..9df02459444 100644 --- a/docs-2.0-zh/14.client/1.nebula-client.md +++ b/docs-2.0-zh/14.client/1.nebula-client.md @@ -1,6 +1,6 @@ # 客户端介绍 -{{nebula.name}}提供多种类型客户端,便于用户连接、管理{{nebula.name}}图数据库。 +{{nebula.name}} 提供多种类型客户端,便于用户连接、管理 {{nebula.name}} 图数据库。 - [NebulaGraph Console](../nebula-console.md):原生 CLI 客户端 @@ -14,11 +14,14 @@ !!! note - 目前仅 NebulaGraph Java 客户端支持线程安全(thread-safe)。 + 仅以下类支持线程安全(thread-safe): + + - NebulaGraph Java 客户端提供的 NebulaPool 和 SessionPool + - NebulaGraph Go 客户端提供的 ConnectionPool 和 SessionPool !!! caution - 以下客户端工具也可用于连接和管理{{nebula.name}}。他们由非常酷的社区用户提供和维护,欢迎大家参与测试和贡献。 + 以下客户端工具也可用于连接和管理 {{nebula.name}} 。他们由非常酷的社区用户提供和维护,欢迎大家参与测试和贡献。 - [NebulaGraph PHP](https://github.com/nebula-contrib/nebula-php) - [NebulaGraph Node](https://github.com/nebula-contrib/nebula-node) diff --git a/docs-2.0-zh/14.client/3.nebula-cpp-client.md b/docs-2.0-zh/14.client/3.nebula-cpp-client.md index 2111da4c218..03efb9b0fa7 100644 --- a/docs-2.0-zh/14.client/3.nebula-cpp-client.md +++ b/docs-2.0-zh/14.client/3.nebula-cpp-client.md @@ -1,8 +1,8 @@ # NebulaGraph CPP -[NebulaGraph CPP](https://github.com/vesoft-inc/nebula-cpp/tree/{{cpp.branch}}) 是一款 C++ 语言的客户端,可以连接、管理{{nebula.name}}图数据库。 +[NebulaGraph CPP](https://github.com/vesoft-inc/nebula-cpp/tree/{{cpp.branch}}) 是一款 C++ 语言的客户端,可以连接、管理 {{nebula.name}} 图数据库。 -## 使用限制 +## 前提条件 请确保已安装 C++ 且 GCC 版本为 4.8 及以上。 @@ -93,9 +93,9 @@ $ LIBRARY_PATH=:$LIBRARY_PATH g++ -std=c++11 SessionExample.cpp -I -lnebula_graph_client -o session_example ``` - - `library_folder_path`:{{nebula.name}}动态库文件存储路径,默认为`/usr/local/nebula/lib64`。 + - `library_folder_path`: {{nebula.name}} 动态库文件存储路径,默认为`/usr/local/nebula/lib64`。 - - `include_folder_path`:{{nebula.name}}头文件存储路径,默认为`/usr/local/nebula/include`。 + - `include_folder_path`: {{nebula.name}} 头文件存储路径,默认为`/usr/local/nebula/include`。 示例: @@ -103,9 +103,13 @@ $ LIBRARY_PATH=/usr/local/nebula/lib64:$LIBRARY_PATH g++ -std=c++11 SessionExample.cpp -I/usr/local/nebula/include -lnebula_graph_client -o session_example ``` +## API 文档 + +点击[此处](https://vesoft-inc.github.io/nebula-cpp/release-3.4/annotated.html)查看 CPP 客户端提供的各种类和方法。 + ## 核心代码 -NebulaGraph CPP 客户端提供 Session Pool 和 Connection Pool 两种方式连接{{nebula.name}}。使用 Connection Pool 需要用户自行管理 Session 实例。 +NebulaGraph CPP 客户端提供 Session Pool 和 Connection Pool 两种方式连接 {{nebula.name}} 。使用 Connection Pool 需要用户自行管理 Session 实例。 - Session Pool diff --git a/docs-2.0-zh/14.client/4.nebula-java-client.md b/docs-2.0-zh/14.client/4.nebula-java-client.md index 1c7f078e3f3..0bed6b0ed40 100644 --- a/docs-2.0-zh/14.client/4.nebula-java-client.md +++ b/docs-2.0-zh/14.client/4.nebula-java-client.md @@ -1,6 +1,6 @@ # NebulaGraph Java -[NebulaGraph Java](https://github.com/vesoft-inc/nebula-java/tree/{{java.branch}}) 是一款 Java 语言的客户端,可以连接、管理{{nebula.name}}图数据库。 +[NebulaGraph Java](https://github.com/vesoft-inc/nebula-java/tree/{{java.branch}}) 是一款 Java 语言的客户端,可以连接、管理 {{nebula.name}} 图数据库。 ## 前提条件 @@ -57,7 +57,12 @@ 如果没有 Maven 管理项目,请手动[下载 JAR 包](https://repo1.maven.org/maven2/com/vesoft/)进行安装。 -### 核心代码 +## API 文档 + + +点击[此处](https://vesoft-inc.github.io/nebula-java/release-3.6/annotated.html)查看 Java 客户端提供的各种类和方法。 + +## 核心代码 NebulaGraph Java 客户端提供 Connection Pool 和 Session Pool 两种使用方式,使用 Connection Pool 需要用户自行管理 Session 实例。 diff --git a/docs-2.0-zh/14.client/5.nebula-python-client.md b/docs-2.0-zh/14.client/5.nebula-python-client.md index 22255039ecd..d59210bc496 100644 --- a/docs-2.0-zh/14.client/5.nebula-python-client.md +++ b/docs-2.0-zh/14.client/5.nebula-python-client.md @@ -1,6 +1,6 @@ # NebulaGraph Python -[NebulaGraph Python](https://github.com/vesoft-inc/nebula-python/tree/{{python.branch}}) 是一款 Python 语言的客户端,可以连接、管理{{nebula.name}}图数据库。 +[NebulaGraph Python](https://github.com/vesoft-inc/nebula-python/tree/{{python.branch}}) 是一款 Python 语言的客户端,可以连接、管理 {{nebula.name}} 图数据库。 ## 前提条件 @@ -46,6 +46,10 @@ $ pip install nebula3-python== $ pip install . ``` +## API 文档 + +点击[此处](https://vesoft-inc.github.io/nebula-python/release-3.4/annotated.html)查看 Python 客户端提供的各种类和方法。 + ## 核心代码 diff --git a/docs-2.0-zh/14.client/6.nebula-go-client.md b/docs-2.0-zh/14.client/6.nebula-go-client.md index c8cae1fb2cf..4811a5add34 100644 --- a/docs-2.0-zh/14.client/6.nebula-go-client.md +++ b/docs-2.0-zh/14.client/6.nebula-go-client.md @@ -1,6 +1,6 @@ # NebulaGraph Go -[NebulaGraph Go](https://github.com/vesoft-inc/nebula-go/tree/{{go.branch}}) 是一款 Go 语言的客户端,可以连接、管理{{nebula.name}}图数据库。 +[NebulaGraph Go](https://github.com/vesoft-inc/nebula-go/tree/{{go.branch}}) 是一款 Go 语言的客户端,可以连接、管理 {{nebula.name}} 图数据库。 ## 前提条件 @@ -34,9 +34,13 @@ $ go get -u -v github.com/vesoft-inc/nebula-go@ `tag`:指定分支。例如`master`或`{{go.branch}}`。 +## API 文档 + +点击[此处](https://pkg.go.dev/github.com/vesoft-inc/nebula-go/v3@v3.6.1#section-documentation)查看 Go 客户端提供的各种方法和类型。 + ## 核心代码 -NebulaGraph GO 客户端提供 Connection Pool 和 Session Pool 两种使用方式,使用 Connection Pool 需要用户自行管理 Session 实例。 +NebulaGraph Go 客户端提供 Connection Pool 和 Session Pool 两种使用方式,使用 Connection Pool 需要用户自行管理 Session 实例。 - Session Pool diff --git a/docs-2.0-zh/15.contribution/how-to-contribute.md b/docs-2.0-zh/15.contribution/how-to-contribute.md index a10b4630991..c5ed1f7d2a0 100644 --- a/docs-2.0-zh/15.contribution/how-to-contribute.md +++ b/docs-2.0-zh/15.contribution/how-to-contribute.md @@ -6,19 +6,17 @@ 欢迎为项目贡献任何代码或文档,但是建议先在 [GitHub](https://github.com/vesoft-inc/nebula) 或[社区](https://discuss.nebula-graph.io/)上提交一个问题,和大家共同讨论。 -### 签署贡献者许可协议(CLA) +### 签署贡献者许可协议 [CLA](https://www.apache.org/licenses/contributor-agreements.html) -什么是 [CLA](https://www.apache.org/licenses/contributor-agreements.html)? +1. 打开 [CLA 服务登录](https://cla-assistant.io/)页面。 +2. 单击 **Sign in with GitHub**。 +3. 阅读并同意协议 [vesoft inc. Contributor License Agreement](https://cla-assistant.io/vesoft-inc/)。 -签署协议链接:[vesoft inc. Contributor License Agreement](https://cla-assistant.io/vesoft-inc/) - -单击按钮 **Sign in with GitHub to agree** 签署协议。 - -如果有任何问题,请发送邮件至`info@vesoft.com`。 +如果有任何问题,请提交 [issue](https://github.com/vesoft-inc/nebula/issues)。 ## 修改单篇文档 -{{nebula.name}}文档以 Markdown 语言编写。单击文档标题右侧的铅笔图标即可提交修改建议。 +{{nebula.name}} 文档以 Markdown 语言编写。单击文档标题右侧的铅笔图标即可提交修改建议。 该方法仅适用于修改单篇文档。 @@ -28,11 +26,11 @@ ### Step 1:通过 GitHub fork 仓库 -{{nebula.name}}项目有很多[仓库](https://github.com/vesoft-inc),以 [{{nebula.name}}仓库](https://github.com/vesoft-inc/nebula)为例: +{{nebula.name}} 项目有很多[仓库](https://github.com/vesoft-inc),以 [{{nebula.name}} 仓库](https://github.com/vesoft-inc/nebula)为例: 1. 访问 [github.com/vesoft-inc/nebula](https://github.com/vesoft-inc/nebula)。 -2. 在右上角单击按钮`Fork`,然后单击用户名,即可 fork 出{{nebula.name}}仓库。 +2. 在右上角单击按钮`Fork`,然后单击用户名,即可 fork 出 {{nebula.name}} 仓库。 ### Step 2:将分支克隆到本地 @@ -75,7 +73,7 @@ 4. (可选)定义 pre-commit hook。 - 请将{{nebula.name}}的 pre-commit hook 连接到`.git`目录。 + 请将 {{nebula.name}} 的 pre-commit hook 连接到`.git`目录。 hook 将检查 commit,包括格式、构建、文档生成等。 @@ -124,7 +122,7 @@ - 代码风格 - {{nebula.name}}采用`cpplint`来确保代码符合 Google 的代码风格指南。检查器将在提交代码之前执行。 + {{nebula.name}} 采用`cpplint`来确保代码符合 Google 的代码风格指南。检查器将在提交代码之前执行。 - 单元测试要求 @@ -132,7 +130,7 @@ - 构建代码时开启单元测试 - 详情请参见[使用源码安装{{nebula.name}}](../4.deployment-and-installation/2.compile-and-install-nebula-graph/1.install-nebula-graph-by-compiling-the-source-code.md)。 + 详情请参见[使用源码安装 {{nebula.name}} ](../4.deployment-and-installation/2.compile-and-install-nebula-graph/1.install-nebula-graph-by-compiling-the-source-code.md)。 !!! note @@ -193,7 +191,7 @@ pull request 创建后,至少需要两人审查。审查人员将进行彻底 ### Step 1:确认项目捐赠 -通过邮件、微信、Slack 等方式联络{{nebula.name}}官方人员,确认捐赠项目一事。项目将被捐赠至 [{{nebula.name}} Contrib](https://github.com/nebula-contrib) 组织下。 +通过邮件、微信、Slack 等方式联络 {{nebula.name}} 官方人员,确认捐赠项目一事。项目将被捐赠至 [{{nebula.name}} Contrib](https://github.com/nebula-contrib) 组织下。 * 邮件地址:info@vesoft.com @@ -203,7 +201,7 @@ pull request 创建后,至少需要两人审查。审查人员将进行彻底 ### Step 2:获取项目接收人信息 -由{{nebula.name}}官方人员给出{{nebula.name}} Contrib 的项目接收者 ID。 +由 {{nebula.name}} 官方人员给出 {{nebula.name}} Contrib 的项目接收者 ID。 ### Step 3:捐赠项目 diff --git a/docs-2.0-zh/2.quick-start/1.quick-start-overview.md b/docs-2.0-zh/2.quick-start/1.quick-start-overview.md index 20e400c4c8d..0e97a6368f1 100644 --- a/docs-2.0-zh/2.quick-start/1.quick-start-overview.md +++ b/docs-2.0-zh/2.quick-start/1.quick-start-overview.md @@ -1,10 +1,10 @@ # 基于 Docker 快速部署 -{{nebula.name}} 提供了基于 Docker 的快速部署方式,可以在几分钟内完成部署。 +{{nebula.name}} 提供了基于 Docker 的快速部署方式,可以在几分钟内完成部署。 === "使用 Docker Desktop" - 按照以下步骤可以快速在 Docker Desktop 中部署{{nebula.name}}。 + 按照以下步骤可以快速在 Docker Desktop 中部署 {{nebula.name}} 。 1. 安装 [Docker Desktop](https://www.docker.com/products/docker-desktop/)。 @@ -12,9 +12,9 @@ 如果在 Windows 端安装 Docker Desktop 需[安装 WSL 2](https://docs.docker.com/desktop/install/windows-install/)。 - 2. 在仪表盘中单击`Extensions`或`Add Extensions`打开Extensions Marketplace 搜索{{nebula.name}} ,也可以点击 [{{nebula.name}}](https://hub.docker.com/extensions/weygu/nebulagraph-dd-ext) 在 Docker Desktop 打开。 - 3. 导航到{{nebula.name}}的扩展市场。 - 4. 点击`Install`下载{{nebula.name}}。 + 2. 在仪表盘中单击`Extensions`或`Add Extensions`打开Extensions Marketplace 搜索 {{nebula.name}} ,也可以点击 [{{nebula.name}} ](https://hub.docker.com/extensions/weygu/nebulagraph-dd-ext) 在 Docker Desktop 打开。 + 3. 导航到 {{nebula.name}} 的扩展市场。 + 4. 点击`Install`下载 {{nebula.name}} 。 ![docker](https://docs-cdn.nebula-graph.com.cn/figures/docker.png) @@ -24,12 +24,12 @@ 视频介绍 - + === "使用 Docker Compose" - 使用 Docker Compose 可以基于准备好的配置文件快速部署{{nebula.name}}服务,仅建议在测试{{nebula.name}}功能时使用该方式。 + 使用 Docker Compose 可以基于准备好的配置文件快速部署 {{nebula.name}} 服务,仅建议在测试 {{nebula.name}} 功能时使用该方式。 ## 前提条件 @@ -41,13 +41,13 @@ |Docker Compose|最新版本|[Install Docker Compose](https://docs.docker.com/compose/install/)| |Git|最新版本|[Download Git](https://git-scm.com/download/)| - - 如果使用非 root 用户部署{{nebula.name}},请授权该用户 Docker 相关的权限。详细信息,请参见 [Manage Docker as a non-root user](https://docs.docker.com/engine/install/linux-postinstall/#manage-docker-as-a-non-root-user)。 + - 如果使用非 root 用户部署 {{nebula.name}},请授权该用户 Docker 相关的权限。详细信息,请参见 [Manage Docker as a non-root user](https://docs.docker.com/engine/install/linux-postinstall/#manage-docker-as-a-non-root-user)。 - 启动主机上的 Docker 服务。 - - 如果已经通过 Docker Compose 在主机上部署了另一个版本的{{nebula.name}},为避免兼容性问题,需要删除目录`nebula-docker-compose/data`。 + - 如果已经通过 Docker Compose 在主机上部署了另一个版本的 {{nebula.name}},为避免兼容性问题,需要删除目录`nebula-docker-compose/data`。 - ## 部署{{nebula.name}} + ## 部署 {{nebula.name}} 1. 通过 Git 克隆`nebula-docker-compose`仓库的`{{dockercompose.release}}`分支到主机。 @@ -69,11 +69,11 @@ $ cd nebula-docker-compose/ ``` - 3. 执行如下命令启动{{nebula.name}}服务。 + 3. 执行如下命令启动 {{nebula.name}} 服务。 !!! note - - 如果长期未内核更新镜像,请先更新 [{{nebula.name}}镜像](#nebulagraph_docker)和 [NebulaGraph Console 镜像](#nebulagraph_console)。 + - 如果长期未内核更新镜像,请先更新 [{{nebula.name}} 镜像](#nebulagraph_docker)和 [NebulaGraph Console 镜像](#nebulagraph_console)。 - 执行命令后的返回结果因安装目录不同而不同。 ```bash @@ -94,11 +94,11 @@ 上述服务的更多信息,请参见[架构总览](../1.introduction/3.nebula-graph-architecture/1.architecture-overview.md)。 - ## 连接{{nebula.name}} + ## 连接 {{nebula.name}} - 连接{{nebula.name}}有两种方式: + 连接 {{nebula.name}} 有两种方式: - - 在容器外通过 Nebula Console 连接。因为容器的配置文件中将 Graph 服务的外部映射端口也固定为 9669,因此可以直接通过默认端口连接。详情参见[连接{{nebula.name}}](../2.quick-start/3.quick-start-on-premise/3.connect-to-nebula-graph.md)。 + - 在容器外通过 Nebula Console 连接。因为容器的配置文件中将 Graph 服务的外部映射端口也固定为 9669,因此可以直接通过默认端口连接。详情参见[连接 {{nebula.name}} ](../2.quick-start/3.quick-start-on-premise/3.connect-to-nebula-graph.md)。 - 登录安装了 NebulaGraph Console 的容器,然后再连接 Graph 服务。本小节介绍这种方式。 @@ -120,7 +120,7 @@ / # ``` - 3. 通过 NebulaGraph Console 连接{{nebula.name}}。 + 3. 通过 NebulaGraph Console 连接 {{nebula.name}} 。 ```bash / # ./usr/local/bin/nebula-console -u -p --address=graphd --port=9669 @@ -145,12 +145,12 @@ 执行两次`exit`可以退出容器。 - ## 查看{{nebula.name}}服务的状态和端口 + ## 查看 {{nebula.name}} 服务的状态和端口 - 执行命令`docker-compose ps`可以列出{{nebula.name}}服务的状态和端口。 + 执行命令`docker-compose ps`可以列出 {{nebula.name}} 服务的状态和端口。 !!! note - {{nebula.name}}默认使用`9669`端口为客户端提供服务,如果需要修改端口,请修改目录`nebula-docker-compose`内的文件`docker-compose.yaml`,然后重启{{nebula.name}}服务。 + {{nebula.name}} 默认使用`9669`端口为客户端提供服务,如果需要修改端口,请修改目录`nebula-docker-compose`内的文件`docker-compose.yaml`,然后重启 {{nebula.name}} 服务。 ```bash $ docker-compose ps @@ -192,9 +192,9 @@ [root@2a6c56c405f5 nebula]# ``` - ## 查看{{nebula.name}}服务的数据和日志 + ## 查看 {{nebula.name}} 服务的数据和日志 - {{nebula.name}}的所有数据和日志都持久化存储在`nebula-docker-compose/data`和`nebula-docker-compose/logs`目录中。 + {{nebula.name}} 的所有数据和日志都持久化存储在`nebula-docker-compose/data`和`nebula-docker-compose/logs`目录中。 目录的结构如下: @@ -220,9 +220,9 @@ └── storage2 ``` - ## 停止{{nebula.name}}服务 + ## 停止 {{nebula.name}} 服务 - 用户可以执行如下命令停止{{nebula.name}}服务: + 用户可以执行如下命令停止 {{nebula.name}} 服务: ```bash $ docker-compose down @@ -260,7 +260,7 @@ ## 修改配置 - Docker Compose 部署的{{nebula.name}},配置文件位置为`nebula-docker-compose/docker-compose.yaml`,修改该文件内的配置并重启服务即可使新配置生效。 + Docker Compose 部署的 {{nebula.name}},配置文件位置为`nebula-docker-compose/docker-compose.yaml`,修改该文件内的配置并重启服务即可使新配置生效。 具体的配置说明请参见[配置管理](../5.configurations-and-logs/1.configurations/1.configurations.md)。 @@ -282,15 +282,15 @@ `9669:9669`表示内部的 9669 映射到外部的端口也是 9669,下方的`19669`表示内部的 19669 映射到外部的端口是随机的。 - ### 如何升级/更新{{nebula.name}}服务的 Docker 镜像? + ### 如何升级/更新 {{nebula.name}} 服务的 Docker 镜像? 1. 在文件`nebula-docker-compose/docker-compose.yaml`中,找到所有服务的`image`并修改其值为相应的镜像版本。 2. 在目录`nebula-docker-compose`内执行命令`docker-compose pull`,更新 Graph 服务、Storage 服务、Meta 服务和 NebulaGraph Console 的镜像。 - 3. 执行命令`docker-compose up -d`启动{{nebula.name}}服务。 + 3. 执行命令`docker-compose up -d`启动 {{nebula.name}} 服务。 - 4. 通过 NebulaGraph Console 连接{{nebula.name}}后,分别执行命令`SHOW HOSTS GRAPH`、`SHOW HOSTS STORAGE`、`SHOW HOSTS META`查看各服务版本。 + 4. 通过 NebulaGraph Console 连接 {{nebula.name}} 后,分别执行命令`SHOW HOSTS GRAPH`、`SHOW HOSTS STORAGE`、`SHOW HOSTS META`查看各服务版本。 ### 执行命令`docker-compose pull`报错`ERROR: toomanyrequests` @@ -302,7 +302,7 @@ ### 如何更新 NebulaGraph Console? - `docker-compose pull`会同时更新{{nebula.name}}服务和 NebulaGraph Console。 + `docker-compose pull`会同时更新 {{nebula.name}} 服务和 NebulaGraph Console。 diff --git a/docs-2.0-zh/2.quick-start/2.start-free-trial-on-cloud.md b/docs-2.0-zh/2.quick-start/2.start-free-trial-on-cloud.md index 1fb85585217..c46bb4f38dd 100644 --- a/docs-2.0-zh/2.quick-start/2.start-free-trial-on-cloud.md +++ b/docs-2.0-zh/2.quick-start/2.start-free-trial-on-cloud.md @@ -1,4 +1,4 @@ # 从云开始(免费试用) -用户可以在阿里云云市场上免费试用{{nebula.name}}。无需下载和安装任何软件,只需简单的点击操作,即可在云端体验到{{nebula.name}}的强大功能。立即单击[免费试用](https://computenest.console.aliyun.com/user/cn-hangzhou/serviceInstanceCreate?ServiceId=service-39f4f251e9484369a778&ServiceVersion=20&isTrial=true),探索{{nebula.name}}的魅力。 +用户可以在阿里云云市场上免费试用 {{nebula.name}} 。无需下载和安装任何软件,只需简单的点击操作,即可在云端体验到 {{nebula.name}} 的强大功能。立即单击[免费试用](https://computenest.console.aliyun.com/user/cn-hangzhou/serviceInstanceCreate?ServiceId=service-39f4f251e9484369a778&ServiceVersion=20&isTrial=true),探索 {{nebula.name}} 的魅力。 diff --git a/docs-2.0-zh/2.quick-start/3.quick-start-on-premise/2.install-nebula-graph.md b/docs-2.0-zh/2.quick-start/3.quick-start-on-premise/2.install-nebula-graph.md index 5f0248d8325..7736a1a1931 100644 --- a/docs-2.0-zh/2.quick-start/3.quick-start-on-premise/2.install-nebula-graph.md +++ b/docs-2.0-zh/2.quick-start/3.quick-start-on-premise/2.install-nebula-graph.md @@ -1,4 +1,4 @@ -# 安装{{nebula.name}} +# 安装 {{nebula.name}} {% include "/source_install-nebula-graph-by-rpm-or-deb.md" %} diff --git a/docs-2.0-zh/2.quick-start/3.quick-start-on-premise/3.1add-storage-hosts.md b/docs-2.0-zh/2.quick-start/3.quick-start-on-premise/3.1add-storage-hosts.md index 673da77ad3e..3848579837b 100644 --- a/docs-2.0-zh/2.quick-start/3.quick-start-on-premise/3.1add-storage-hosts.md +++ b/docs-2.0-zh/2.quick-start/3.quick-start-on-premise/3.1add-storage-hosts.md @@ -1,6 +1,6 @@ # 注册 Storage 服务 -首次连接到{{nebula.name}}后,需要先添加 Storage 主机,并确认主机都处于在线状态。 +首次连接到 {{nebula.name}} 后,需要先添加 Storage 主机,并确认主机都处于在线状态。 diff --git a/docs-2.0-zh/2.quick-start/3.quick-start-on-premise/4.nebula-graph-crud.md b/docs-2.0-zh/2.quick-start/3.quick-start-on-premise/4.nebula-graph-crud.md index 5a0af782c21..ddbc461ba6e 100644 --- a/docs-2.0-zh/2.quick-start/3.quick-start-on-premise/4.nebula-graph-crud.md +++ b/docs-2.0-zh/2.quick-start/3.quick-start-on-premise/4.nebula-graph-crud.md @@ -1,6 +1,6 @@ # 使用常用 nGQL(CRUD 命令) -本文介绍{{nebula.name}}查询语言的基础语法,包括用于 Schema 创建和常用增删改查操作的语句。 +本文介绍 {{nebula.name}} 查询语言的基础语法,包括用于 Schema 创建和常用增删改查操作的语句。 如需了解更多语句的用法,参见 [nGQL 指南](../../3.ngql-guide/1.nGQL-overview/1.overview.md)。 diff --git a/docs-2.0-zh/2.quick-start/3.quick-start-on-premise/5.start-stop-service.md b/docs-2.0-zh/2.quick-start/3.quick-start-on-premise/5.start-stop-service.md index 5266165cf40..204e7376c82 100644 --- a/docs-2.0-zh/2.quick-start/3.quick-start-on-premise/5.start-stop-service.md +++ b/docs-2.0-zh/2.quick-start/3.quick-start-on-premise/5.start-stop-service.md @@ -1,4 +1,4 @@ -# 启动{{nebula.name}}服务 +# 启动 {{nebula.name}} 服务 {% include "/source_manage-service.md" %} diff --git a/docs-2.0-zh/2.quick-start/6.cheatsheet-for-ngql-command.md b/docs-2.0-zh/2.quick-start/6.cheatsheet-for-ngql-command.md index bc668085014..4e6ec09ce8e 100644 --- a/docs-2.0-zh/2.quick-start/6.cheatsheet-for-ngql-command.md +++ b/docs-2.0-zh/2.quick-start/6.cheatsheet-for-ngql-command.md @@ -105,9 +105,9 @@ |int rank(edge) | 返回边的 rank。| |vertex | 返回点的信息。包括点 ID、Tag、属性和值。| |edge | 返回边的信息。包括 Edge type、起始点 ID、目的点 ID、rank、属性和值。| - |vertices | 返回子图中的点的信息。详情参见 [GET SUBGRAPH](../3.ngql-guide/16.subgraph-and-path/1.get-subgraph.md)。| - |edges | 返回子图中的边的信息。详情参见 [GET SUBGRAPH](../3.ngql-guide/16.subgraph-and-path/1.get-subgraph.md)。| - |path | 返回路径信息。详情参见 [FIND PATH](../3.ngql-guide/16.subgraph-and-path/2.find-path.md)。| + |vertices | 返回子图中的点的信息。详情参见 [GET SUBGRAPH](../3.ngql-guide/7.general-query-statements/7.get-subgraph.md)。| + |edges | 返回子图中的边的信息。详情参见 [GET SUBGRAPH](../3.ngql-guide/7.general-query-statements/7.get-subgraph.md)。| + |path | 返回路径信息。详情参见 [FIND PATH](../3.ngql-guide/7.general-query-statements/6.find-path.md)。| * openCypher 兼容语句适用 @@ -341,7 +341,7 @@ | [CREATE SPACE](../3.ngql-guide/9.space-statements/1.create-space.md) | `CREATE SPACE [IF NOT EXISTS] ( [partition_num = ,] [replica_factor = ,] vid_type = {FIXED_STRING() | INT[64]} ) [COMMENT = '']` | `CREATE SPACE my_space_1 (vid_type=FIXED_STRING(30))` | 创建一个新的图空间。 | | [CREATE SPACE](../3.ngql-guide/9.space-statements/1.create-space.md) | `CREATE SPACE AS ` | `CREATE SPACE my_space_4 as my_space_3` | 克隆现有图空间的 Schema。 | | [USE](../3.ngql-guide/9.space-statements/2.use-space.md) | `USE ` | `USE space1` | 指定一个图空间,或切换到另一个图空间,将其作为后续查询的工作空间。 | -| [SHOW SPACES](../3.ngql-guide/9.space-statements/3.show-spaces.md) | `SHOW SPACES` | `SHOW SPACES` | 列出{{nebula.name}}示例中的所有图空间。 | +| [SHOW SPACES](../3.ngql-guide/9.space-statements/3.show-spaces.md) | `SHOW SPACES` | `SHOW SPACES` | 列出 {{nebula.name}} 示例中的所有图空间。 | | [DESCRIBE SPACE](../3.ngql-guide/9.space-statements/4.describe-space.md) | `DESC[RIBE] SPACE ` | `DESCRIBE SPACE basketballplayer` | 显示指定图空间的信息。 | | [CLEAR SPACE](../3.ngql-guide/9.space-statements/6.clear-space.md) | `CLEAR SPACE [IF EXISTS] ` | 清空图空间中的点和边,但不会删除图空间本身以及其中的 Schema 信息。 | | [DROP SPACE](../3.ngql-guide/9.space-statements/5.drop-space.md) | `DROP SPACE [IF EXISTS] ` | `DROP SPACE basketballplayer` | 删除指定图空间的所有内容。 | @@ -371,7 +371,7 @@ | 语句 | 语法 | 示例 | 说明 | | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | -| [INSERT VERTEX](../3.ngql-guide/12.vertex-statements/1.insert-vertex.md) | `INSERT VERTEX [IF NOT EXISTS] [tag_props, [tag_props] ...] VALUES : ([prop_value_list])` | `INSERT VERTEX t2 (name, age) VALUES "13":("n3", 12), "14":("n4", 8)` | 在{{nebula.name}}实例的指定图空间中插入一个或多个点。 | +| [INSERT VERTEX](../3.ngql-guide/12.vertex-statements/1.insert-vertex.md) | `INSERT VERTEX [IF NOT EXISTS] [tag_props, [tag_props] ...] VALUES : ([prop_value_list])` | `INSERT VERTEX t2 (name, age) VALUES "13":("n3", 12), "14":("n4", 8)` | 在 {{nebula.name}} 实例的指定图空间中插入一个或多个点。 | | [DELETE VERTEX](../3.ngql-guide/12.vertex-statements/4.delete-vertex.md) | `DELETE VERTEX [, ...]` | `DELETE VERTEX "team1"` | 删除点,以及点关联的出边和入边。 | | [UPDATE VERTEX](../3.ngql-guide/12.vertex-statements/2.update-vertex.md) | `UPDATE VERTEX ON SET [WHEN ] [YIELD ]` | `UPDATE VERTEX ON player "player101" SET age = age + 2 ` | 修改点上 Tag 的属性值。 | | [UPSERT VERTEX](../3.ngql-guide/12.vertex-statements/3.upsert-vertex.md) | `UPSERT VERTEX ON SET [WHEN ] [YIELD ]` | `UPSERT VERTEX ON player "player667" SET age = 31` | 结合`UPDATE`和`INSERT`,如果点存在,会修改点的属性值;如果点不存在,会插入新的点。 | @@ -380,7 +380,7 @@ | 语句 | 语法 | 示例 | 说明 | | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | -| [INSERT EDGE](../3.ngql-guide/13.edge-statements/1.insert-edge.md) | `INSERT EDGE [IF NOT EXISTS] ( ) VALUES -> [@] : ( ) [, -> [@] : ( ), ...]` | `INSERT EDGE e2 (name, age) VALUES "11"->"13":("n1", 1)` | 在{{nebula.name}}实例的指定图空间中插入一条或多条边。 | +| [INSERT EDGE](../3.ngql-guide/13.edge-statements/1.insert-edge.md) | `INSERT EDGE [IF NOT EXISTS] ( ) VALUES -> [@] : ( ) [, -> [@] : ( ), ...]` | `INSERT EDGE e2 (name, age) VALUES "11"->"13":("n1", 1)` | 在 {{nebula.name}} 实例的指定图空间中插入一条或多条边。 | | [DELETE EDGE](../3.ngql-guide/12.vertex-statements/3.upsert-vertex.md) | `DELETE EDGE -> [@] [, -> [@] ...]` | `DELETE EDGE serve "player100" -> "team204"@0` | 删除边。一次可以删除一条或多条边。 | | [UPDATE EDGE](../3.ngql-guide/13.edge-statements/2.update-edge.md) | `UPDATE EDGE ON -> [@] SET [WHEN ] [YIELD ]` | `UPDATE EDGE ON serve "player100" -> "team204"@0 SET start_year = start_year + 1` | 修改边上 Edge type 的属性。 | | [UPSERT EDGE](../3.ngql-guide/12.vertex-statements/3.upsert-vertex.md) | `UPSERT EDGE ON -> [@rank] SET [WHEN ] [YIELD ]` | `UPSERT EDGE on serve "player666" -> "team200"@0 SET end_year = 2021` | 结合`UPDATE`和`INSERT`,如果边存在,会更新边的属性;如果边不存在,会插入新的边。 | @@ -407,7 +407,7 @@ | 语法 | 示例 | 说明 | | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | - | `SIGN IN TEXT SERVICE [( [,, ]), (), ...]` | `SIGN IN TEXT SERVICE (127.0.0.1:9200)` | {{nebula.name}}的全文索引是基于 [Elasticsearch](https://en.wikipedia.org/wiki/Elasticsearch) 实现,部署 Elasticsearch 集群之后,可以使用`SIGN IN`语句登录 Elasticsearch 客户端。 | + | `SIGN IN TEXT SERVICE [( [,, ]), (), ...]` | `SIGN IN TEXT SERVICE (127.0.0.1:9200)` | {{nebula.name}} 的全文索引是基于 [Elasticsearch](https://en.wikipedia.org/wiki/Elasticsearch) 实现,部署 Elasticsearch 集群之后,可以使用`SIGN IN`语句登录 Elasticsearch 客户端。 | | `SHOW TEXT SEARCH CLIENTS` | `SHOW TEXT SEARCH CLIENTS` | 列出文本搜索客户端。 | | `SIGN OUT TEXT SERVICE` | `SIGN OUT TEXT SERVICE` | 退出所有文本搜索客户端。 | | `CREATE FULLTEXT {TAG | EDGE} INDEX ON { | } ( [,]...) [ANALYZER=""]` | `CREATE FULLTEXT TAG INDEX nebula_index_1 ON player(name)` | 创建全文索引。 | @@ -420,8 +420,8 @@ | 类型 | 语法 | 示例 | 说明 | | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | -| [子图](../3.ngql-guide/16.subgraph-and-path/1.get-subgraph.md) | `GET SUBGRAPH [WITH PROP] [ {STEP|STEPS}] FROM {, ...} [{IN | OUT | BOTH} , ...] YIELD [VERTICES AS ] [,EDGES AS ] ` | `GET SUBGRAPH 1 STEPS FROM "player100" YIELD VERTICES AS nodes, EDGES AS relationships` | 指定 Edge type 的起始点可以到达的点和边的信息,返回子图信息。 | -| [路径](../3.ngql-guide/16.subgraph-and-path/2.find-path.md) | `FIND { SHORTEST | ALL | NOLOOP } PATH [WITH PROP] FROM TO OVER [REVERSELY | BIDIRECT] [] [UPTO {STEP|STEPS}] YIELD path as [| ORDER BY $-.path] [| LIMIT ]` | `FIND SHORTEST PATH FROM "player102" TO "team204" OVER * YIELD path as p` | 查找指定起始点和目的点之间的路径。返回的路径格式类似于`()-[:@]->( {STEP|STEPS}] FROM {, ...} [{IN | OUT | BOTH} , ...] YIELD [VERTICES AS ] [,EDGES AS ] ` | `GET SUBGRAPH 1 STEPS FROM "player100" YIELD VERTICES AS nodes, EDGES AS relationships` | 指定 Edge type 的起始点可以到达的点和边的信息,返回子图信息。 | +| [路径](../3.ngql-guide/7.general-query-statements/6.find-path.md) | `FIND { SHORTEST | ALL | NOLOOP } PATH [WITH PROP] FROM TO OVER [REVERSELY | BIDIRECT] [] [UPTO {STEP|STEPS}] YIELD path as [| ORDER BY $-.path] [| LIMIT ]` | `FIND SHORTEST PATH FROM "player102" TO "team204" OVER * YIELD path as p` | 查找指定起始点和目的点之间的路径。返回的路径格式类似于`()-[:@]->(, plan=)` | `KILL QUERY(SESSION=1625553545984255,PLAN=163)` | 在一个会话中执行命令终止另一个会话中的查询。 | + + +* [终止会话](../3.ngql-guide/17.query-tuning-statements/2.kill-session.md) + + | 语法 | 示例 | 说明 | + | --------------------------------------------------- | ----------------------------------------------- | -------------------------------------------- | + | `KILL {SESSION|SESSIONS} ` | `KILL SESSION 1672887983842984` | 终止单个会话。 | + | `SHOW SESSIONS | YIELD $-.SessionId AS sid [WHERE ] | KILL {SESSION|SESSIONS} $-.sid` | `SHOW SESSIONS | YIELD $-.SessionId AS sid, $-.CreateTime as CreateTime | ORDER BY $-.CreateTime ASC | LIMIT 2 | KILL SESSIONS $-.sid` | 终止多个会话。 | + | `SHOW SESSIONS | KILL SESSIONS $-.SessionId` | `SHOW SESSIONS | KILL SESSIONS $-.SessionId`| 终止所有会话。 | diff --git a/docs-2.0-zh/20.appendix/0.FAQ.md b/docs-2.0-zh/20.appendix/0.FAQ.md index 7aa4efb66fb..bf7e66377c0 100644 --- a/docs-2.0-zh/20.appendix/0.FAQ.md +++ b/docs-2.0-zh/20.appendix/0.FAQ.md @@ -1,16 +1,16 @@ # 常见问题 FAQ -本文列出了使用{{nebula.name}} {{ nebula.release }} 时可能遇到的常见问题,用户可以使用文档中心或者浏览器的搜索功能查找相应问题。 +本文列出了使用 {{nebula.name}} {{ nebula.release }} 时可能遇到的常见问题,用户可以使用文档中心或者浏览器的搜索功能查找相应问题。 -如果按照文中的建议无法解决问题,请到[{{nebula.name}} 论坛](https://discuss.nebula-graph.com.cn/) 提问或提交 [GitHub issue](https://github.com/vesoft-inc/nebula/issues)。 +如果按照文中的建议无法解决问题,请到[ {{nebula.name}} 论坛](https://discuss.nebula-graph.com.cn/) 提问或提交 [GitHub issue](https://github.com/vesoft-inc/nebula/issues)。 ## 关于本手册 ### 为什么手册示例和系统行为不一致? -{{nebula.name}}一直在持续开发,功能或操作的行为可能会有变化,如果发现不一致,请提交 [issue](https://github.com/vesoft-inc/nebula/issues/new) 通知{{nebula.name}}团队。 +{{nebula.name}} 一直在持续开发,功能或操作的行为可能会有变化,如果发现不一致,请提交 [issue](https://github.com/vesoft-inc/nebula/issues/new) 通知 {{nebula.name}} 团队。 !!! note @@ -27,9 +27,9 @@ !!! compatibility - {{nebula.name}} {{ nebula.release }} 与 历史版本 (包括{{nebula.name}} 1.x 和 2.x) 的数据格式、客户端通信协议均**双向不兼容**。 + {{nebula.name}} {{ nebula.release }} 与 历史版本 (包括 {{nebula.name}} 1.x 和 2.x) 的数据格式、客户端通信协议均**双向不兼容**。 使用**老版本**客户端连接**新版本**服务端,会导致服务进程**退出**。 - 数据格式升级参见[升级{{nebula.name}}历史版本至当前版本](../4.deployment-and-installation/3.upgrade-nebula-graph/upgrade-nebula-comm.md)。 + 数据格式升级参见[升级 {{nebula.name}} 历史版本至当前版本](../4.deployment-and-installation/3.upgrade-nebula-graph/upgrade-nebula-comm.md)。 客户端与工具均需要[下载对应版本](../20.appendix/6.eco-tool-version.md)。 @@ -56,7 +56,7 @@ ### 如何处理错误信息`SemanticError: Missing yield clause` -从{{nebula.name}} 3.0.0 开始,查询语句`LOOKUP`、`GO`、`FETCH`必须用`YIELD`子句指定输出结果。详情请参见[YIELD](../3.ngql-guide/8.clauses-and-options/yield.md)。 +从 {{nebula.name}} 3.0.0 开始,查询语句`LOOKUP`、`GO`、`FETCH`必须用`YIELD`子句指定输出结果。详情请参见[YIELD](../3.ngql-guide/8.clauses-and-options/yield.md)。 ### 如何处理错误信息`Host not enough!` @@ -66,17 +66,17 @@ 从 3.0.0 版本开始,`pattern`支持同时匹配多个 Tag,所以返回属性时,需要额外指定 Tag 名称。即从`RETURN 变量名.属性名`改为`RETURN 变量名.Tag名.属性名`。 - +需要注意的是`system_memory_high_watermark_ratio`参数已被弃用。建议用户使用 Memory Tracker 功能来限制{{nebula.name}}的内存使用量。详情请参见 [Graph 服务的 memory tracker 配置](../5.configurations-and-logs/1.configurations/3.graph-config.md#memory_tracker)和 [Storage 服务的 memory tracker 配置](../5.configurations-and-logs/1.configurations/4.storage-config.md#memory_tracker)。 ### 如何处理错误信息`Storage Error E_RPC_FAILURE` @@ -92,10 +92,10 @@ 已知问题,通常需要重试 1-N 次 (N==partition 数量)。原因为 meta client 更新 leader 缓存需要 1-2 个心跳或者通过错误触发强制更新。 -如果登录{{nebula.name}}时,出现该报错,可以考虑使用 `df -h` 查看磁盘空间,检查本地磁盘空间是否已满。 +如果登录 {{nebula.name}} 时,出现该报错,可以考虑使用 `df -h` 查看磁盘空间,检查本地磁盘空间是否已满。 + - ### 编译 Exchange、Connectors、Algorithm 时无法下载 SNAPSHOT 包 @@ -199,6 +198,10 @@ Storage 服务在毫秒级时间内多次收到插入或者更新同一点或边 上述报错表示当前版本不允许同时对一个点或者一条边进行并发操作。如出现此报错请重新执行操作命令。 +### 如何处理错误信息 `The maximum number of statements allowed has been exceeded` 和 `the maximum number of statements for Nebula is 512` + +这两个报错信息都是由于单条插入语句长度超过 `max_allowed_statements` 引起的,通过修改 `nebula-graphd.conf` 配置文件的 `etc` 目录下 `--max_allowed_statements` 参数项,能避免语句插入报错。 + ## 关于设计与功能 ### 返回消息中 `time spent` 的含义是什么? @@ -219,19 +222,19 @@ Got 1 rows (time spent 1235/1934 us) - 第二个数字`1934`表示从客户端角度看所花费的时间,即从客户端发送请求、接收结果,然后在屏幕上显示结果所花费的时间。 -### 为什么在正常连接{{nebula.name}}后,`nebula-storaged`进程的端口号一直显示红色? +### 为什么在正常连接 {{nebula.name}} 后,`nebula-storaged`进程的端口号一直显示红色? `nebula-storaged`进程的端口号的红色闪烁状态是因为`nebula-storaged`在启动流程中会等待`nebula-metad`添加当前 Storage 服务,当前 Storage 服务收到 Ready 信号后才会正式启动服务。从 3.0.0 版本开始,Meta 服务无法直接读写在配置文件中添加的 Storage 服务,配置文件的作用仅仅是将 Storage 服务注册至 Meta 服务中。用户必须使用`ADD HOSTS`命令后,才能使 Meta 服务正常读写 Storage 服务。更多信息,参见[管理 Storage 主机](../4.deployment-and-installation/manage-storage-host.md)。 -### 为什么{{nebula.name}}的返回结果每行之间没有横线分隔了? +### 为什么 {{nebula.name}} 的返回结果每行之间没有横线分隔了? -这是 NebulaGraph Console 2.6.0 版本的变动造成的,不是{{nebula.name}}内核的变更,不影响返回数据本身的内容。 +这是 NebulaGraph Console 2.6.0 版本的变动造成的,不是 {{nebula.name}} 内核的变更,不影响返回数据本身的内容。 ### 关于悬挂边 悬挂边 (Dangling edge) 是指一条边的起点或者终点在数据库中不存在。 -{{nebula.name}} {{ nebula.release }} 的数据模型中,由于设计允许图中存在“悬挂边”; +{{nebula.name}} {{ nebula.release }} 的数据模型中,由于设计允许图中存在“悬挂边”; 没有 openCypher 中的 MERGE 语句。 对于悬挂边的保证完全依赖应用层面。 详见 [INSERT VERTEX](../3.ngql-guide/12.vertex-statements/1.insert-vertex.md), [DELETE VERTEX](../3.ngql-guide/12.vertex-statements/4.delete-vertex.md), [INSERT EDGE](../3.ngql-guide/13.edge-statements/1.insert-edge.md), [DELETE EDGE](../3.ngql-guide/13.edge-statements/4.delete-edge.md)。 @@ -327,14 +330,9 @@ nebula > MATCH (s)<-[e]-() WHERE id(s) == "given" RETURN count(e); #入度 ### 运行日志文件过大时如何回收日志? -{{nebula.name}}的运行日志默认在 `/usr/local/nebula/logs/` 下,正常 INFO 级别日志文件为 `nebula-graphd.INFO, nebula-storaged.INFO, nebula-metad.INFO`,报警和错误级别后缀为 `.WARNING` 和 `.ERROR`。 +{{nebula.name}}使用 [glog](https://github.com/google/glog) 打印日志,glog 没有日志回收的功能。用户可以通过定时任务或日志管理工具 [logrotate](https://man7.org/linux/man-pages/man8/logrotate.8.html) 来管理运行日志。操作详情,参见[回收日志](../5.configurations-and-logs/2.log-management/logs.md)。 -{{nebula.name}}使用 [glog](https://github.com/google/glog) 打印日志。glog 没有日志回收的功能,用户可以: - -- 在三种服务的配置文件内添加参数`timestamp_in_logfile_name=true`(日志文件添加时间戳)和`max_log_size=500`(日志大小限制,单位 MB),然后使用 crontab 设置定期任务回收日志文件。详情请参见 [Glog should delete old log files automatically](https://github.com/google/glog/issues/423)。 -- 使用 [logrotate](https://github.com/logrotate/logrotate) 实现[日志轮询](https://discuss.nebula-graph.com.cn/t/topic/7803)。使用 logrotate 管理日志前需修改相应{{nebula.name}}服务的配置,将`timestamp_in_logfile_name`参数的值改成`false`。 - -### 如何查看{{nebula.name}}版本 +### 如何查看 {{nebula.name}} 版本 服务运行时:`nebula-console` 中执行命令 `SHOW HOSTS META`,详见 [SHOW HOSTS](../3.ngql-guide/7.general-query-statements/6.show/6.show-hosts.md) @@ -346,7 +344,7 @@ $ ./nebula-graphd --version - Docker Compose 部署 - 查看 Docker Compose 部署的{{nebula.name}}版本,方式和编译安装类似,只是要先进入容器内部,示例命令如下: + 查看 Docker Compose 部署的 {{nebula.name}} 版本,方式和编译安装类似,只是要先进入容器内部,示例命令如下: ```bash docker exec -it nebula-docker-compose_graphd_1 bash @@ -364,7 +362,7 @@ $ ./nebula-graphd --version ### 如何查看 dmp 文件? -dmp 文件是错误报告文件,详细记录了进程退出的信息,可以用操作系统自带的 gdb 工具查看。Coredump 文件默认保存在启动二进制的当前目录下(默认为`/usr/local/nebula`目录),在{{nebula.name}}服务 crash 时,系统会自动生成。 +dmp 文件是错误报告文件,详细记录了进程退出的信息,可以用操作系统自带的 gdb 工具查看。Coredump 文件默认保存在启动二进制的当前目录下(默认为`/usr/local/nebula`目录),在 {{nebula.name}} 服务 crash 时,系统会自动生成。 1. 查看 Core 文件进程名字,pid 一般为数值。 ``` @@ -395,7 +393,7 @@ dmp 文件是错误报告文件,详细记录了进程退出的信息,可以 如果用户不清楚 dmp 打印出来的相关信息,可以将打印出来的内容,带上操作系统版本、硬件配置、Core文件产生前后的错误日志和可能导致错误的操作贴在 [{{nebula.name}} 论坛](https://discuss.nebula-graph.com.cn/)上寻求帮助。 -### 如何通过 systemctl 设置开机自动启动{{nebula.name}}服务? +### 如何通过 systemctl 设置开机自动启动 {{nebula.name}} 服务? 1. 执行 `systemctl enable` 启动 metad、graphd 和 storaged 服务。 @@ -547,7 +545,7 @@ telnet: connect to address 192.168.1.10: Connection refused ### 会话数量达到`max_sessions_per_ip_per_user`所设值上限时怎么办? -当会话数量达到上限时,即超过`max_sessions_per_ip_per_user`所设值,在连接{{nebula.name}}的时候,会出现以下报错: +当会话数量达到上限时,即超过`max_sessions_per_ip_per_user`所设值,在连接 {{nebula.name}} 的时候,会出现以下报错: ``` Fail to create a new session from connection pool, fail to authenticate, error: Create Session failed: Too many sessions created from 127.0.0.1 by user root. the threshold is 2. You can change it by modifying 'max_sessions_per_ip_per_user' in nebula-graphd.conf @@ -566,8 +564,6 @@ Fail to create a new session from connection pool, fail to authenticate, error: 集群扩缩容功能未正式在社区版中发布。以下涉及`SUBMIT JOB BALANCE DATA REMOVE`和`SUBMIT JOB BALANCE DATA`的操作在社区版中均为实验性功能,功能未稳定。如需使用,请先做好数据备份,并且在 [Graph 配置文件](../5.configurations-and-logs/1.configurations/3.graph-config.md)中将`enable_experimental_feature`和`enable_data_balance`均设置为`true`。 - - ### 如何增加或减少 Meta、Graph、Storage 节点的数量 - {{nebula.name}} {{ nebula.release }} 未提供运维命令以实现自动扩缩容,但可参考以下步骤实现手动扩缩容: @@ -593,8 +589,6 @@ Fail to create a new session from connection pool, fail to authenticate, error: Storage 扩缩容之后,根据需要执行`SUBMIT JOB BALANCE DATA`将当前图空间的分片平均分配到所有 Storage 节点中和执行`SUBMIT JOB BALANCE LEADER`命令均衡分布所有图空间中的 leader。运行命令前,需要选择一个图空间。 - - ### 如何在 Storage 节点中增加或减少磁盘 diff --git a/docs-2.0-zh/20.appendix/6.eco-tool-version.md b/docs-2.0-zh/20.appendix/6.eco-tool-version.md index 2dae4327f78..36f002b72d6 100644 --- a/docs-2.0-zh/20.appendix/6.eco-tool-version.md +++ b/docs-2.0-zh/20.appendix/6.eco-tool-version.md @@ -1,18 +1,18 @@ # 生态工具概览 -![{{nebula.name}}鸟瞰图](https://docs-cdn.nebula-graph.com.cn/figures/architecture_map_2022-08-08_17-37-15.png) +![{{nebula.name}} 鸟瞰图](https://docs-cdn.nebula-graph.com.cn/figures/architecture_map_2022-08-08_17-37-15.png) ## NebulaGraph Studio -NebulaGraph Studio(简称 Studio)是一款可以通过 Web 访问的图数据库可视化工具,搭配{{nebula.name}}使用,提供构图、数据导入、编写 nGQL 查询、图探索等一站式服务。详情请参见[什么是 NebulaGraph Studio](../nebula-studio/about-studio/st-ug-what-is-graph-studio.md)。 +NebulaGraph Studio(简称 Studio)是一款可以通过 Web 访问的图数据库可视化工具,搭配 {{nebula.name}} 使用,提供构图、数据导入、编写 nGQL 查询、图探索等一站式服务。详情请参见[什么是 NebulaGraph Studio](../nebula-studio/about-studio/st-ug-what-is-graph-studio.md)。 !!! note - Studio 版本发布节奏独立于{{nebula.name}}内核,其命名方式也不参照内核命名规则,两者兼容对应关系如下表。 + Studio 版本发布节奏独立于 {{nebula.name}} 内核,其命名方式也不参照内核命名规则,两者兼容对应关系如下表。 -|{{nebula.name}}版本|Studio 版本| +| {{nebula.name}} 版本|Studio 版本| |:---|:---| | {{ nebula.tag }} | {{studio.tag}}| @@ -24,95 +24,88 @@ NebulaGraph Dashboard(简称 Dashboard)是一款用于监控{{nebula.name}} |:---|:---| | {{ nebula.tag }} | {{dashboard.tag}}| -## NebulaGraph Stats Exporter - -[nebula-stats-exporter](https://github.com/vesoft-inc/nebula-stats-exporter)将监控数据导入Prometheus。 - -|{{nebula.name}}版本|Stats Exporter 版本| -|:---|:---| -| {{ nebula.tag }} | {{exporter.tag}}| ## NebulaGraph Exchange -NebulaGraph Exchange(简称 Exchange)是一款 Apache Spark™ 应用,用于在分布式环境中将集群中的数据批量迁移到{{nebula.name}}中,能支持多种不同格式的批式数据和流式数据的迁移。详情请参见[什么是 NebulaGraph Exchange](../import-export/nebula-exchange/about-exchange/ex-ug-what-is-exchange.md)。 +NebulaGraph Exchange(简称 Exchange)是一款 Apache Spark™ 应用,用于在分布式环境中将集群中的数据批量迁移到 {{nebula.name}} 中,能支持多种不同格式的批式数据和流式数据的迁移。详情请参见[什么是 NebulaGraph Exchange](../import-export/nebula-exchange/about-exchange/ex-ug-what-is-exchange.md)。 -|{{nebula.name}}版本|Exchange 版本| +| {{nebula.name}} 版本|Exchange 版本| |:---|:---| | {{ nebula.tag }} | {{exchange.tag}} | ## NebulaGraph Operator -NebulaGraph Operator(简称 Operator)是用于在 Kubernetes 系统上自动化部署和运维{{nebula.name}}集群的工具。依托于 Kubernetes 扩展机制,{{nebula.name}}将其运维领域的知识全面注入至 Kubernetes 系统中,让{{nebula.name}}成为真正的云原生图数据库。详情请参考[什么是 NebulaGraph Operator](../nebula-operator/1.introduction-to-nebula-operator.md)。 +NebulaGraph Operator(简称 Operator)是用于在 Kubernetes 系统上自动化部署和运维 {{nebula.name}} 集群的工具。依托于 Kubernetes 扩展机制,{{nebula.name}} 将其运维领域的知识全面注入至 Kubernetes 系统中,让 {{nebula.name}} 成为真正的云原生图数据库。详情请参考[什么是 NebulaGraph Operator](../k8s-operator/1.introduction-to-nebula-operator.md)。 -|{{nebula.name}}版本|Operator 版本| +| {{nebula.name}} 版本|Operator 版本| |:---|:---| | {{ nebula.tag }} | {{operator.tag}}| ## NebulaGraph Importer -NebulaGraph Importer(简称 Importer)是一款{{nebula.name}}的 CSV 文件导入工具。Importer 可以读取本地的 CSV 文件,然后导入数据至{{nebula.name}}中。详情请参见[什么是 NebulaGraph Importer](../import-export/use-importer.md)。 +NebulaGraph Importer(简称 Importer)是一款 {{nebula.name}} 的 CSV 文件导入工具。Importer 可以读取本地的 CSV 文件,然后导入数据至 {{nebula.name}} 中。详情请参见[什么是 NebulaGraph Importer](../import-export/use-importer.md)。 -|{{nebula.name}}版本|Importer 版本| +| {{nebula.name}} 版本|Importer 版本| |:---|:---| | {{ nebula.tag }} | {{importer.tag}}| ## NebulaGraph Spark Connector -NebulaGraph Spark Connector 是一个 Spark 连接器,提供通过 Spark 标准形式读写{{nebula.name}}数据的能力。NebulaGraph Spark Connector 由 Reader 和 Writer 两部分组成。详情请参见[什么是 NebulaGraph Spark Connector](../import-export/nebula-spark-connector.md)。 +NebulaGraph Spark Connector 是一个 Spark 连接器,提供通过 Spark 标准形式读写{{nebula.name}}数据的能力。NebulaGraph Spark Connector 由 Reader 和 Writer 两部分组成。详情请参见[什么是 NebulaGraph Spark Connector](../connector/nebula-spark-connector.md)。 -|{{nebula.name}}版本|Spark Connector 版本| +| {{nebula.name}} 版本|Spark Connector 版本| |:---|:---| | {{ nebula.tag }} | {{sparkconnector.tag}}| ## NebulaGraph Flink Connector -NebulaGraph Flink Connector 是一款帮助 Flink 用户快速访问{{nebula.name}}的连接器,支持从{{nebula.name}}中读取数据,或者将其他外部数据源读取的数据写入{{nebula.name}}。详情请参见[什么是 NebulaGraph Flink Connector](../import-export/nebula-flink-connector.md)。 +NebulaGraph Flink Connector 是一款帮助 Flink 用户快速访问{{nebula.name}}的连接器,支持从{{nebula.name}}中读取数据,或者将其他外部数据源读取的数据写入{{nebula.name}}。详情请参见[什么是 NebulaGraph Flink Connector](../connector/nebula-flink-connector.md)。 -|{{nebula.name}}版本|Flink Connector 版本| +| {{nebula.name}} 版本|Flink Connector 版本| |:---|:---| | {{ nebula.tag }} | {{flinkconnector.tag}}| ## NebulaGraph Algorithm -NebulaGraph Algorithm(简称 Algorithm)是一款基于 [GraphX](https://spark.apache.org/graphx/) 的 Spark 应用程序,通过提交 Spark 任务的形式使用完整的算法工具对{{nebula.name}}数据库中的数据执行图计算,也可以通过编程形式调用 lib 库下的算法针对 DataFrame 执行图计算。详情请参见[什么是 NebulaGraph Algorithm](../graph-computing/nebula-algorithm.md)。 +NebulaGraph Algorithm(简称 Algorithm)是一款基于 [GraphX](https://spark.apache.org/graphx/) 的 Spark 应用程序,通过提交 Spark 任务的形式使用完整的算法工具对 {{nebula.name}} 数据库中的数据执行图计算,也可以通过编程形式调用 lib 库下的算法针对 DataFrame 执行图计算。详情请参见[什么是 NebulaGraph Algorithm](../graph-computing/nebula-algorithm.md)。 -|{{nebula.name}}版本|Algorithm 版本| +| {{nebula.name}} 版本|Algorithm 版本| |:---|:---| | {{ nebula.tag }} | {{algorithm.tag}}| ## NebulaGraph Console -NebulaGraph Console 是{{nebula.name}}的原生 CLI 客户端。如何使用请参见 [NebulaGraph Console](../nebula-console.md)。 +NebulaGraph Console 是 {{nebula.name}} 的原生 CLI 客户端。如何使用请参见 [NebulaGraph Console](../nebula-console.md)。 -|{{nebula.name}}版本|Console 版本| +| {{nebula.name}} 版本|Console 版本| |:---|:---| | {{ nebula.tag }} | {{console.tag}}| ## NebulaGraph Docker Compose -Docker Compose 可以快速部署{{nebula.name}}集群。如何使用请参见 [Docker Compose 部署 NebulaGraph](../2.quick-start/1.quick-start-overview.md)。 +Docker Compose 可以快速部署 {{nebula.name}} 集群。如何使用请参见 [Docker Compose 部署 NebulaGraph](../2.quick-start/1.quick-start-overview.md)。 -|{{nebula.name}}版本|Docker Compose 版本| +| {{nebula.name}} 版本|Docker Compose 版本| |:---|:---| | {{ nebula.tag }} | {{dockercompose.tag}}| ## Backup & Restore -[Backup&Restore](../backup-and-restore/nebula-br/1.what-is-br.md)(简称 BR)是一款命令行界面(CLI)工具,可以帮助备份{{nebula.name}}的图空间数据,或者通过备份文件恢复数据。 +[Backup&Restore](../backup-and-restore/nebula-br/1.what-is-br.md)(简称 BR)是一款命令行界面(CLI)工具,可以帮助备份 {{nebula.name}} 的图空间数据,或者通过备份文件恢复数据。 -|{{nebula.name}}版本|BR 版本| +| {{nebula.name}} 版本|BR 版本| |:---|:---| | {{ nebula.tag }} | {{br.tag}}| ## NebulaGraph Bench -[NebulaGraph Bench](https://github.com/vesoft-inc/nebula-bench/releases/tag/{{bench.tag}}) 用于测试{{nebula.name}}的基线性能数据,使用 LDBC v0.3.3 的标准数据集。 +[NebulaGraph Bench](https://github.com/vesoft-inc/nebula-bench/releases/tag/{{bench.tag}}) 用于测试 {{nebula.name}} 的基线性能数据,使用 LDBC v0.3.3 的标准数据集。 -|{{nebula.name}}版本|Bench 版本| +| {{nebula.name}} 版本|Bench 版本| |:---|:---| | {{ nebula.tag }} | {{bench.tag}}| @@ -122,7 +115,7 @@ Docker Compose 可以快速部署{{nebula.name}}集群。如何使用请参见 [ 选择与内核版本相同`X.Y.*`的最新版本。 -|{{nebula.name}}版本| 语言(commit id) | +| {{nebula.name}} 版本| 语言(commit id) | |:---| :--- | | {{ nebula.tag }}| [C++](https://github.com/vesoft-inc/nebula-cpp/releases/tag/{{cpp.tag}}) | | {{ nebula.tag }}| [Go](https://github.com/vesoft-inc/nebula-go/releases/tag/{{go.tag}}) | diff --git a/docs-2.0-zh/20.appendix/error-code.md b/docs-2.0-zh/20.appendix/error-code.md index 93d2ef1a8f8..fc272e95278 100644 --- a/docs-2.0-zh/20.appendix/error-code.md +++ b/docs-2.0-zh/20.appendix/error-code.md @@ -1,6 +1,6 @@ # 错误码 -{{nebula.name}}运行出现问题时,会返回错误码。本文介绍错误码的详细信息。 +{{nebula.name}} 运行出现问题时,会返回错误码。本文介绍错误码的详细信息。 !!! note diff --git a/docs-2.0-zh/20.appendix/history.md b/docs-2.0-zh/20.appendix/history.md index 6fa3a1e745e..2ddd1089724 100644 --- a/docs-2.0-zh/20.appendix/history.md +++ b/docs-2.0-zh/20.appendix/history.md @@ -1,4 +1,4 @@ -# {{nebula.name}}年表 +# {{nebula.name}} 年表 1. 2018.9.5 由 @[dutor](https://github.com/dutor) 提交了第一行代码。 diff --git a/docs-2.0-zh/20.appendix/learning-path.md b/docs-2.0-zh/20.appendix/learning-path.md index 2c71c22681b..3cab1842026 100644 --- a/docs-2.0-zh/20.appendix/learning-path.md +++ b/docs-2.0-zh/20.appendix/learning-path.md @@ -1,23 +1,23 @@ -# {{nebula.name}}学习路径 +# {{nebula.name}} 学习路径 -本文介绍{{nebula.name}}学习路径,用户可以通过路径中的文档及视频由浅入深地学习{{nebula.name}}。 +本文介绍 {{nebula.name}} 学习路径,用户可以通过路径中的文档及视频由浅入深地学习 {{nebula.name}} 。 ![learning path](https://docs-cdn.nebula-graph.com.cn/figures/learning-path.png) -完成{{nebula.name}}学习后,参加[技能认证](https://www.bilibili.com/video/BV1Ga411x7RE)考试还可以获取认证证书。详情参见下文**通过 CI/CP 考试**。 +完成 {{nebula.name}} 学习后,参加[技能认证](https://www.bilibili.com/video/BV1Ga411x7RE)考试还可以获取认证证书。详情参见下文**通过 CI/CP 考试**。 - + -## 1. 关于{{nebula.name}} +## 1. 关于 {{nebula.name}} -### 1.1 什么是{{nebula.name}}? +### 1.1 什么是 {{nebula.name}} ? | 文档 | 视频 | PPT | | ------------------------------------------------------------ | ------------------------------------------------------------ | -- | -| [什么是{{nebula.name}}](https://docs.nebula-graph.com.cn/{{nebula.release}}/1.introduction/1.what-is-nebula-graph/) | [{{nebula.name}}介绍](https://www.bilibili.com/video/BV1kf4y1v7LM)、[万亿级别的{{nebula.name}}](https://www.bilibili.com/video/BV1aK4y1e7Q4?spm_id_from=333.999.0.0)| [{{nebula.name}} 3年回顾](https://mp.weixin.qq.com/s/25TfLXR89kg0BpiMAbQ_Iw) | +| [什么是 {{nebula.name}} ](https://docs.nebula-graph.com.cn/{{nebula.release}}/1.introduction/1.what-is-nebula-graph/) | [{{nebula.name}} 介绍](https://www.bilibili.com/video/BV1kf4y1v7LM)、[万亿级别的 {{nebula.name}} ](https://www.bilibili.com/video/BV1aK4y1e7Q4?spm_id_from=333.999.0.0)| [{{nebula.name}} 3年回顾](https://mp.weixin.qq.com/s/25TfLXR89kg0BpiMAbQ_Iw) | ### 1.2 图相关术语 @@ -55,27 +55,27 @@ ## 2. 快速入门 -### 2.1 安装{{nebula.name}} +### 2.1 安装 {{nebula.name}} | 文档 | 视频 | | ------------------------------------------------------------ | ------------------------------------------------------------ | | [使用 RPM/DEB 包](https://docs.nebula-graph.com.cn/{{nebula.release}}/4.deployment-and-installation/2.compile-and-install-nebula-graph/2.install-nebula-graph-by-rpm-or-deb/) | - | | [使用 TAR 包](https://docs.nebula-graph.com.cn/{{nebula.release}}/4.deployment-and-installation/2.compile-and-install-nebula-graph/4.install-nebula-graph-from-tar/) | - | | [使用 Docker](https://docs.nebula-graph.com.cn/{{nebula.release}}/4.deployment-and-installation/2.compile-and-install-nebula-graph/3.deploy-nebula-graph-with-docker-compose/) | - | - | [使用源码](https://docs.nebula-graph.com.cn/{{nebula.release}}/4.deployment-and-installation/2.compile-and-install-nebula-graph/1.install-nebula-graph-by-compiling-the-source-code/) | [图数据库入门教程(零)通过编译源码来安装{{nebula.name}}](https://www.bilibili.com/video/BV1YJ411i7Jn?spm_id_from=333.999.0.0) | + | [使用源码](https://docs.nebula-graph.com.cn/{{nebula.release}}/4.deployment-and-installation/2.compile-and-install-nebula-graph/1.install-nebula-graph-by-compiling-the-source-code/) | [图数据库入门教程(零)通过编译源码来安装 {{nebula.name}} ](https://www.bilibili.com/video/BV1YJ411i7Jn?spm_id_from=333.999.0.0) | |-|[如何选择部署方式?](https://www.bilibili.com/video/BV1vy4y1K7S5)| -### 2.2 启动{{nebula.name}} +### 2.2 启动 {{nebula.name}} | 文档 | | ------------------------------------------------------------ | - | [启停{{nebula.name}}](https://docs.nebula-graph.com.cn/{{nebula.release}}/2.quick-start/5.start-stop-service/) | + | [启停 {{nebula.name}} ](https://docs.nebula-graph.com.cn/{{nebula.release}}/2.quick-start/5.start-stop-service/) | -### 2.3 连接{{nebula.name}} +### 2.3 连接 {{nebula.name}} | 文档 | ------------------------------------------------------------ | - | [连接{{nebula.name}}](https://docs.nebula-graph.com.cn/{{nebula.release}}/2.quick-start/3.connect-to-nebula-graph/) | + | [连接 {{nebula.name}} ](https://docs.nebula-graph.com.cn/{{nebula.release}}/2.quick-start/3.connect-to-nebula-graph/) | ### 2.4 使用 nGQL 命令 @@ -91,13 +91,13 @@ | 文档 | | ------------------------------------------------------------ | - | [使用 RPM/DEB 包部署{{nebula.name}}多机集群](https://docs.nebula-graph.com.cn/{{nebula.release}}/4.deployment-and-installation/2.compile-and-install-nebula-graph/deploy-nebula-graph-cluster/) | + | [使用 RPM/DEB 包部署 {{nebula.name}} 多机集群](https://docs.nebula-graph.com.cn/{{nebula.release}}/4.deployment-and-installation/2.compile-and-install-nebula-graph/deploy-nebula-graph-cluster/) | ### 3.2 升级集群版本 | 文档 | | ------------------------------------------------------------ | - | [升级{{nebula.name}}](https://docs.nebula-graph.com.cn/{{nebula.release}}/4.deployment-and-installation/3.upgrade-nebula-graph/upgrade-nebula-comm/) | + | [升级 {{nebula.name}} ](https://docs.nebula-graph.com.cn/{{nebula.release}}/4.deployment-and-installation/3.upgrade-nebula-graph/upgrade-nebula-comm/) | ### 3.3 配置Nebula @@ -186,7 +186,7 @@ | 数据导入 | [Nebula Importer](https://docs.nebula-graph.com.cn/{{nebula.release}}/nebula-importer/use-importer/) | [Nebula Importer](https://www.bilibili.com/video/BV1ny4y1u7i4) | | 数据导入 | [Nebula Spark Connector](https://docs.nebula-graph.com.cn/{{nebula.release}}/nebula-spark-connector/) | - | | 数据导入 | [Nebula Flink Connector](https://docs.nebula-graph.com.cn/{{nebula.release}}/nebula-flink-connector/) | - | - | 数据导入 | [Nebula Exchange 社区版](https://docs.nebula-graph.com.cn/{{nebula.release}}/nebula-exchange/about-exchange/ex-ug-what-is-exchange/) | [{{nebula.name}}数据导入工具——Exchange](https://www.bilibili.com/video/BV1Pq4y177D9)、[Exchange 导入 SST 数据](https://www.bilibili.com/video/BV1y34y1o7Di?) | + | 数据导入 | [Nebula Exchange 社区版](https://docs.nebula-graph.com.cn/{{nebula.release}}/nebula-exchange/about-exchange/ex-ug-what-is-exchange/) | [{{nebula.name}} 数据导入工具——Exchange](https://www.bilibili.com/video/BV1Pq4y177D9)、[Exchange 导入 SST 数据](https://www.bilibili.com/video/BV1y34y1o7Di?) | - 备份与恢复 @@ -194,7 +194,7 @@ | 文档 | 视频 | | ------------------------|------------------------------------ | - |[Nebula BR](https://docs.nebula-graph.com.cn/{{nebula.release}}/backup-and-restore/nebula-br/1.what-is-br/)|[{{nebula.name}}容灾备份工具 nebula-br](https://www.bilibili.com/video/BV11L4y1g7rD)| + |[Nebula BR](https://docs.nebula-graph.com.cn/{{nebula.release}}/backup-and-restore/nebula-br/1.what-is-br/)|[ {{nebula.name}} 容灾备份工具 nebula-br](https://www.bilibili.com/video/BV11L4y1g7rD)| @@ -240,13 +240,13 @@ | 文档 & 视频 | | ------------------------------------------------------------ | | [LDBC 数据导入及 nGQL 实践](https://nebula-graph.com.cn/posts/query-graph-with-ldbc-dataset/) | - | [基于{{nebula.name}}的 Betweenness Centrality 算法](https://nebula-graph.com.cn/posts/introduction-to-betweenness-centrality-algorithm/) | + | [基于 {{nebula.name}} 的 Betweenness Centrality 算法](https://nebula-graph.com.cn/posts/introduction-to-betweenness-centrality-algorithm/) | | [百亿级图数据在快手安全情报的应用与挑战](https://nebula-graph.com.cn/posts/kuaishou-security-intelligence-platform-with-nebula-graph/) | | [美团图数据库平台建设及业务实践](https://nebula-graph.com.cn/posts/meituan-graph-database-platform-practice/) | | [Akulaku 的智能风控实践](https://nebula-graph.com.cn/posts/intelligent-risk-control-practice-akulaku/) | - | [微信使用{{nebula.name}}的定制化开发](https://nebula-graph.com.cn/posts/nebula-graph-for-social-networking/) | - | [知乎使用{{nebula.name}}实践](https://mp.weixin.qq.com/s/K2QinpR5Rplw1teHpHtf4w) | - |[{{nebula.name}}在微众银行的数据治理业务的实践](https://www.bilibili.com/video/BV1Pr4y1F7kA)| + | [微信使用 {{nebula.name}} 的定制化开发](https://nebula-graph.com.cn/posts/nebula-graph-for-social-networking/) | + | [知乎使用 {{nebula.name}} 实践](https://mp.weixin.qq.com/s/K2QinpR5Rplw1teHpHtf4w) | + |[ {{nebula.name}} 在微众银行的数据治理业务的实践](https://www.bilibili.com/video/BV1Pr4y1F7kA)| |[图数据库在安全风控场景的应用 @BOSS 直聘](https://www.bilibili.com/video/BV1Rh41117G9)| |[更多文档](https://nebula-graph.com.cn/posts/) 、[视频](https://space.bilibili.com/472621355/channel/series) | ## 6. 常见问题 @@ -258,36 +258,36 @@ ## 7. 实操作业 - 用户可以通过完成以下实操作业来检测是否玩转{{nebula.name}}。 + 用户可以通过完成以下实操作业来检测是否玩转 {{nebula.name}} 。 | 作业内容 | 参考 | | ------------------------------------------------------- | ------------------------------------------------------------ | - | 编译内核 | [使用源码安装{{nebula.name}}](https://docs.nebula-graph.com.cn/{{nebula.release}}/4.deployment-and-installation/2.compile-and-install-nebula-graph/1.install-nebula-graph-by-compiling-the-source-code/) | + | 编译内核 | [使用源码安装 {{nebula.name}} ](https://docs.nebula-graph.com.cn/{{nebula.release}}/4.deployment-and-installation/2.compile-and-install-nebula-graph/1.install-nebula-graph-by-compiling-the-source-code/) | | 部署可视化工具 Studio、Dashboard、Explorer | [部署 Studio](https://docs.nebula-graph.com.cn/{{nebula.release}}/nebula-studio/deploy-connect/st-ug-deploy/)、[部署 Dashboard](https://docs.nebula-graph.com.cn/{{nebula.release}}/nebula-dashboard/2.deploy-dashboard/)、[部署 Explorer](https://docs.nebula-graph.com.cn/{{nebula.release}}/nebula-explorer/deploy-connect/ex-ug-deploy/) | - | 使用 K6 压测{{nebula.name}} | [K6 在{{nebula.name}}上的压测实践](https://nebula-graph.com.cn/posts/practice-k6-at-nebula-graph/) | + | 使用 K6 压测 {{nebula.name}} | [K6 在 {{nebula.name}} 上的压测实践](https://nebula-graph.com.cn/posts/practice-k6-at-nebula-graph/) | | 导入 LDBC 数据 | [LDBC 数据导入及 nGQL 实践](https://mp.weixin.qq.com/s/tbLGuuX6vNzLIw6o8ZGKpw) | | 查询 LDBC 数据(点查、K度邻居查询、路径查询、子图查询) | [LDBC](chrome-extension://gfbliohnnapiefjpjlpjnehglfpaknnc/pages/pdf_viewer.html?r=http://ldbcouncil.org/ldbc_snb_docs/ldbc-snb-specification.pdf) 和 [interactive-short-1.cypher](https://github.com/ldbc/ldbc_snb_interactive/blob/main/cypher/queries/interactive-short-1.cypher) | ## 8. 通过 CI/CP 考试 -{{nebula.name}}提供2个不同等级的图数据库技能认证考试: +{{nebula.name}} 提供2个不同等级的图数据库技能认证考试: -- NebulaGraph Certified Insider (NGCI):通过该考试证明用户对图数据库及{{nebula.name}}有基础的了解,是合格的{{nebula.name}}使用者。 +- NebulaGraph Certified Insider (NGCI):通过该考试证明用户对图数据库及 {{nebula.name}} 有基础的了解,是合格的 {{nebula.name}} 使用者。 -- NebulaGraph Certified Professional (NGCP):通过该考试证明用户对图数据库及{{nebula.name}}有深入的了解,是{{nebula.name}}专业人士。 +- NebulaGraph Certified Professional (NGCP):通过该考试证明用户对图数据库及 {{nebula.name}} 有深入的了解,是 {{nebula.name}} 专业人士。 -考试用书[《分布式图数据库{{nebula.name}}完全指南》](https://docs.nebula-graph.com.cn/site/pdf/NebulaGraph-book.pdf) +考试用书[《分布式图数据库 {{nebula.name}} 完全指南》](https://docs.nebula-graph.com.cn/site/pdf/NebulaGraph-book.pdf) -单击[{{nebula.name}}个人技能认证](https://discuss.nebula-graph.com.cn/t/topic/8728)查看考试说明及入口。 +单击[ {{nebula.name}} 个人技能认证](https://discuss.nebula-graph.com.cn/t/topic/8728)查看考试说明及入口。 ## 参考文档 -- 有关{{nebula.name}}的原理介绍,参见[分布式图数库论文](https://arxiv.org/pdf/2206.07278.pdf)。 +- 有关 {{nebula.name}} 的原理介绍,参见[分布式图数库论文](https://arxiv.org/pdf/2206.07278.pdf)。 -- 有关 [{{nebula.name}}索引](../3.ngql-guide/14.native-index-statements/README.md)原理的介绍,参见[分布式图数库论文](https://arxiv.org/pdf/2206.07278.pdf)中的 2.4 节。 +- 有关 [{{nebula.name}} 索引](../3.ngql-guide/14.native-index-statements/README.md)原理的介绍,参见[分布式图数库论文](https://arxiv.org/pdf/2206.07278.pdf)中的 2.4 节。 -- 有关{{nebula.name}}语言的概述,参见[分布式图数库论文](https://arxiv.org/pdf/2206.07278.pdf)中的 2.8 节。 +- 有关 {{nebula.name}} 语言的概述,参见[分布式图数库论文](https://arxiv.org/pdf/2206.07278.pdf)中的 2.8 节。 diff --git a/docs-2.0-zh/20.appendix/mind-map.md b/docs-2.0-zh/20.appendix/mind-map.md index eff13e9f957..2c03d446091 100644 --- a/docs-2.0-zh/20.appendix/mind-map.md +++ b/docs-2.0-zh/20.appendix/mind-map.md @@ -1,8 +1,8 @@ # 思维导图 -以下给出{{nebula.name}}结构框架的思维导图,用户可以[点击](https://www.mubucm.com/doc/34QEdbrFRwZ) 并查看大图。 +以下给出 {{nebula.name}} 结构框架的思维导图,用户可以[点击](https://www.mubucm.com/doc/34QEdbrFRwZ) 并查看大图。 -![{{nebula.name}}](https://docs-cdn.nebula-graph.com.cn/figures/Unknown-2.png) +![{{nebula.name}} ](https://docs-cdn.nebula-graph.com.cn/figures/Unknown-2.png) 以下给出 nGQL 的思维导图,用户可以[点击](https://www.mubucm.com/doc/3heEUeLwbMZ) 并查看大图。 diff --git a/docs-2.0-zh/20.appendix/port-guide.md b/docs-2.0-zh/20.appendix/port-guide.md index 93d224f93ca..6367828a775 100644 --- a/docs-2.0-zh/20.appendix/port-guide.md +++ b/docs-2.0-zh/20.appendix/port-guide.md @@ -1,25 +1,25 @@ # 产品端口全集 -以下是{{nebula.name}}内核及周边工具使用的默认端口信息: +以下是 {{nebula.name}} 内核及周边工具使用的默认端口信息: | 序号 | 所属产品/服务 | 类型 | 默认端口 | 说明 | | :--- | :--------------------- | :--- | :---------------------------- | :----------------------------------------------------------- | -| 1 | {{nebula.name}} | TCP | 9669 | Graph 服务的 RPC 守护进程监听端口。通常用于客户端连接Graph服务。 | -| 2 | {{nebula.name}} | TCP | 19669 | Graph 服务的 HTTP 端口。 | -| 3 | {{nebula.name}} | TCP | 19670 | Graph 服务的 HTTP/2 端口。(3.x 后已弃用该端口) | -| 4 | {{nebula.name}} | TCP | 9559、9560 | `9559`是 Meta 服务的 RPC 守护进程监听端口。通常由 Graph 服务和 Storage 服务发起请求,用于获取和更新图数据库的元数据信息。
同时还会使用相邻的`+1`(`9560`)端口用于 Meta 服务之间的 Raft 通信。 | -| 5 | {{nebula.name}} | TCP | 19559 | Meta 服务的 HTTP 端口。 | -| 6 | {{nebula.name}} | TCP | 19560 | Meta 服务的 HTTP/2 端口。(3.x 后已弃用该端口) | -| 7 | {{nebula.name}} | TCP | 9779、9778、9780 | `9779`是 Storage 服务的 RPC 守护进程监听端口。通常由 Graph 服务发起请求,用于执行数据存储相关的操作,例如读取、写入或删除数据。
同时还会使用相邻的`-1`(`9778`)和`+1`(`9780`)端口。
`9778`:Admin 服务(Storage 接收 Meta 命令的服务)占用的端口。
`9780`:Storage 服务之间的 Raft 通信端口。 | -| 8 | {{nebula.name}} | TCP | 19779 | Storage 服务的 HTTP 端口。 | -| 9 | {{nebula.name}} | TCP | 19780 | Storage 服务的 HTTP/2 端口。(3.x 后已弃用该端口) | -| 10 | {{nebula.name}} | TCP | 8888 | 备份和恢复功能的 Agent 服务端口。Agent 是集群中每台机器的一个守护进程,用于启停{{nebula.name}}服务和上传、下载备份文件。 | -| 11 | {{nebula.name}} | TCP | 9789、9788、9790 | `9789`是全文索引中 Raft Listener 的端口,从 Storage 服务读取数据,然后将它们写入 Elasticsearch 集群。
也是集群间数据同步中 Storage Listener 的端口。用于同步主集群的 Storage 数据。
同时还会使用相邻的`-1`(`9788`)和`+1`(`9790`)端口。
`9788`:内部端口。
`9790`:Raft 通信端口。 | -| 12 | {{nebula.name}} | TCP | 9200 | {{nebula.name}}使用该端口与 Elasticsearch 进行 HTTP 通信,以执行全文搜索查询和管理全文索引。 | -| 13 | {{nebula.name}} | TCP | 9569、9568、9570| `9569`是集群间数据同步功能中 Meta Listener 的端口,用于同步主集群的 Meta 数据。
同时还会使用相邻的`-1`(`9568`)和`+1`(`9570`)端口。
`9568`:内部端口。
`9570`:Raft 通信端口。 | -| 14 | {{nebula.name}} | TCP | 9889、9888、9890 | `9889`是集群间数据同步功能中 Drainer 服务端口。用于同步 Storage、Meta 数据给从集群。
同时还会使用相邻的`-1`(`9888`)和`+1`(`9890`)端口。
`9888`:内部端口。
`9890`:Raft 通信端口。| +| 1 | {{nebula.name}} | TCP | 9669 | Graph 服务的 RPC 守护进程监听端口。通常用于客户端连接Graph服务。 | +| 2 | {{nebula.name}} | TCP | 19669 | Graph 服务的 HTTP 端口。 | +| 3 | {{nebula.name}} | TCP | 19670 | Graph 服务的 HTTP/2 端口。(3.x 后已弃用该端口) | +| 4 | {{nebula.name}} | TCP | 9559、9560 | `9559`是 Meta 服务的 RPC 守护进程监听端口。通常由 Graph 服务和 Storage 服务发起请求,用于获取和更新图数据库的元数据信息。
同时还会使用相邻的`+1`(`9560`)端口用于 Meta 服务之间的 Raft 通信。 | +| 5 | {{nebula.name}} | TCP | 19559 | Meta 服务的 HTTP 端口。 | +| 6 | {{nebula.name}} | TCP | 19560 | Meta 服务的 HTTP/2 端口。(3.x 后已弃用该端口) | +| 7 | {{nebula.name}} | TCP | 9779、9778、9780 | `9779`是 Storage 服务的 RPC 守护进程监听端口。通常由 Graph 服务发起请求,用于执行数据存储相关的操作,例如读取、写入或删除数据。
同时还会使用相邻的`-1`(`9778`)和`+1`(`9780`)端口。
`9778`:Admin 服务(Storage 接收 Meta 命令的服务)占用的端口。
`9780`:Storage 服务之间的 Raft 通信端口。 | +| 8 | {{nebula.name}} | TCP | 19779 | Storage 服务的 HTTP 端口。 | +| 9 | {{nebula.name}} | TCP | 19780 | Storage 服务的 HTTP/2 端口。(3.x 后已弃用该端口) | +| 10 | {{nebula.name}} | TCP | 8888 | 备份和恢复功能的 Agent 服务端口。Agent 是集群中每台机器的一个守护进程,用于启停 {{nebula.name}} 服务和上传、下载备份文件。 | +| 11 | {{nebula.name}} | TCP | 9789、9788、9790 | `9789`是全文索引中 Raft Listener 的端口,从 Storage 服务读取数据,然后将它们写入 Elasticsearch 集群。
也是集群间数据同步中 Storage Listener 的端口。用于同步主集群的 Storage 数据。
同时还会使用相邻的`-1`(`9788`)和`+1`(`9790`)端口。
`9788`:内部端口。
`9790`:Raft 通信端口。 | +| 12 | {{nebula.name}} | TCP | 9200 | {{nebula.name}} 使用该端口与 Elasticsearch 进行 HTTP 通信,以执行全文搜索查询和管理全文索引。 | +| 13 | {{nebula.name}} | TCP | 9569、9568、9570| `9569`是集群间数据同步功能中 Meta Listener 的端口,用于同步主集群的 Meta 数据。
同时还会使用相邻的`-1`(`9568`)和`+1`(`9570`)端口。
`9568`:内部端口。
`9570`:Raft 通信端口。 | +| 14 | {{nebula.name}} | TCP | 9889、9888、9890 | `9889`是集群间数据同步功能中 Drainer 服务端口。用于同步 Storage、Meta 数据给从集群。
同时还会使用相邻的`-1`(`9888`)和`+1`(`9890`)端口。
`9888`:内部端口。
`9890`:Raft 通信端口。| | 15 | NebulaGraph Studio | TCP | 7001 | Studio 提供 Web 服务占用端口。 | -| 16 | NebulaGraph Dashboard | TCP | 8090 | Nebula HTTP Gateway 依赖服务端口。为集群服务提供 HTTP 接口,执行 nGQL 语句与{{nebula.name}}数据库进行交互。 | +| 16 | NebulaGraph Dashboard | TCP | 8090 | Nebula HTTP Gateway 依赖服务端口。为集群服务提供 HTTP 接口,执行 nGQL 语句与 {{nebula.name}} 数据库进行交互。 | | 17 | NebulaGraph Dashboard | TCP | 9200 | Nebula Stats Exporter 依赖服务端口。收集集群的性能指标,包括服务 IP 地址、版本和监控指标(例如查询数量、查询延迟、心跳延迟 等)。 | | 18 | NebulaGraph Dashboard | TCP | 9100 | Node Exporter 依赖服务端口。收集集群中机器的资源信息,包括 CPU、内存、负载、磁盘和流量。 | | 19 | NebulaGraph Dashboard | TCP | 9090 | Prometheus 服务的端口。存储监控数据的时间序列数据库。 | diff --git a/docs-2.0-zh/20.appendix/release-notes/nebula-comm-release-note.md b/docs-2.0-zh/20.appendix/release-notes/nebula-comm-release-note.md index 428a7169e22..4cc71fc9222 100644 --- a/docs-2.0-zh/20.appendix/release-notes/nebula-comm-release-note.md +++ b/docs-2.0-zh/20.appendix/release-notes/nebula-comm-release-note.md @@ -1,4 +1,4 @@ -# {{nebula.name}} release notes +# {{nebula.name}} 更新说明 ## v3.6.0 @@ -8,8 +8,8 @@ 涉及变更内容如下: - - 原有的全文索引功能由调用 Elasticsearch 的 Term-level queries 改为 Full text queries 方式。 - - 变更后除了支持原有的通配符、正则、模糊匹配等方式(但语法发生变化),还增加了对分词的支持(依赖 Elasticsearch 自身使用的分词器),查询结果包含评分结果。更多语法请参见 [Elasticsearch 官方文档](https://www.elastic.co/guide/en/elasticsearch/reference/current/full-text-queries.html)。 + - 原有的全文索引功能由调用 Elasticsearch 的 Term-level queries 改为 Full text queries 方式。 + - 变更后除了支持原有的通配符、正则、模糊匹配等方式(但语法发生变化),还增加了对分词的支持(依赖 Elasticsearch 自身使用的分词器),查询结果包含评分结果。更多语法请参见 [Elasticsearch 官方文档](https://www.elastic.co/guide/en/elasticsearch/reference/current/full-text-queries.html)。 - 增强 diff --git a/docs-2.0-zh/20.appendix/release-notes/studio-release-note.md b/docs-2.0-zh/20.appendix/release-notes/studio-release-note.md index 104639c34e3..4b0109294f4 100644 --- a/docs-2.0-zh/20.appendix/release-notes/studio-release-note.md +++ b/docs-2.0-zh/20.appendix/release-notes/studio-release-note.md @@ -1,4 +1,4 @@ -# NebulaGraph Studio 版本更新说明 +# NebulaGraph Studio 更新说明 ## v3.8.0 @@ -36,4 +36,4 @@ - 导入页面支持配置更多导入参数,如并发数、重试次数等。 - 支持重跑任务。 - 支持任务保存为草稿。 - - 支持 ARM 架构。 + - 支持在 ARM 架构的 Docker 容器内运行 Studio。 diff --git a/docs-2.0-zh/3.ngql-guide/1.nGQL-overview/1.overview.md b/docs-2.0-zh/3.ngql-guide/1.nGQL-overview/1.overview.md index 4d93d232488..afea95fb776 100644 --- a/docs-2.0-zh/3.ngql-guide/1.nGQL-overview/1.overview.md +++ b/docs-2.0-zh/3.ngql-guide/1.nGQL-overview/1.overview.md @@ -1,8 +1,8 @@ # 什么是 nGQL -nGQL是{{nebula.name}}使用的的声明式图查询语言,支持灵活高效的[图模式](3.graph-patterns.md),而且 nGQL 是为开发和运维人员设计的类 SQL 查询语言,易于学习。 +nGQL是 {{nebula.name}} 使用的的声明式图查询语言,支持灵活高效的[图模式](3.graph-patterns.md),而且 nGQL 是为开发和运维人员设计的类 SQL 查询语言,易于学习。 -nGQL 是一个进行中的项目,会持续发布新特性和优化,因此可能会出现语法和实际操作不一致的问题,如果遇到此类问题,请提交 [issue](https://github.com/vesoft-inc/nebula/issues) 通知{{nebula.name}}团队。{{nebula.name}} 3.0 及更新版本正在支持 [openCypher 9](https://www.opencypher.org/resources)。 +nGQL 是一个进行中的项目,会持续发布新特性和优化,因此可能会出现语法和实际操作不一致的问题,如果遇到此类问题,请提交 [issue](https://github.com/vesoft-inc/nebula/issues) 通知 {{nebula.name}} 团队。 {{nebula.name}} 3.0 及更新版本正在支持 [openCypher 9](https://www.opencypher.org/resources)。 ## nGQL 可以做什么 @@ -24,7 +24,7 @@ nGQL 是一个进行中的项目,会持续发布新特性和优化,因此可 ## 示例数据 Basketballplayer -用户可以下载{{nebula.name}}示例数据 [basketballplayer 文件](https://docs.nebula-graph.io/2.0/basketballplayer-2.X.ngql),然后使用 [NebulaGraph Console](../../2.quick-start/3.quick-start-on-premise/3.connect-to-nebula-graph.md),使用选项`-f`执行脚本。 +用户可以下载 {{nebula.name}} 示例数据 [basketballplayer 文件](https://docs.nebula-graph.io/2.0/basketballplayer-2.X.ngql),然后使用 [NebulaGraph Console](../../2.quick-start/3.quick-start-on-premise/3.connect-to-nebula-graph.md),使用选项`-f`执行脚本。 !!! note @@ -33,7 +33,7 @@ nGQL 是一个进行中的项目,会持续发布新特性和优化,因此可 ## 占位标识符和占位符值 -{{nebula.name}}查询语言 nGQL 参照以下标准设计: +{{nebula.name}} 查询语言 nGQL 参照以下标准设计: - (Draft) ISO/IEC JTC1 N14279 SC 32 - Database_Languages - GQL @@ -80,7 +80,7 @@ nebula> CREATE TAG IF NOT EXISTS player(name string, age int); ### 原生 nGQL 和 openCypher 的关系 -原生 nGQL 是由{{nebula.name}}自行创造和实现的图查询语言。openCypher 是由 openCypher Implementers Group 组织所开源和维护的图查询语言,最新版本为 openCypher 9。 +原生 nGQL 是由 {{nebula.name}} 自行创造和实现的图查询语言。openCypher 是由 openCypher Implementers Group 组织所开源和维护的图查询语言,最新版本为 openCypher 9。 由于 nGQL 语言部分兼容了 openCypher,这个部分在本文中称为 openCypher 兼容语句。 @@ -197,7 +197,7 @@ Feature: Comparison of where clause |`Given`|描述执行示例语句的前提条件。| |`Scenario`|描述具体场景。如果场景之前有`@skip`标识,表示这个场景下示例语句可能无法正常工作,请不要在生产环境中使用该示例语句。| |`When`|描述要执行的 nGQL 示例语句。可以是`executing query`或`profiling query`。| -|`Then`|描述执行`When`内语句的预期返回结果。如果返回结果和文档不同,请提交 [issue](https://github.com/vesoft-inc/nebula/issues) 通知{{nebula.name}}团队。| +|`Then`|描述执行`When`内语句的预期返回结果。如果返回结果和文档不同,请提交 [issue](https://github.com/vesoft-inc/nebula/issues) 通知 {{nebula.name}} 团队。| |`And`|描述执行`When`内语句的副作用或执行计划。| | `@skip` | 跳过这个示例。通常表示测试代码还没有准备好。 | @@ -211,6 +211,6 @@ Feature: Comparison of where clause 不支持。也没有计划。 -{{nebula.name}}的数据模型是属性图,是一个强 Schema 系统,不支持 RDF 标准。 +{{nebula.name}} 的数据模型是属性图,是一个强 Schema 系统,不支持 RDF 标准。 nGQL 也不支持 SPARQL 和 GraphQL。 diff --git a/docs-2.0-zh/3.ngql-guide/1.nGQL-overview/3.graph-patterns.md b/docs-2.0-zh/3.ngql-guide/1.nGQL-overview/3.graph-patterns.md index f6cff457e25..79966a05a13 100644 --- a/docs-2.0-zh/3.ngql-guide/1.nGQL-overview/3.graph-patterns.md +++ b/docs-2.0-zh/3.ngql-guide/1.nGQL-overview/3.graph-patterns.md @@ -1,6 +1,6 @@ # 模式 -模式(pattern)和图模式匹配,是图查询语言的核心功能,本文介绍{{nebula.name}}设计的各种模式,部分还未实现。 +模式(pattern)和图模式匹配,是图查询语言的核心功能,本文介绍 {{nebula.name}} 设计的各种模式,部分还未实现。 ## 单点模式 @@ -130,22 +130,20 @@ 该模式描述了 4 点 3 边、5 点 4 边或 6 点 5 边组成的图。 -也可以忽略最小长度,只指定最大长度,例如: +也可以指定长度范围的上限或下限,也可以两个都不指定,例如: ```ngql -(a)-[*..5]->(b) +(a)-[*..5]->(b) // 最小长度为 1,最大长度为 5。 +(a)-[*3..]->(b) // 最小长度为 3,最大长度为无穷大。 +(a)-[*]->(b) // 最小长度为 1,最大长度为无穷大。 ``` -!!! note - - 必须指定最大长度,**不支持**仅指定最小长度(`(a)-[*3..]->(b)`)或都不指定(`(a)-[*]->(b)`)。 - ## 路径变量 一系列连接的点和边称为`路径`。nGQL 允许使用变量来命名路径,例如: ```ngql -p = (a)-[*3..5]->(b) +p = (a)-[*3..5]->(b) // 从 a 到 b, 最小长度为 1,最大长度为 5 的路径 ``` 可以在 MATCH 语句中使用路径变量。 diff --git a/docs-2.0-zh/3.ngql-guide/1.nGQL-overview/comments.md b/docs-2.0-zh/3.ngql-guide/1.nGQL-overview/comments.md index 583cfb8e08d..1d165da02d3 100644 --- a/docs-2.0-zh/3.ngql-guide/1.nGQL-overview/comments.md +++ b/docs-2.0-zh/3.ngql-guide/1.nGQL-overview/comments.md @@ -5,7 +5,6 @@ ## Examples ```ngql -nebula> # 这行什么都不做并返回报错`StatementEmpty`。 nebula> RETURN 1+1; # 这条注释延续到行尾。 nebula> RETURN 1+1; // 这条注释延续到行尾。 nebula> RETURN 1 /* 这是一条行内注释 */ + 1 == 2; @@ -15,7 +14,10 @@ nebula> RETURN 11 + \ */ 12; ``` -nGQL 语句中的反斜线(\)代表换行。 +!!! note + + - nGQL 语句中的反斜线(\)代表换行。 + - 如果 nGQL 语句以`#`或者`//`开头,不会执行该行命令并且会返回提示`StatementEmpty`。 ## openCypher 兼容性 diff --git a/docs-2.0-zh/3.ngql-guide/10.tag-statements/1.create-tag.md b/docs-2.0-zh/3.ngql-guide/10.tag-statements/1.create-tag.md index 678a5a02e2a..5ca36b9c8ba 100644 --- a/docs-2.0-zh/3.ngql-guide/10.tag-statements/1.create-tag.md +++ b/docs-2.0-zh/3.ngql-guide/10.tag-statements/1.create-tag.md @@ -31,11 +31,11 @@ CREATE TAG [IF NOT EXISTS] |参数|说明| |:---|:---| |`IF NOT EXISTS`|检测待创建的 Tag 是否存在,只有不存在时,才会创建 Tag。仅检测 Tag 的名称,不会检测具体属性。| -|``|1、每个图空间内的 Tag 必须是唯一的。
2、Tag 名称设置后无法修改。
3、不能以数字开头;支持 1~4 字节的 UTF-8 编码字符,包括英文字母(区分大小写)、数字、中文等,但是不包括除下划线外的特殊字符;使用特殊字符、保留关键字或数字开头时,需要用反引号(\`)包围且不能使用英文句号(`.`)。详情参见[关键字和保留字](../../3.ngql-guide/1.nGQL-overview/keywords-and-reserved-words.md)。
**注意**:如果以中文命名 Tag,报`SyntaxError`错误时,需使用反引号(\`)包围中文字符。| +|``|1、每个图空间内的 Tag 必须是唯一的。
2、Tag 名称设置后无法修改。
3、默认情况下,仅支持 1~4 字节的 UTF-8 编码字符,包括英文字母(区分大小写)、数字、中文等。不能包含下划线(_)以外的特殊字符,且不能以数字开头。
4、如果需要使用特殊字符、保留关键字或者以数字开头,请使用反引号(\`)包围整个名称。反引号中不能包含英文句号(`.`)。详情参见[关键字和保留字](../../3.ngql-guide/1.nGQL-overview/keywords-and-reserved-words.md)。
**注意**:
1、如果以中文命名 Tag,报`SyntaxError`错误时,需使用反引号(\`)包围中文字符。
2、名称中如需包含反引号(\`),使用反斜杠(\)来转义反引号(\`),如:\\\`;如需包含反斜杠(\),反斜杠(\)本身也需转义,如:\\\。 | |``|属性名称。每个 Tag 中的属性名称必须唯一。属性的命名规则与 Tag 相同。| |``|属性的数据类型,目前支持[数值](../3.data-types/1.numeric.md)、[布尔](../3.data-types/2.boolean.md)、[字符串](../3.data-types/3.string.md)以及[日期与时间](../3.data-types/4.date-and-time.md)。| -|`NULL \| NOT NULL`|指定属性值是否支持为`NULL`。默认值为`NULL`。指定`NOT NULL`且没有指定`DEFAULT`值时,插入数据必须指定值;同时指定`NOT NULL`和`DEFAULT`值时,插入数据如果没有指定值,则默认插入`DEFAULT`值。| -|`DEFAULT`|指定属性的默认值。默认值可以是一个文字值或{{nebula.name}}支持的表达式。如果插入点时没有指定某个属性的值,则使用默认值。| +|`NULL | NOT NULL`|指定属性值是否支持为`NULL`。默认值为`NULL`。指定`NOT NULL`且没有指定`DEFAULT`值时,插入数据必须指定值;同时指定`NOT NULL`和`DEFAULT`值时,插入数据如果没有指定值,则默认插入`DEFAULT`值。| +|`DEFAULT`|指定属性的默认值。默认值可以是一个文字值或 {{nebula.name}} 支持的表达式。如果插入点时没有指定某个属性的值,则使用默认值。| |`COMMENT`|对单个属性或 Tag 的描述。最大为 256 字节。默认无描述。| |`TTL_DURATION`|指定时间戳差值,单位:秒。时间戳差值必须为 64 位非负整数。属性值和时间戳差值之和如果小于当前时间戳,属性就会过期。默认值为`0`,表示属性永不过期。| |`TTL_COL`|指定要设置存活时间的属性。属性的数据类型必须是`int`或者`timestamp`。一个 Tag 只能指定一个字段为`TTL_COL`。更多 TTL 的信息请参见 [TTL](../8.clauses-and-options/ttl-options.md)。| diff --git a/docs-2.0-zh/3.ngql-guide/10.tag-statements/improve-query-by-tag-index.md b/docs-2.0-zh/3.ngql-guide/10.tag-statements/improve-query-by-tag-index.md index 4bbd6777d02..58b4d141fef 100644 --- a/docs-2.0-zh/3.ngql-guide/10.tag-statements/improve-query-by-tag-index.md +++ b/docs-2.0-zh/3.ngql-guide/10.tag-statements/improve-query-by-tag-index.md @@ -2,7 +2,7 @@ 在 openCypher 中,有增加标签(`SET label`)和移除标签(`REMOVE label`)的功能,可以用于加速查询或者标记过程。 -在{{nebula.name}}中,可以通过 Tag 变相实现相同操作,创建 Tag 并将 Tag 插入到已有的点上,就可以根据 Tag 名称快速查找点,也可以通过`DELETE TAG`删除某些点上不再需要的 Tag。 +在 {{nebula.name}} 中,可以通过 Tag 变相实现相同操作,创建 Tag 并将 Tag 插入到已有的点上,就可以根据 Tag 名称快速查找点,也可以通过`DELETE TAG`删除某些点上不再需要的 Tag。 ## 示例 diff --git a/docs-2.0-zh/3.ngql-guide/11.edge-type-statements/1.create-edge.md b/docs-2.0-zh/3.ngql-guide/11.edge-type-statements/1.create-edge.md index 3c3e85c7a94..3c69242d9e9 100644 --- a/docs-2.0-zh/3.ngql-guide/11.edge-type-statements/1.create-edge.md +++ b/docs-2.0-zh/3.ngql-guide/11.edge-type-statements/1.create-edge.md @@ -31,11 +31,11 @@ CREATE EDGE [IF NOT EXISTS] |参数|说明| |:---|:---| |`IF NOT EXISTS`|检测待创建的 Edge type 是否存在,只有不存在时,才会创建 Edge type。仅检测 Edge type 的名称,不会检测具体属性。| -|``|1、每个图空间内的 Edge type 必须是唯一的。
2、Edge type 名称设置后无法修改。
3、不能以数字开头;支持 1~4 字节的 UTF-8 编码字符,包括英文字母(区分大小写)、数字、中文等,但是不包括除下划线外的特殊字符;使用特殊字符、保留关键字或数字开头时,需要用反引号(\`)包围且不能使用英文句号(`.`)。详情参见[关键字和保留字](../../3.ngql-guide/1.nGQL-overview/keywords-and-reserved-words.md)。
**注意**:如果以中文命名 Edge type,报`SyntaxError`错误时,需使用反引号(\`)包围中文字符。| +|``|1、每个图空间内的 Edge type 必须是唯一的。
2、Edge type 名称设置后无法修改。
3、默认情况下,仅支持 1~4 字节的 UTF-8 编码字符,包括英文字母(区分大小写)、数字、中文等。不能包含下划线(_)以外的特殊字符,且不能以数字开头。
4、如果需要使用特殊字符、保留关键字或者以数字开头,请使用反引号(\`)包围整个名称。反引号中不能包含英文句号(`.`)。详情参见[关键字和保留字](../../3.ngql-guide/1.nGQL-overview/keywords-and-reserved-words.md)。
**注意**:
1、如果以中文命名 Edge type,报`SyntaxError`错误时,需使用反引号(\`)包围中文字符。
2、名称中如需包含反引号(\`),使用反斜杠(\)来转义反引号(\`),如:\\\`;如需包含反斜杠(\),反斜杠(\)本身也需转义,如:\\\。| |``|属性名称。每个 Edge type 中的属性名称必须唯一。属性的命名规则与 Edge type 相同。| |``|属性的数据类型,目前支持[数值](../3.data-types/1.numeric.md)、[布尔](../3.data-types/2.boolean.md)、[字符串](../3.data-types/3.string.md)以及[日期与时间](../3.data-types/4.date-and-time.md)。| -|`NULL \| NOT NULL`|指定属性值是否支持为`NULL`。默认值为`NULL`。当指定属性值为`NOT NULL`时,必需指定属性的默认值,也就是`DEFAULT`的值。| -|`DEFAULT`|指定属性的默认值。默认值可以是一个文字值或{{nebula.name}}支持的表达式。如果插入边时没有指定某个属性的值,则使用默认值。| +|`NULL | NOT NULL`|指定属性值是否支持为`NULL`。默认值为`NULL`。当指定属性值为`NOT NULL`时,必需指定属性的默认值,也就是`DEFAULT`的值。| +|`DEFAULT`|指定属性的默认值。默认值可以是一个文字值或 {{nebula.name}} 支持的表达式。如果插入边时没有指定某个属性的值,则使用默认值。| |`COMMENT`|对单个属性或 Edge type 的描述。最大为 256 字节。默认无描述。| |`TTL_DURATION`|指定时间戳差值,单位:秒。时间戳差值必须为 64 位非负整数。属性值和时间戳差值之和如果小于当前时间戳,属性就会过期。默认值为`0`,表示属性永不过期。| |`TTL_COL`|指定要设置存活时间的属性。属性的数据类型必须是`int`或者`timestamp`。一个 Edge type 只能指定一个字段为`TTL_COL`。更多 TTL 的信息请参见 [TTL](../8.clauses-and-options/ttl-options.md)。| diff --git a/docs-2.0-zh/3.ngql-guide/12.vertex-statements/1.insert-vertex.md b/docs-2.0-zh/3.ngql-guide/12.vertex-statements/1.insert-vertex.md index cc2886b50b8..11573892db4 100644 --- a/docs-2.0-zh/3.ngql-guide/12.vertex-statements/1.insert-vertex.md +++ b/docs-2.0-zh/3.ngql-guide/12.vertex-statements/1.insert-vertex.md @@ -1,6 +1,6 @@ # INSERT VERTEX -`INSERT VERTEX`语句可以在{{nebula.name}}实例的指定图空间中插入一个或多个点。 +`INSERT VERTEX`语句可以在 {{nebula.name}} 实例的指定图空间中插入一个或多个点。 ## 前提条件 @@ -61,7 +61,7 @@ prop_value_list: - `property_name`:需要设置的属性名称。 -- `vid`:点 ID。在{{nebula.name}} {{ nebula.release }} 中支持字符串和整数,需要在创建图空间时设置,详情请参见 [CREATE SPACE](../9.space-statements/1.create-space.md)。 +- `vid`:点 ID。在 {{nebula.name}} {{ nebula.release }} 中支持字符串和整数,需要在创建图空间时设置,详情请参见 [CREATE SPACE](../9.space-statements/1.create-space.md)。 - `property_value`:根据`prop_name_list`填写属性值。如果没有填写属性值,而 Tag 中对应的属性设置为`NOT NULL`,会返回错误。详情请参见 [CREATE TAG](../10.tag-statements/1.create-tag.md)。 diff --git a/docs-2.0-zh/3.ngql-guide/12.vertex-statements/2.update-vertex.md b/docs-2.0-zh/3.ngql-guide/12.vertex-statements/2.update-vertex.md index 3e8b2315c1d..1f98da3f388 100644 --- a/docs-2.0-zh/3.ngql-guide/12.vertex-statements/2.update-vertex.md +++ b/docs-2.0-zh/3.ngql-guide/12.vertex-statements/2.update-vertex.md @@ -2,7 +2,7 @@ `UPDATE VERTEX`语句可以修改点上 Tag 的属性值。 -{{nebula.name}}支持 CAS(compare and set)操作。 +{{nebula.name}} 支持 CAS(compare and set)操作。 !!! note diff --git a/docs-2.0-zh/3.ngql-guide/12.vertex-statements/4.delete-vertex.md b/docs-2.0-zh/3.ngql-guide/12.vertex-statements/4.delete-vertex.md index b2fbe936bb5..0dadbad2c1f 100644 --- a/docs-2.0-zh/3.ngql-guide/12.vertex-statements/4.delete-vertex.md +++ b/docs-2.0-zh/3.ngql-guide/12.vertex-statements/4.delete-vertex.md @@ -4,7 +4,7 @@ !!! compatibility - {{nebula.name}} 2.x 默认删除点及关联该点的出边和入边,{{nebula.name}} {{nebula.release}} 默认只删除点,不删除该点关联的出边和入边,此时将默认存在悬挂边。 + {{nebula.name}} 2.x 默认删除点及关联该点的出边和入边,{{nebula.name}} {{nebula.release}} 默认只删除点,不删除该点关联的出边和入边,此时将默认存在悬挂边。 `DELETE VERTEX`语句一次可以删除一个或多个点。用户可以结合管道符一起使用,详情请参见[管道符](../5.operators/4.pipe.md)。 @@ -41,7 +41,7 @@ nebula> GO FROM "player100" OVER serve WHERE properties(edge).start_year == "202 ## 删除过程 -{{nebula.name}}找到目标点并删除,该目标点的所有邻边(出边和入边)将成为悬挂边。 +{{nebula.name}} 找到目标点并删除,该目标点的所有邻边(出边和入边)将成为悬挂边。 !!! caution @@ -51,4 +51,4 @@ nebula> GO FROM "player100" OVER serve WHERE properties(edge).start_year == "202 ## 悬挂边视频 * [{{nebula.name}} 的悬挂边小科普](https://www.bilibili.com/video/BV1GR4y1F7ko)(2 分 28 秒) - + diff --git a/docs-2.0-zh/3.ngql-guide/13.edge-statements/1.insert-edge.md b/docs-2.0-zh/3.ngql-guide/13.edge-statements/1.insert-edge.md index 2fc30271d10..099f5ef7a10 100644 --- a/docs-2.0-zh/3.ngql-guide/13.edge-statements/1.insert-edge.md +++ b/docs-2.0-zh/3.ngql-guide/13.edge-statements/1.insert-edge.md @@ -1,6 +1,6 @@ # INSERT EDGE -`INSERT EDGE`语句可以在{{nebula.name}}实例的指定图空间中插入一条或多条边。边是有方向的,从起始点(src_vid)到目的点(dst_vid)。 +`INSERT EDGE`语句可以在 {{nebula.name}} 实例的指定图空间中插入一条或多条边。边是有方向的,从起始点(src_vid)到目的点(dst_vid)。 `INSERT EDGE`的执行方式为覆盖式插入。如果已有 Edge type、起点、终点、rank 都相同的边,则**覆盖**原边。 diff --git a/docs-2.0-zh/3.ngql-guide/13.edge-statements/2.update-edge.md b/docs-2.0-zh/3.ngql-guide/13.edge-statements/2.update-edge.md index 4d7224de0de..c8e71d98c68 100644 --- a/docs-2.0-zh/3.ngql-guide/13.edge-statements/2.update-edge.md +++ b/docs-2.0-zh/3.ngql-guide/13.edge-statements/2.update-edge.md @@ -2,7 +2,7 @@ `UPDATE EDGE`语句可以修改边上 Edge type 的属性。 -{{nebula.name}}支持 CAS(compare and swap)操作。 +{{nebula.name}} 支持 CAS(compare and swap)操作。 ## 语法 diff --git a/docs-2.0-zh/3.ngql-guide/14.native-index-statements/1.create-native-index.md b/docs-2.0-zh/3.ngql-guide/14.native-index-statements/1.create-native-index.md index cb7577da037..b9a0c766a0f 100644 --- a/docs-2.0-zh/3.ngql-guide/14.native-index-statements/1.create-native-index.md +++ b/docs-2.0-zh/3.ngql-guide/14.native-index-statements/1.create-native-index.md @@ -38,13 +38,13 @@ 如果必须使用索引,通常按照如下步骤: -1. 初次导入数据至{{nebula.name}}。 +1. 初次导入数据至 {{nebula.name}} 。 2. 创建索引。 3. [重建索引](4.rebuild-native-index.md)。 -4. 使用 [LOOKUP](../7.general-query-statements/5.lookup.md) 或 [MATCH](../7.general-query-statements/2.match.md) 语句查询数据。不需要(也无法)指定使用哪个索引,{{nebula.name}}会自动计算。 +4. 使用 [LOOKUP](../7.general-query-statements/5.lookup.md) 或 [MATCH](../7.general-query-statements/2.match.md) 语句查询数据。不需要(也无法)指定使用哪个索引,{{nebula.name}} 会自动计算。 !!! note @@ -52,7 +52,7 @@ 日常增量写入时保持 `--disable_auto_compaction = false`。 - 新创建的索引并不会立刻生效。创建新的索引并尝试立刻使用(例如`LOOKUP`或者`REBUILD INDEX`) 通常会失败(报错`can't find xxx in the space`)。因为创建步骤是异步实现的,{{nebula.name}}要在下一个心跳周期才能完成索引的创建。为确保数据同步,后续操作能顺利进行,请等待 2 个心跳周期(20 秒)。如果需要修改心跳间隔,请为[所有配置文件](../../5.configurations-and-logs/1.configurations/1.configurations.md)修改参数`heartbeat_interval_secs`。 + 新创建的索引并不会立刻生效。创建新的索引并尝试立刻使用(例如`LOOKUP`或者`REBUILD INDEX`) 通常会失败(报错`can't find xxx in the space`)。因为创建步骤是异步实现的,{{nebula.name}} 要在下一个心跳周期才能完成索引的创建。为确保数据同步,后续操作能顺利进行,请等待 2 个心跳周期(20 秒)。如果需要修改心跳间隔,请为[所有配置文件](../../5.configurations-and-logs/1.configurations/1.configurations.md)修改参数`heartbeat_interval_secs`。 !!! danger @@ -68,7 +68,7 @@ CREATE {TAG | EDGE} INDEX [IF NOT EXISTS] ON { | `|索引名。索引名在一个图空间中必须是唯一的。推荐的命名方式为`i_tagName_propName`。
索引名称不能以数字开头,支持 1~4 字节的 UTF-8 编码字符,包括英文字母(区分大小写)、数字、中文等,但是不包括除下划线外的特殊字符。使用特殊字符、保留关键字或数字开头时,需要用反引号(\`)包围,详情参见[关键字和保留字](../../3.ngql-guide/1.nGQL-overview/keywords-and-reserved-words.md)。
**注意**:如果以中文为索引命名,报`SyntaxError`错误时,需使用反引号(\`)包围中文字符。| +|``|1、索引名。索引名在一个图空间中必须是唯一的。推荐的命名方式为`i_tagName_propName`。
2、默认情况下,仅支持 1~4 字节的 UTF-8 编码字符,包括英文字母(区分大小写)、数字、中文等。不能包含下划线(_)以外的特殊字符,且不能以数字开头。
3、如果需要使用特殊字符、保留关键字或者以数字开头,请使用反引号(\`)包围整个名称。反引号中不能包含英文句号(`.`)。详情参见[关键字和保留字](../../3.ngql-guide/1.nGQL-overview/keywords-and-reserved-words.md)。
**注意**:
1、如果以中文为索引命名,报`SyntaxError`错误时,需使用反引号(\`)包围中文字符。
2、名称中如需包含反引号(\`),使用反斜杠(\)来转义反引号(\`),如:\\\`;如需包含反斜杠(\),反斜杠(\)本身也需转义,如:\\\。| |` | `|指定索引关联的 Tag 或 Edge 名称。| |``|为**变长**字符串属性创建索引时,必须用`prop_name(length)`指定索引长度,索引长度最长为 256;为 Tag 或 Edge type 本身创建索引时,忽略``。| |`COMMENT`|索引的描述。最大为 256 字节。默认无描述。| diff --git a/docs-2.0-zh/3.ngql-guide/14.native-index-statements/4.rebuild-native-index.md b/docs-2.0-zh/3.ngql-guide/14.native-index-statements/4.rebuild-native-index.md index 8cdfb006796..a5e3fade41d 100644 --- a/docs-2.0-zh/3.ngql-guide/14.native-index-statements/4.rebuild-native-index.md +++ b/docs-2.0-zh/3.ngql-guide/14.native-index-statements/4.rebuild-native-index.md @@ -60,5 +60,5 @@ nebula> SHOW JOB 31; +----------------+---------------------+------------+-------------------------+-------------------------+-------------+ ``` -{{nebula.name}}创建一个任务去重建索引,因此可以根据返回的任务 ID,通过`SHOW JOB `语句查看任务状态。详情请参见 [SHOW JOB](../4.job-statements.md#show_job)。 +{{nebula.name}} 创建一个任务去重建索引,因此可以根据返回的任务 ID,通过`SHOW JOB `语句查看任务状态。详情请参见 [SHOW JOB](../4.job-statements.md#show_job)。 diff --git a/docs-2.0-zh/3.ngql-guide/14.native-index-statements/README.md b/docs-2.0-zh/3.ngql-guide/14.native-index-statements/README.md index de5688000e4..ceb2eaa8ca5 100644 --- a/docs-2.0-zh/3.ngql-guide/14.native-index-statements/README.md +++ b/docs-2.0-zh/3.ngql-guide/14.native-index-statements/README.md @@ -1,14 +1,14 @@ # 索引介绍 -为了提高查询性能,{{nebula.name}}支持为点的 Tag 或 Tag 的某个属性,边的 Edge type 或 Edge type 的某个属性创建索引。索引可以基于指定的 Tag、Edge type、属性查询数据,但是索引本身不存储数据,而是存储数据的位置。 +为了提高查询性能,{{nebula.name}} 支持为点的 Tag 或 Tag 的某个属性,边的 Edge type 或 Edge type 的某个属性创建索引。索引可以基于指定的 Tag、Edge type、属性查询数据,但是索引本身不存储数据,而是存储数据的位置。 -{{nebula.name}}支持两种类型索引:原生索引和全文索引。 +{{nebula.name}} 支持两种类型索引:原生索引和全文索引。 ## 使用说明 - 索引可以提高查询性能,但是会降低写入性能。 - 索引是执行`LOOKUP`语句时用于定位到数据的前置条件,如果没有索引,执行`LOOKUP`语句会报错。 -- 使用索引时,{{nebula.name}}会自动选择最优的索引。 +- 使用索引时,{{nebula.name}} 会自动选择最优的索引。 - 具有高选择度的索引,即索引列中不同值的记录数与总记录数的比值较高(例如身份证号的比值为 1)可显著提升查询性能;而对于低选择度的索引(例如国家),查询性能可能不会带来显著提升。 ## 原生索引 diff --git a/docs-2.0-zh/3.ngql-guide/15.full-text-index-statements/1.search-with-text-based-index.md b/docs-2.0-zh/3.ngql-guide/15.full-text-index-statements/1.search-with-text-based-index.md index 1bb1e676033..691a785fde7 100644 --- a/docs-2.0-zh/3.ngql-guide/15.full-text-index-statements/1.search-with-text-based-index.md +++ b/docs-2.0-zh/3.ngql-guide/15.full-text-index-statements/1.search-with-text-based-index.md @@ -84,7 +84,7 @@ nebula> SHOW TEXT SEARCH CLIENTS; //切换图空间。 nebula> USE basketballplayer; -//添加 listener 到{{nebula.name}}集群。 +//添加 listener 到 {{nebula.name}} 集群。 nebula> ADD LISTENER ELASTICSEARCH 192.168.8.100:9789; //检查是否成功添加 listener,当状态为 Online 时表示成功添加。 diff --git a/docs-2.0-zh/3.ngql-guide/17.query-tuning-statements/1.explain-and-profile.md b/docs-2.0-zh/3.ngql-guide/17.query-tuning-statements/1.explain-and-profile.md index 31d961aa189..88af27d7264 100644 --- a/docs-2.0-zh/3.ngql-guide/17.query-tuning-statements/1.explain-and-profile.md +++ b/docs-2.0-zh/3.ngql-guide/17.query-tuning-statements/1.explain-and-profile.md @@ -6,7 +6,7 @@ ## 执行计划 -执行计划由{{nebula.name}}查询引擎中的执行计划器决定。 +执行计划由 {{nebula.name}} 查询引擎中的执行计划器决定。 执行计划器将解析后的 nGQL 语句处理为`action`。`action`是最小的执行单元。典型的`action`包括获取指定点的所有邻居、获取边的属性、根据条件过滤点或边等。每个`action`都被分配给一个`operator`。 diff --git a/docs-2.0-zh/3.ngql-guide/18.operation-and-maintenance-statements/.1.configs-syntax.md b/docs-2.0-zh/3.ngql-guide/18.operation-and-maintenance-statements/.1.configs-syntax.md index 9e8266c20f4..cdb698bcdb4 100644 --- a/docs-2.0-zh/3.ngql-guide/18.operation-and-maintenance-statements/.1.configs-syntax.md +++ b/docs-2.0-zh/3.ngql-guide/18.operation-and-maintenance-statements/.1.configs-syntax.md @@ -1,10 +1,10 @@ # CONFIG -第一次启动{{nebula.name}}集群时,系统会从本地配置文件中读取配置,然后保存在 Meta 服务中,后续重启集群,也会从 Meta 服务中读取配置。`CONFIG`语句可以修改 Meta 服务中保存的{{nebula.name}}配置,不会修改本地配置文件。 +第一次启动 {{nebula.name}} 集群时,系统会从本地配置文件中读取配置,然后保存在 Meta 服务中,后续重启集群,也会从 Meta 服务中读取配置。`CONFIG`语句可以修改 Meta 服务中保存的 {{nebula.name}} 配置,不会修改本地配置文件。 !!! note - 根据过往实践,建议让{{nebula.name}}从本地文件获取配置。详情请参见[配置简介](../../5.configurations-and-logs/1.configurations/1.configurations.md#修改配置)。 + 根据过往实践,建议让 {{nebula.name}} 从本地文件获取配置。详情请参见[配置简介](../../5.configurations-and-logs/1.configurations/1.configurations.md#修改配置)。 ## SHOW CONFIGS diff --git a/docs-2.0-zh/3.ngql-guide/3.data-types/1.numeric.md b/docs-2.0-zh/3.ngql-guide/3.data-types/1.numeric.md index 3647b8ef83c..e30c30966b6 100644 --- a/docs-2.0-zh/3.ngql-guide/3.data-types/1.numeric.md +++ b/docs-2.0-zh/3.ngql-guide/3.data-types/1.numeric.md @@ -43,13 +43,13 @@ nGQL 支持科学计数法,例如`1e2`、`1.1e2`、`.3e4`、`1.e4`、`-1234E-1 例如,nGQL 不支持设置 INT8 类型的 [VID](../../1.introduction/3.vid.md),但支持将 [TAG](../10.tag-statements/1.create-tag.md) 或 [Edge type](../11.edge-type-statements/1.create-edge.md) 的某个属性类型设置为 INT8。当使用 nGQL 语句读取 INT8 类型的属性时,获取到的值的类型为 INT64。 -- {{nebula.name}}支持写入多种进制的数值: +- {{nebula.name}} 支持写入多种进制的数值: - 十进制,例如`123456`。 - 十六进制,例如`0x1e240`。 - 八进制,例如`0361100`。 - 但{{nebula.name}}会将写入的非十进制数值解析为十进制的值保存。读取到的值为十进制。 + 但 {{nebula.name}} 会将写入的非十进制数值解析为十进制的值保存。读取到的值为十进制。 例如,属性`score`的类型为`INT`,通过 INSERT 语句为其赋值`0xb`,使用 FETCH 等语句查询该属性值获取到的结果是`11`,即将十六进制的`0xb`转换为十进制后的值。 diff --git a/docs-2.0-zh/3.ngql-guide/3.data-types/10.geography.md b/docs-2.0-zh/3.ngql-guide/3.data-types/10.geography.md index 29f9a6ad24f..e17d99ecd79 100644 --- a/docs-2.0-zh/3.ngql-guide/3.data-types/10.geography.md +++ b/docs-2.0-zh/3.ngql-guide/3.data-types/10.geography.md @@ -1,6 +1,6 @@ # 地理空间 -地理空间(GEOGRAPHY)是由经纬度构成的表示地理空间信息的数据类型。{{nebula.name}}当前支持[简单地理要素](https://en.wikipedia.org/wiki/Simple_Features)中的 Point、LineString 和 Polygon 三种地理形状。支持 [SQL-MM 3](https://www.techrepublic.com/index.php/resource-library/whitepapers/sql-mm-spatial-the-standard-to-manage-spatial-data-in-relational-database-systems/) 中的部分核心 geo 解析、构造、格式设置、转换、谓词和度量等函数。 +地理空间(GEOGRAPHY)是由经纬度构成的表示地理空间信息的数据类型。 {{nebula.name}} 当前支持[简单地理要素](https://en.wikipedia.org/wiki/Simple_Features)中的 Point、LineString 和 Polygon 三种地理形状。支持 [SQL-MM 3](https://www.techrepublic.com/index.php/resource-library/whitepapers/sql-mm-spatial-the-standard-to-manage-spatial-data-in-relational-database-systems/) 中的部分核心 geo 解析、构造、格式设置、转换、谓词和度量等函数。 ## GEOGRAPHY diff --git a/docs-2.0-zh/3.ngql-guide/3.data-types/2.boolean.md b/docs-2.0-zh/3.ngql-guide/3.data-types/2.boolean.md index 2824f4b8849..4c52045c245 100644 --- a/docs-2.0-zh/3.ngql-guide/3.data-types/2.boolean.md +++ b/docs-2.0-zh/3.ngql-guide/3.data-types/2.boolean.md @@ -1,6 +1,6 @@ # 布尔 -{{nebula.name}}使用关键字`BOOL`声明布尔数据类型,可选值为`true`或`false`。 +{{nebula.name}} 使用关键字`BOOL`声明布尔数据类型,可选值为`true`或`false`。 nGQL 支持以如下方式使用布尔值: diff --git a/docs-2.0-zh/3.ngql-guide/3.data-types/3.string.md b/docs-2.0-zh/3.ngql-guide/3.data-types/3.string.md index 387194f2dc2..be81ed7451b 100644 --- a/docs-2.0-zh/3.ngql-guide/3.data-types/3.string.md +++ b/docs-2.0-zh/3.ngql-guide/3.data-types/3.string.md @@ -1,6 +1,6 @@ # 字符串 -{{nebula.name}}支持定长字符串和变长字符串。 +{{nebula.name}} 支持定长字符串和变长字符串。 ## 声明与表示方式 @@ -35,16 +35,37 @@ nGQL 支持以如下方式使用字符串: 如果尝试写入的定长字符串超出长度限制: -- 当该定长字符串为属性值时,写入会成功,{{nebula.name}}将截断字符串,仅存入符合长度限制的部分。 -- 当该定长字符串为 VID 时,写入会失败,{{nebula.name}}将报错。 +- 当该定长字符串为属性值时,写入会成功,{{nebula.name}} 将截断字符串,仅存入符合长度限制的部分。 +- 当该定长字符串为 VID 时,写入会失败,{{nebula.name}} 将报错。 ## 转义字符 -字符串中不支持直接换行,可以使用转义字符实现,例如: +反斜杠(`\`)在字符串中为转义字符,用于表示特殊字符。 -- `"\n\t\r\b\f"` +例如,如果想在一个字符串中包含一个双引号(`"`), 不能直接写`"Hello "world""`,因为这会引起语法错误。相反,需要使用反斜杠(`\`)来转义双引号,如`"Hello \"world\""`。 + +```ngql +nebula> RETURN "Hello \"world\"" ++-----------------+ +| "Hello "world"" | ++-----------------+ +| "Hello "world"" | ++-----------------+ +``` + +同样,反斜杠本身也需要转义,因为它是一个特殊字符。例如,要在字符串中包含一个反斜杠,需要写成`"Hello \\ world"`。 + +```ngql +nebula> RETURN "Hello \\ world" ++-----------------+ +| "Hello \ world" | ++-----------------+ +| "Hello \ world" | ++-----------------+ +``` + +更多转义字符的示例,请参见 [Escape character examples](https://en.wikipedia.org/wiki/Escape_character#Examples)。 -- `"\110ello world"` ## OpenCypher 兼容性 diff --git a/docs-2.0-zh/3.ngql-guide/3.data-types/4.date-and-time.md b/docs-2.0-zh/3.ngql-guide/3.data-types/4.date-and-time.md index 477e49fa21c..20d72ff266a 100644 --- a/docs-2.0-zh/3.ngql-guide/3.data-types/4.date-and-time.md +++ b/docs-2.0-zh/3.ngql-guide/3.data-types/4.date-and-time.md @@ -4,7 +4,7 @@ ## 注意事项 -- 在插入时间类型的属性值时,{{nebula.name}}会根据[配置文件](../../5.configurations-and-logs/1.configurations/1.configurations.md)中`timezone_name`参数指定的时区,将该`DATE`、`TIME`、`DATETIME`转换成相应的世界协调时间(UTC)时间。 +- 在插入时间类型的属性值时,{{nebula.name}} 会根据[配置文件](../../5.configurations-and-logs/1.configurations/1.configurations.md)中`timezone_name`参数指定的时区,将该`DATE`、`TIME`、`DATETIME`转换成相应的世界协调时间(UTC)时间。 !!! note @@ -32,7 +32,7 @@ ## DATE -`DATE`包含日期,但是不包含时间。{{nebula.name}}检索和显示`DATE`的格式为`YYYY-MM-DD`。支持的范围是`-32768-01-01`到`32767-12-31`。 +`DATE`包含日期,但是不包含时间。 {{nebula.name}} 检索和显示`DATE`的格式为`YYYY-MM-DD`。支持的范围是`-32768-01-01`到`32767-12-31`。 `date()`支持的属性名称包括`year`、`month`和`day`。`date()`支持输入`YYYY`、`YYYY-MM`或`YYYY-MM-DD`,未输入的月份或日期默认为`01`。 @@ -61,13 +61,13 @@ nebula> RETURN DATE("2023-12-12") - DATE("2023-12-11"); ## TIME -`TIME`包含时间,但是不包含日期。{{nebula.name}}检索和显示`TIME`的格式为`hh:mm:ss.msmsmsususus`。支持的范围是`00:00:00.000000`到`23:59:59.999999`。 +`TIME`包含时间,但是不包含日期。 {{nebula.name}} 检索和显示`TIME`的格式为`hh:mm:ss.msmsmsususus`。支持的范围是`00:00:00.000000`到`23:59:59.999999`。 `time()`支持的属性名称包括`hour`、`minute`和`second`。 ## DATETIME -`DATETIME`包含日期和时间。{{nebula.name}}检索和显示`DATETIME`的格式为`YYYY-MM-DDThh:mm:ss.msmsmsususus`。支持的范围是`-32768-01-01T00:00:00.000000`到`32767-12-31T23:59:59.999999`。 +`DATETIME`包含日期和时间。 {{nebula.name}} 检索和显示`DATETIME`的格式为`YYYY-MM-DDThh:mm:ss.msmsmsususus`。支持的范围是`-32768-01-01T00:00:00.000000`到`32767-12-31T23:59:59.999999`。 - `datetime()`支持的属性名称包括`year`、`month`、`day`、`hour`、`minute`和`second`。 diff --git a/docs-2.0-zh/3.ngql-guide/3.data-types/5.null.md b/docs-2.0-zh/3.ngql-guide/3.data-types/5.null.md index ef4a8cf83ad..f2f4d4a3814 100644 --- a/docs-2.0-zh/3.ngql-guide/3.data-types/5.null.md +++ b/docs-2.0-zh/3.ngql-guide/3.data-types/5.null.md @@ -20,15 +20,15 @@ ## OpenCypher 兼容性 -{{nebula.name}}中,NULL 的比较和操作与 openCypher 不同,后续也可能会有变化。 +{{nebula.name}} 中,NULL 的比较和操作与 openCypher 不同,后续也可能会有变化。 ### NULL 的比较 -{{nebula.name}}中,NULL 的比较操作不兼容 openCypher。 +{{nebula.name}} 中,NULL 的比较操作不兼容 openCypher。 ### NULL 的操作和返回 -{{nebula.name}}中,对 NULL 的操作以及返回结果不兼容 openCypher。 +{{nebula.name}} 中,对 NULL 的操作以及返回结果不兼容 openCypher。 ## 示例 diff --git a/docs-2.0-zh/3.ngql-guide/3.data-types/9.type-conversion.md b/docs-2.0-zh/3.ngql-guide/3.data-types/9.type-conversion.md index 51c5da1063c..8b00a43b9c0 100644 --- a/docs-2.0-zh/3.ngql-guide/3.data-types/9.type-conversion.md +++ b/docs-2.0-zh/3.ngql-guide/3.data-types/9.type-conversion.md @@ -2,11 +2,12 @@ 类型转换是指将表达式的类型转换为另一个类型。 -{{nebula.name}}支持显式地转换类型。详情参见[类型转换函数](../6.functions-and-expressions/16.type-conversion.md)。 +{{nebula.name}} 支持显式地转换类型。详情参见[类型转换函数](../6.functions-and-expressions/16.type-conversion.md)。 ## 示例 ```ngql +# 将列表拆分,并各自转换为布尔值显示。 nebula> UNWIND [true, false, 'true', 'false', NULL] AS b \ RETURN toBoolean(b) AS b; +----------+ @@ -23,6 +24,7 @@ nebula> UNWIND [true, false, 'true', 'false', NULL] AS b \ | __NULL__ | +----------+ +# 将整数或字符串转换为浮点数。 nebula> RETURN toFloat(1), toFloat('1.3'), toFloat('1e3'), toFloat('not a number'); +------------+----------------+----------------+-------------------------+ | toFloat(1) | toFloat("1.3") | toFloat("1e3") | toFloat("not a number") | diff --git a/docs-2.0-zh/3.ngql-guide/4.job-statements.md b/docs-2.0-zh/3.ngql-guide/4.job-statements.md index 199ddb7510a..f2bc13af81b 100644 --- a/docs-2.0-zh/3.ngql-guide/4.job-statements.md +++ b/docs-2.0-zh/3.ngql-guide/4.job-statements.md @@ -60,7 +60,7 @@ nebula> SUBMIT JOB FLUSH; !!! note - 如果存储在{{nebula.name}}中的数据有变化,为了获取最新的统计结果,请重新执行`SUBMIT JOB STATS`。 + 如果存储在 {{nebula.name}} 中的数据有变化,为了获取最新的统计结果,请重新执行`SUBMIT JOB STATS`。 示例: @@ -75,7 +75,7 @@ nebula> SUBMIT JOB STATS; ## SUBMIT JOB DOWNLOAD/INGEST -`SUBMIT JOB DOWNLOAD HDFS`和`SUBMIT JOB INGEST`命令用于将 SST 文件导入{{nebula.name}}。详情参见[导入 SST 文件数据](../import-export/nebula-exchange/use-exchange/ex-ug-import-from-sst.md)。 +`SUBMIT JOB DOWNLOAD HDFS`和`SUBMIT JOB INGEST`命令用于将 SST 文件导入 {{nebula.name}} 。详情参见[导入 SST 文件数据](../import-export/nebula-exchange/use-exchange/ex-ug-import-from-sst.md)。 `SUBMIT JOB DOWNLOAD HDFS`语句会下载指定的 HDFS 上的 SST 文件。 diff --git a/docs-2.0-zh/3.ngql-guide/4.variable-and-composite-queries/1.composite-queries.md b/docs-2.0-zh/3.ngql-guide/4.variable-and-composite-queries/1.composite-queries.md index 385bfe9bf37..4f277158af2 100644 --- a/docs-2.0-zh/3.ngql-guide/4.variable-and-composite-queries/1.composite-queries.md +++ b/docs-2.0-zh/3.ngql-guide/4.variable-and-composite-queries/1.composite-queries.md @@ -2,7 +2,7 @@ 复合查询将来自不同请求的数据放在一起,然后进行过滤、分组或者排序等,最后返回结果。 -{{nebula.name}}支持三种方式进行复合查询(或子查询): +{{nebula.name}} 支持三种方式进行复合查询(或子查询): - (opencypher 兼容语句)连接各个子句,让它们在彼此之间提供中间结果集。 diff --git a/docs-2.0-zh/3.ngql-guide/4.variable-and-composite-queries/2.user-defined-variables.md b/docs-2.0-zh/3.ngql-guide/4.variable-and-composite-queries/2.user-defined-variables.md index f8cf5af7b4e..a48cc86deab 100644 --- a/docs-2.0-zh/3.ngql-guide/4.variable-and-composite-queries/2.user-defined-variables.md +++ b/docs-2.0-zh/3.ngql-guide/4.variable-and-composite-queries/2.user-defined-variables.md @@ -1,6 +1,6 @@ # 自定义变量 -{{nebula.name}}允许将一条语句的结果作为自定义变量传递给另一条语句。 +{{nebula.name}} 允许将一条语句的结果作为自定义变量传递给另一条语句。 ## OpenCypher 兼容性 diff --git a/docs-2.0-zh/3.ngql-guide/4.variable-and-composite-queries/3.property-reference.md b/docs-2.0-zh/3.ngql-guide/4.variable-and-composite-queries/3.property-reference.md index 14ea59330d3..432fc3bce69 100644 --- a/docs-2.0-zh/3.ngql-guide/4.variable-and-composite-queries/3.property-reference.md +++ b/docs-2.0-zh/3.ngql-guide/4.variable-and-composite-queries/3.property-reference.md @@ -1,63 +1,60 @@ # 引用属性 -用户可以在`WHERE`和`YIELD`子句中引用点或边的属性。 +nGQL 提供属性引用符以允许用户在`GO`语句中引用起始点、目的点、边的属性,以及引用复合查询的输出结果。本文将详细介绍如何在 nGQL 中使用这些属性引用符。 -!!! note +## openCypher 兼容性 - 本功能仅适用于原生 nGQL 的 GO 语句。 +属性引用符仅适用于原生 nGQL。 -## 引用点的属性 +## 点属性引用符 -### 起始点 +|引用符|说明| +|:---|:---| +|`$^`|引用起始点。| +|`$$`|引用目的点。| + +### 引用语法 ```ngql -$^.. +$^.. # 起始点属性引用 +$$.. # 目的点属性引用 ``` -|参数|说明| -|:----------|:-----------------| -|`$^` |起始点 | -|`tag_name` |点的 Tag 名称 | -|`prop_name`|Tag 内的属性名称| +- `tag_name`:点的 Tag 名称。 +- `prop_name`:Tag 内的属性名称。 -### 目的点 +## 边属性引用符 -```ngql -$$.. -``` - -|参数|说明| -|:----------|:-----------------| -|`$$` |目的点 | -|`tag_name` |点的 Tag 名称 | -|`prop_name`|Tag 内的属性名称| +|引用符|说明| +|:---|:---| +|`_src`|边的起始点 | +|`_dst`|边的目的点| +|`_type`|边的类型内部编码,正负号表示方向:正数为正向边,负数为逆向边| +|`_rank`|边的 rank 值| -## 引用边的属性 +### 引用语法 -### 引用自定义的边属性 +nGQL 允许用户引用边的属性,包括自定义的边属性和四种内置的边属性。 ```ngql -. +. # 自定义边属性引用 +._src|_dst|_type|_rank # 内置边属性引用 ``` -|参数|说明| -|:----------|:------------------| -|`edge_type`|Edge type | -|`prop_name` |Edge type 的属性名称| +- `edge_type`:Edge type。 +- `prop_name`:Edge type 的属性名称。 -### 引用内置的边属性 +## 复合查询中的引用符 -除了自定义的边属性,每条边还有如下四种内置属性: +|引用符|说明| +|:---|:---| +|`$-`|引用复合查询中管道符之前的语句输出结果。更多信息请参见[管道符](4.pipe.md)。| -|参数|说明| -|:----------|:------------------| -|`_src`|边的起始点 | -|`_dst`|边的目的点| -|`_type`|边的类型内部编码,正负号表示方向:正数为正向边,负数为逆向边| -|`_rank`|边的 rank 值| ## 示例 +### 使用点属性引用符 + ```ngql # 返回起始点的 Tag player 的 name 属性值和目的点的 Tag player 的 age 属性值。 nebula> GO FROM "player100" OVER follow YIELD $^.player.name AS startName, $$.player.age AS endAge; @@ -67,6 +64,21 @@ nebula> GO FROM "player100" OVER follow YIELD $^.player.name AS startName, $$.pl | "Tim Duncan" | 36 | | "Tim Duncan" | 41 | +--------------+--------+ +``` + +!!! compatibility "历史版本兼容性" + + 从{{nebula.name}} 2.6.0 起支持了新的 [Schema 相关函数](../6.functions-and-expressions/4.schema.md)。以上示例在{{nebula.name}} {{ nebula.release}} 中的近似写法如下: + + ```ngql + GO FROM "player100" OVER follow YIELD properties($^).name AS startName, properties($$).age AS endAge; + ``` + + {{nebula.name}} {{ nebula.release}} 兼容新旧语法。 + +### 使用边属性引用符 + +```ngql # 返回 Edge type follow 的 degree 属性值。 nebula> GO FROM "player100" OVER follow YIELD follow.degree; @@ -88,12 +100,36 @@ nebula> GO FROM "player100" OVER follow YIELD follow._src, follow._dst, follow._ !!! compatibility "历史版本兼容性" - 从{{nebula.name}} 2.6.0 起支持了新的 [Schema 相关函数](../6.functions-and-expressions/4.schema.md)。以上示例在{{nebula.name}} {{ nebula.release}} 中的近似写法如下: + 从 {{nebula.name}} 2.6.0 起支持了新的 [Schema 相关函数](../6.functions-and-expressions/4.schema.md)。以上示例在 {{nebula.name}} {{ nebula.release}} 中的近似写法如下: ```ngql - GO FROM "player100" OVER follow YIELD properties($^).name AS startName, properties($$).age AS endAge; GO FROM "player100" OVER follow YIELD properties(edge).degree; GO FROM "player100" OVER follow YIELD src(edge), dst(edge), type(edge), rank(edge); ``` {{nebula.name}} {{ nebula.release}} 兼容新旧语法。 + +### 复合查询中使用属性引用符 + +以下复合查询语句示例执行操作如下: + +1. 使用`$-.id`引用管道符前面的`GO FROM "player100" OVER follow YIELD dst(edge) AS id`语句的结果,即返回`follow`边类型的目的点 ID。 +2. 使用`properties($^)`函数获取`serve`类型边上起始点的球员的`name`属性。 +3. 使用`properties($$)`函数获取`serve`类型边上目的点的团队的`name`属性。 + + +```ngql +nebula> GO FROM "player100" OVER follow \ + YIELD dst(edge) AS id | \ + GO FROM $-.id OVER serve \ + YIELD properties($^).name AS Player, properties($$).name AS Team; ++-----------------+-----------+ +| Player | Team | ++-----------------+-----------+ +| "Tony Parker" | "Spurs" | +| "Tony Parker" | "Hornets" | +| "Manu Ginobili" | "Spurs" | ++-----------------+-----------+ +``` + + diff --git a/docs-2.0-zh/3.ngql-guide/5.operators/1.comparison.md b/docs-2.0-zh/3.ngql-guide/5.operators/1.comparison.md index 817f76ae62e..7cab419986f 100644 --- a/docs-2.0-zh/3.ngql-guide/5.operators/1.comparison.md +++ b/docs-2.0-zh/3.ngql-guide/5.operators/1.comparison.md @@ -1,6 +1,6 @@ # 比较符 -{{nebula.name}}支持的比较符如下。 +{{nebula.name}} 支持的比较符如下。 | 符号 | 说明 | |:----|:----:| @@ -119,6 +119,7 @@ nebula> YIELD 1 != '1'; ### `IS [NOT] NULL` ```ngql +# 返回关于 null 的一些判断结果。 nebula> RETURN null IS NULL AS value1, null == null AS value2, null != null AS value3; +--------+----------+----------+ | value1 | value2 | value3 | @@ -126,6 +127,7 @@ nebula> RETURN null IS NULL AS value1, null == null AS value2, null != null AS v | true | __NULL__ | __NULL__ | +--------+----------+----------+ +# 返回关于 NULL 的一些属性信息。 nebula> RETURN length(NULL), size(NULL), count(NULL), NULL IS NULL, NULL IS NOT NULL, sin(NULL), NULL + NULL, [1, NULL] IS NULL; +--------------+------------+-------------+--------------+------------------+-----------+-------------+------------------+ | length(NULL) | size(NULL) | count(NULL) | NULL IS NULL | NULL IS NOT NULL | sin(NULL) | (NULL+NULL) | [1,NULL] IS NULL | @@ -133,6 +135,7 @@ nebula> RETURN length(NULL), size(NULL), count(NULL), NULL IS NULL, NULL IS NOT | __NULL__ | __NULL__ | 0 | true | false | __NULL__ | __NULL__ | false | +--------------+------------+-------------+--------------+------------------+-----------+-------------+------------------+ +# 创建 map 数据,判断 map 的 name 属性是否不为 NULL。 nebula> WITH {name: null} AS `map` \ RETURN `map`.name IS NOT NULL; +----------------------+ @@ -141,6 +144,7 @@ nebula> WITH {name: null} AS `map` \ | false | +----------------------+ +# 创建 map1、map2、map3 的数据,并判断返回其 name 属性是否为 NULL。 nebula> WITH {name: 'Mats', name2: 'Pontus'} AS map1, \ {name: null} AS map2, {notName: 0, notName2: null } AS map3 \ RETURN map1.name IS NULL, map2.name IS NOT NULL, map3.name IS NULL; @@ -150,6 +154,7 @@ nebula> WITH {name: 'Mats', name2: 'Pontus'} AS map1, \ | false | false | true | +-------------------+-----------------------+-------------------+ +# 查询所有 Tag 为 player 的点数据,判断并返回点的 age 属性是否为 NULL、name 属性是否不为 NULL、empty 属性是否为 NULL。 nebula> MATCH (n:player) \ RETURN n.player.age IS NULL, n.player.name IS NOT NULL, n.player.empty IS NULL; +----------------------+---------------------------+------------------------+ @@ -163,6 +168,7 @@ nebula> MATCH (n:player) \ ### `IS [NOT] EMPTY` ```ngql +# 判断 null 是否不存在。 nebula> RETURN null IS EMPTY; +---------------+ | NULL IS EMPTY | @@ -170,6 +176,7 @@ nebula> RETURN null IS EMPTY; | false | +---------------+ +# 判断 a 字符串是否存在。 nebula> RETURN "a" IS NOT EMPTY; +------------------+ | "a" IS NOT EMPTY | @@ -177,6 +184,7 @@ nebula> RETURN "a" IS NOT EMPTY; | true | +------------------+ +# 遍历所有 player100 指向的目的点,并返回目的点数据 name 属性存在的点 id。 nebula> GO FROM "player100" OVER * WHERE properties($$).name IS NOT EMPTY YIELD dst(edge); +-------------+ | dst(EDGE) | diff --git a/docs-2.0-zh/3.ngql-guide/5.operators/10.arithmetic.md b/docs-2.0-zh/3.ngql-guide/5.operators/10.arithmetic.md index be7cfb6a9d9..69a36cb11a6 100644 --- a/docs-2.0-zh/3.ngql-guide/5.operators/10.arithmetic.md +++ b/docs-2.0-zh/3.ngql-guide/5.operators/10.arithmetic.md @@ -1,6 +1,6 @@ # 算术运算符 -{{nebula.name}}支持的算术运算符如下。 + {{nebula.name}} 支持的算术运算符如下。 | 符号 | 说明 | |:----|:----:| @@ -14,6 +14,7 @@ ## 示例 ```ngql +# 返回 1+2 的结果。 nebula> RETURN 1+2 AS result; +--------+ | result | @@ -21,6 +22,7 @@ nebula> RETURN 1+2 AS result; | 3 | +--------+ +# 返回 -10+5 的结果。 nebula> RETURN -10+5 AS result; +--------+ | result | @@ -28,6 +30,7 @@ nebula> RETURN -10+5 AS result; | -5 | +--------+ +# 返回 (3*8)%5 的结果。 nebula> RETURN (3*8)%5 AS result; +--------+ | result | diff --git a/docs-2.0-zh/3.ngql-guide/5.operators/2.boolean.md b/docs-2.0-zh/3.ngql-guide/5.operators/2.boolean.md index 2b92d2ccfc0..247101b470f 100644 --- a/docs-2.0-zh/3.ngql-guide/5.operators/2.boolean.md +++ b/docs-2.0-zh/3.ngql-guide/5.operators/2.boolean.md @@ -1,6 +1,6 @@ # 布尔符 -{{nebula.name}}支持的布尔符如下。 + {{nebula.name}} 支持的布尔符如下。 | 符号 | 说明 | | :------- | :-------------: | diff --git a/docs-2.0-zh/3.ngql-guide/5.operators/4.pipe.md b/docs-2.0-zh/3.ngql-guide/5.operators/4.pipe.md index 29bfc7617e8..546605596c7 100644 --- a/docs-2.0-zh/3.ngql-guide/5.operators/4.pipe.md +++ b/docs-2.0-zh/3.ngql-guide/5.operators/4.pipe.md @@ -35,13 +35,11 @@ nebula> GO FROM "player100" OVER follow \ ## 性能提示 -{{nebula.name}}中的管道对性能有影响,以`A | B`为例,体现在以下几个方面: + {{nebula.name}} 中的管道对性能有影响,以`A | B`为例,体现在以下几个方面: 1. 管道是同步操作。也即需要管道之前的子句`A`执行完毕后,数据才能整体进入管道子句。 -2. 管道本身是需要序列化和反序列化的,这个是单线程执行的。 - -3. 如果`A`发大量数据给 `|`,整个查询请求的总体时延可能会非常大。此时可以尝试拆分这个语句: +2. 如果`A`发大量数据给 `|`,整个查询请求的总体时延可能会非常大。此时可以尝试拆分这个语句: 1. 应用程序发送`A`, diff --git a/docs-2.0-zh/3.ngql-guide/5.operators/6.set.md b/docs-2.0-zh/3.ngql-guide/5.operators/6.set.md index c7662b97906..3308b64bb43 100644 --- a/docs-2.0-zh/3.ngql-guide/5.operators/6.set.md +++ b/docs-2.0-zh/3.ngql-guide/5.operators/6.set.md @@ -2,7 +2,7 @@ 合并多个请求时,可以使用集合运算符,包括`UNION`、`UNION ALL`、`INTERSECT`和`MINUS`。 -所有集合运算符的优先级相同,如果一个 nGQL 语句中有多个集合运算符,{{nebula.name}}会从左到右进行计算,除非用括号指定顺序。 +所有集合运算符的优先级相同,如果一个 nGQL 语句中有多个集合运算符,{{nebula.name}} 会从左到右进行计算,除非用括号指定顺序。 !!! caution @@ -35,6 +35,7 @@ nebula> GO FROM "player102" OVER follow YIELD dst(edge) \ | "player125" | +-------------+ +# 查询 Tag 为 player 的点,根据名称排序后获取前 3 条数据,并与数组合并返回,不包含重复的元素。 nebula> MATCH (v:player) \ WITH v.player.name AS n \ RETURN n ORDER BY n LIMIT 3 \ @@ -63,6 +64,7 @@ nebula> GO FROM "player102" OVER follow YIELD dst(edge) \ | "player125" | +-------------+ +# 查询 Tag 为 player 的点,根据名称排序后获取前 3 条数据,并与数组合并返回,包含重复的元素。 nebula> MATCH (v:player) \ WITH v.player.name AS n \ RETURN n ORDER BY n LIMIT 3 \ @@ -120,6 +122,7 @@ nebula> GO FROM "player102" OVER follow \ +----+--------+-----+ +----+--------+-----+ +# 返回 player102 的邻居和边数据与 player100 的邻居和边数据之间的交集。 nebula> MATCH (v:player)-[e:follow]->(v2) \ WHERE id(v) == "player102" \ RETURN id(v2) As id, e.degree As Degree, v2.player.age AS Age \ @@ -132,6 +135,7 @@ nebula> MATCH (v:player)-[e:follow]->(v2) \ +----+--------+-----+ +----+--------+-----+ +# 返回 [1,2] 与 [1,2,3,4] 的交集。 nebula> UNWIND [1,2] AS a RETURN a \ INTERSECT \ UNWIND [1,2,3,4] AS a \ @@ -165,6 +169,7 @@ nebula> GO FROM "player100" OVER follow YIELD dst(edge) \ | "player125" | +-------------+ +# 返回在 player102 的邻居中,但不在 player100 的邻居中的元素。 nebula> GO FROM "player102" OVER follow YIELD dst(edge) AS id \ MINUS \ GO FROM "player100" OVER follow YIELD dst(edge) AS id; @@ -174,6 +179,7 @@ nebula> GO FROM "player102" OVER follow YIELD dst(edge) AS id \ | "player100" | +-------------+ +# 返回在 player102 的邻居中,但不在 player100 的邻居中的元素。 nebula> MATCH (v:player)-[e:follow]->(v2) \ WHERE id(v) =="player102" \ RETURN id(v2) AS id\ @@ -187,6 +193,7 @@ nebula> MATCH (v:player)-[e:follow]->(v2) \ | "player100" | +-------------+ +# 返回 [1,2,3] 中不与 4 相同的元素。 nebula> UNWIND [1,2,3] AS a RETURN a \ MINUS \ WITH 4 AS a \ diff --git a/docs-2.0-zh/3.ngql-guide/5.operators/7.string.md b/docs-2.0-zh/3.ngql-guide/5.operators/7.string.md index a55622b079c..0c0545de7ca 100644 --- a/docs-2.0-zh/3.ngql-guide/5.operators/7.string.md +++ b/docs-2.0-zh/3.ngql-guide/5.operators/7.string.md @@ -1,6 +1,6 @@ # 字符串运算符 -{{nebula.name}}支持使用字符串运算符进行连接、搜索、匹配运算。支持的运算符如下。 + {{nebula.name}} 支持使用字符串运算符进行连接、搜索、匹配运算。支持的运算符如下。 | 名称 | 说明 | |:----- | :------------------ | @@ -20,6 +20,7 @@ ### `+` ```ngql +# 返回连接后的字符串。 nebula> RETURN 'a' + 'b'; +-----------+ | ("a"+"b") | @@ -39,6 +40,7 @@ nebula> UNWIND 'a' AS a UNWIND 'b' AS b RETURN a + b; `CONTAINS`要求待运算的左右两边都是字符串类型。 ```ngql +# 查询返回 id 值为 player101,且目标点属性 name 中含有"ets"的数据。 nebula> MATCH (s:player)-[e:serve]->(t:team) WHERE id(s) == "player101" \ AND t.team.name CONTAINS "ets" RETURN s.player.name, e.start_year, e.end_year, t.team.name; +---------------+--------------+------------+-------------+ @@ -47,6 +49,7 @@ nebula> MATCH (s:player)-[e:serve]->(t:team) WHERE id(s) == "player101" \ | "Tony Parker" | 2018 | 2019 | "Hornets" | +---------------+--------------+------------+-------------+ +# 查询返回 player101 的边属性 start_year 转为字符串后含有"19",且点属性 name 中含有"ny"的数据。 nebula> GO FROM "player101" OVER serve WHERE (STRING)properties(edge).start_year CONTAINS "19" AND \ properties($^).name CONTAINS "ny" \ YIELD properties($^).name, properties(edge).start_year, properties(edge).end_year, properties($$).name; @@ -56,6 +59,7 @@ nebula> GO FROM "player101" OVER serve WHERE (STRING)properties(edge).start_year | "Tony Parker" | 1999 | 2018 | "Spurs" | +---------------------+-----------------------------+---------------------------+---------------------+ +# 查询返回 palyer101 指向的目标点属性 name 中不含有"ets"的数据。 nebula> GO FROM "player101" OVER serve WHERE !(properties($$).name CONTAINS "ets") \ YIELD properties($^).name, properties(edge).start_year, properties(edge).end_year, properties($$).name; +---------------------+-----------------------------+---------------------------+---------------------+ @@ -68,6 +72,7 @@ nebula> GO FROM "player101" OVER serve WHERE !(properties($$).name CONTAINS "ets ### `(NOT) IN` ```ngql +# 返回列表中是否含有某个值。 nebula> RETURN 1 IN [1,2,3], "Yao" NOT IN ["Yi", "Tim", "Kobe"], NULL IN ["Yi", "Tim", "Kobe"]; +----------------+------------------------------------+-------------------------------+ | (1 IN [1,2,3]) | ("Yao" NOT IN ["Yi","Tim","Kobe"]) | (NULL IN ["Yi","Tim","Kobe"]) | @@ -79,6 +84,7 @@ nebula> RETURN 1 IN [1,2,3], "Yao" NOT IN ["Yi", "Tim", "Kobe"], NULL IN ["Yi", ### `(NOT) STARTS WITH` ```ngql +# 返回是否以某个字符串开头。 nebula> RETURN 'apple' STARTS WITH 'app', 'apple' STARTS WITH 'a', 'apple' STARTS WITH toUpper('a'); +-----------------------------+---------------------------+------------------------------------+ | ("apple" STARTS WITH "app") | ("apple" STARTS WITH "a") | ("apple" STARTS WITH toUpper("a")) | @@ -97,6 +103,7 @@ nebula> RETURN 'apple' STARTS WITH 'b','apple' NOT STARTS WITH 'app'; ### `(NOT) ENDS WITH` ```ngql +# 返回是否以某个字符串结尾。 nebula> RETURN 'apple' ENDS WITH 'app', 'apple' ENDS WITH 'e', 'apple' ENDS WITH 'E', 'apple' ENDS WITH 'b'; +---------------------------+-------------------------+-------------------------+-------------------------+ | ("apple" ENDS WITH "app") | ("apple" ENDS WITH "e") | ("apple" ENDS WITH "E") | ("apple" ENDS WITH "b") | @@ -111,9 +118,10 @@ nebula> RETURN 'apple' ENDS WITH 'app', 'apple' ENDS WITH 'e', 'apple' ENDS WITH 当前仅 opencypher 兼容语句(`MATCH`、`WITH`等)支持正则表达式,原生 nGQL 语句(`FETCH`、`GO`、`LOOKUP`等)不支持正则表达式。 -{{nebula.name}}支持使用正则表达式进行过滤,正则表达式的语法是继承自`std::regex`,用户可以使用语法`=~ ''`进行正则表达式匹配。例如: + {{nebula.name}} 支持使用正则表达式进行过滤,正则表达式的语法是继承自`std::regex`,用户可以使用语法`=~ ''`进行正则表达式匹配。例如: ```ngql +# 返回是否匹配正则表达式。 nebula> RETURN "384748.39" =~ "\\d+(\\.\\d{2})?"; +--------------------------------+ | ("384748.39"=~"\d+(\.\d{2})?") | @@ -121,6 +129,7 @@ nebula> RETURN "384748.39" =~ "\\d+(\\.\\d{2})?"; | true | +--------------------------------+ +# 查询返回符合正则表达式的点数据。 nebula> MATCH (v:player) WHERE v.player.name =~ 'Tony.*' RETURN v.player.name; +---------------+ | v.player.name | diff --git a/docs-2.0-zh/3.ngql-guide/5.operators/8.list.md b/docs-2.0-zh/3.ngql-guide/5.operators/8.list.md index 217c5023cd2..6c2b07dd168 100644 --- a/docs-2.0-zh/3.ngql-guide/5.operators/8.list.md +++ b/docs-2.0-zh/3.ngql-guide/5.operators/8.list.md @@ -1,6 +1,6 @@ # 列表运算符 -{{nebula.name}}支持使用列表(List)运算符进行运算。支持的运算符如下。 + {{nebula.name}} 支持使用列表(List)运算符进行运算。支持的运算符如下。 | 名称 | 说明 | |:----- |:------------------| @@ -11,6 +11,7 @@ ## 示例 ```ngql +# 返回连接后的列表。 nebula> YIELD [1,2,3,4,5]+[6,7] AS myList; +-----------------------+ | myList | @@ -18,6 +19,7 @@ nebula> YIELD [1,2,3,4,5]+[6,7] AS myList; | [1, 2, 3, 4, 5, 6, 7] | +-----------------------+ +# 返回列表中的元素数量。 nebula> RETURN size([NULL, 1, 2]); +------------------+ | size([NULL,1,2]) | @@ -25,6 +27,7 @@ nebula> RETURN size([NULL, 1, 2]); | 3 | +------------------+ +# 返回 NULL 是否存在列表中。 nebula> RETURN NULL IN [NULL, 1]; +--------------------+ | (NULL IN [NULL,1]) | @@ -32,6 +35,7 @@ nebula> RETURN NULL IN [NULL, 1]; | __NULL__ | +--------------------+ +# 返回在列表[2, 3, 4, 5]中存在,且也在列表[2, 3, 8]中存在的元素,并拆分显示。 nebula> WITH [2, 3, 4, 5] AS numberlist \ UNWIND numberlist AS number \ WITH number \ @@ -44,6 +48,7 @@ nebula> WITH [2, 3, 4, 5] AS numberlist \ | 3 | +--------+ +# 返回列表中下标为 1 的元素。 nebula> WITH ['Anne', 'John', 'Bill', 'Diane', 'Eve'] AS names RETURN names[1] AS result; +--------+ | result | diff --git a/docs-2.0-zh/3.ngql-guide/6.functions-and-expressions/1.math.md b/docs-2.0-zh/3.ngql-guide/6.functions-and-expressions/1.math.md index ff70ebe63b3..600e37c788f 100644 --- a/docs-2.0-zh/3.ngql-guide/6.functions-and-expressions/1.math.md +++ b/docs-2.0-zh/3.ngql-guide/6.functions-and-expressions/1.math.md @@ -1,6 +1,6 @@ # 内置数学函数 -本文介绍{{nebula.name}}支持的数学函数。 +本文介绍 {{nebula.name}} 支持的数学函数。 ## abs() diff --git a/docs-2.0-zh/3.ngql-guide/6.functions-and-expressions/15.aggregating.md b/docs-2.0-zh/3.ngql-guide/6.functions-and-expressions/15.aggregating.md index f94db19ee87..2391c307ca0 100644 --- a/docs-2.0-zh/3.ngql-guide/6.functions-and-expressions/15.aggregating.md +++ b/docs-2.0-zh/3.ngql-guide/6.functions-and-expressions/15.aggregating.md @@ -1,6 +1,6 @@ # 聚合函数 -本文介绍{{nebula.name}}支持的聚合函数。 +本文介绍 {{nebula.name}} 支持的聚合函数。 ## avg() @@ -13,6 +13,7 @@ avg() 返回参数的平均值。 示例: ```ngql +# 返回 Tag player 的 age 属性的平均值。 nebula> MATCH (v:player) RETURN avg(v.player.age); +--------------------+ | avg(v.player.age) | @@ -38,6 +39,7 @@ count() 返回参数的数量。 示例: ```ngql +# 将列表拆分,并返回拆分后行的数量,列表元素的数量,拆分后将行去重后的数量。 nebula> WITH [NULL, 1, 1, 2, 2] As a UNWIND a AS b \ RETURN count(b), count(*), count(DISTINCT b); +----------+----------+-------------------+ @@ -155,6 +157,7 @@ max() 返回参数的最大值。 示例: ```ngql +# 返回 Tag player 的 age 属性的最大值。 nebula> MATCH (v:player) RETURN max(v.player.age); +-------------------+ | max(v.player.age) | @@ -174,6 +177,7 @@ min() 返回参数的最小值。 示例: ```ngql +# 返回 Tag player 的 age 属性的最小值。 nebula> MATCH (v:player) RETURN min(v.player.age); +-------------------+ | min(v.player.age) | @@ -193,6 +197,7 @@ collect() 返回一个符合表达式返回结果的列表。该函数可以将 示例: ```ngql +# 将列表拆分为单独的行。 nebula> UNWIND [1, 2, 1] AS a \ RETURN a; +---+ @@ -203,6 +208,7 @@ nebula> UNWIND [1, 2, 1] AS a \ | 1 | +---+ +# 将列表拆分为单独的行记录后再合并为一个列表返回。 nebula> UNWIND [1, 2, 1] AS a \ RETURN collect(a); +------------+ @@ -211,6 +217,7 @@ nebula> UNWIND [1, 2, 1] AS a \ | [1, 2, 1] | +------------+ +# 统计并返回列表中相同元素的数量。 nebula> UNWIND [1, 2, 1] AS a \ RETURN a, collect(a), size(collect(a)); +---+------------+------------------+ @@ -231,6 +238,7 @@ nebula> UNWIND ["c", "b", "a", "d" ] AS p \ | ["d", "c", "b"] | +-----------------+ +# 将列表拆分后去重,再合并为新的列表返回。 nebula> WITH [1, 1, 2, 2] AS coll \ UNWIND coll AS x \ WITH DISTINCT x \ @@ -241,6 +249,7 @@ nebula> WITH [1, 1, 2, 2] AS coll \ | [1, 2] | +--------+ +# 将 Tag player 的 age 属性值合并为列表返回。 nebula> MATCH (n:player) \ RETURN collect(n.player.age); +---------------------------------------------------------------+ @@ -261,6 +270,7 @@ nebula> MATCH (n:player) \ +-----+--------------------------------------------------------------------------+ ... +# 将 player100 的目的点 name 属性值聚合,结果合并为列表返回。 nebula> GO FROM "player100" OVER serve \ YIELD properties($$).name AS name \ | GROUP BY $-.name \ @@ -271,6 +281,7 @@ nebula> GO FROM "player100" OVER serve \ | ["Spurs"] | +-----------+ +# 将 Tag player 的 age 属性值聚合,结果合并为列表返回。 nebula> LOOKUP ON player \ YIELD player.age As playerage \ | GROUP BY $-.playerage \ @@ -298,6 +309,7 @@ std() 返回参数的总体标准差。 示例: ```ngql +# 返回 Tag player 的 age 属性值的标准差。 nebula> MATCH (v:player) RETURN std(v.player.age); +-------------------+ | std(v.player.age) | @@ -317,6 +329,7 @@ sum() 返回参数的和。 示例: ```ngql +# 返回 Tag player 的 age 属性值的总和。 nebula> MATCH (v:player) RETURN sum(v.player.age); +-------------------+ | sum(v.player.age) | @@ -339,4 +352,4 @@ nebula> GO FROM "player100" OVER follow YIELD dst(edge) AS dst, properties($$). | "player125" | 84.0 | | "player101" | 74.0 | +-------------+------------+ -``` \ No newline at end of file +``` diff --git a/docs-2.0-zh/3.ngql-guide/6.functions-and-expressions/16.type-conversion.md b/docs-2.0-zh/3.ngql-guide/6.functions-and-expressions/16.type-conversion.md index 78851047d43..042b8b1e7e9 100644 --- a/docs-2.0-zh/3.ngql-guide/6.functions-and-expressions/16.type-conversion.md +++ b/docs-2.0-zh/3.ngql-guide/6.functions-and-expressions/16.type-conversion.md @@ -1,6 +1,6 @@ # 类型转换函数 -本文介绍{{nebula.name}}支持的类型转换函数。 +本文介绍 {{nebula.name}} 支持的类型转换函数。 ## toBoolean() diff --git a/docs-2.0-zh/3.ngql-guide/6.functions-and-expressions/2.string.md b/docs-2.0-zh/3.ngql-guide/6.functions-and-expressions/2.string.md index 55e0378ca1b..e3a2df35a43 100644 --- a/docs-2.0-zh/3.ngql-guide/6.functions-and-expressions/2.string.md +++ b/docs-2.0-zh/3.ngql-guide/6.functions-and-expressions/2.string.md @@ -1,6 +1,6 @@ # 内置字符串函数 -本文介绍{{nebula.name}}支持的字符串函数。 +本文介绍 {{nebula.name}} 支持的字符串函数。 ## 注意事项 @@ -23,6 +23,7 @@ strcasecmp() 比较两个字符串(不区分大小写)。 示例: ```ngql +# 比较字符串 "a" 和 "aa" nebula> RETURN strcasecmp("a","aa"); +----------------------+ | strcasecmp("a","aa") | @@ -44,6 +45,7 @@ lower() 和 toLower() 都可以返回指定字符串的小写形式。 示例: ```ngql +# 返回 "Basketball_Player" 小写形式 nebula> RETURN lower("Basketball_Player"); +----------------------------+ | lower("Basketball_Player") | @@ -65,6 +67,7 @@ upper() 和 toUpper() 都可以返回指定字符串的大写形式。 示例: ```ngql +# 返回 "Basketball_Player" 大写形式 nebula> RETURN upper("Basketball_Player"); +----------------------------+ | upper("Basketball_Player") | @@ -89,6 +92,7 @@ length() 返回: 示例: ```ngql +# 返回字符串 "basketball" 的长度 nebula> RETURN length("basketball"); +----------------------+ | length("basketball") | @@ -98,6 +102,7 @@ nebula> RETURN length("basketball"); ``` ```ngql +# 返回 p 到 v2 路径的长度 nebula> MATCH p=(v:player{name:"Tim Duncan"})-->(v2) return length(p); +-----------+ | length(p) | @@ -121,6 +126,7 @@ trim() 删除指定字符串头部和尾部的空格。 示例: ```ngql +# 裁剪掉字符串 " basketball player " 头部和尾部的空格 nebula> RETURN trim(" basketball player "); +-----------------------------+ | trim(" basketball player ") | @@ -142,6 +148,7 @@ ltrim() 删除字符串头部的空格。 示例: ```ngql +# 裁剪掉字符串 " basketball player " 头部的空格 nebula> RETURN ltrim(" basketball player "); +------------------------------+ | ltrim(" basketball player ") | @@ -163,6 +170,7 @@ rtrim() 删除字符串尾部的空格。 示例: ```ngql +# 裁剪掉字符串 " basketball player " 尾部的空格 nebula> RETURN rtrim(" basketball player "); +------------------------------+ | rtrim(" basketball player ") | @@ -186,6 +194,7 @@ left() 返回指定字符串头部若干个字符组成的子字符串。 示例: ```ngql +# 返回字符串 "basketball_player" 从头部开始的 6 个字符组成的字符串 nebula> RETURN left("basketball_player",6); +-----------------------------+ | left("basketball_player",6) | @@ -209,6 +218,7 @@ right() 返回指定字符串尾部若干个字符组成的子字符串。 示例: ```ngql +# 返回字符串 "basketball_player" 从尾部 6 个字符组成的字符串 nebula> RETURN right("basketball_player",6); +------------------------------+ | right("basketball_player",6) | @@ -234,6 +244,7 @@ lpad() 在指定字符串的头部填充字符串至指定长度,并返回结 示例: ```ngql +# 在字符串 "abcd" 头部填充 "b" 字符,延长字符串长度至 10 nebula> RETURN lpad("abcd",10,"b"); +---------------------+ | lpad("abcd",10,"b") | @@ -241,6 +252,7 @@ nebula> RETURN lpad("abcd",10,"b"); | "bbbbbbabcd" | +---------------------+ +# 返回字符串 "abcd" 的前三个字符 nebula> RETURN lpad("abcd",3,"b"); +--------------------+ | lpad("abcd",3,"b") | @@ -266,6 +278,7 @@ rpad() 在指定字符串的尾部填充字符串至指定长度,并返回结 示例: ```ngql +# 在字符串 "abcd" 尾部填充 "b" 字符,延长字符串长度至 10 nebula> RETURN rpad("abcd",10,"b"); +---------------------+ | rpad("abcd",10,"b") | @@ -273,6 +286,7 @@ nebula> RETURN rpad("abcd",10,"b"); | "abcdbbbbbb" | +---------------------+ +# 返回字符串 "abcd" 的前三个字符 nebula> RETURN rpad("abcd",3,"b"); +--------------------+ | rpad("abcd",3,"b") | @@ -316,6 +330,7 @@ substr() 和 substring() 从指定字符串的指定位置开始(不包括开 示例: ```ngql +# 返回字符串 "abcdefg" 从下标 2 开始的 4 个字符组成的子字符串 nebula> RETURN substr("abcdefg",2,4); +-----------------------+ | substr("abcdefg",2,4) | @@ -323,6 +338,7 @@ nebula> RETURN substr("abcdefg",2,4); | "cdef" | +-----------------------+ +# 返回字符串 "abcdefg" 从下标 0 开始的 4 个字符组成的子字符串 nebula> RETURN substr("abcdefg",0,4); +-----------------------+ | substr("abcdefg",0,4) | @@ -330,6 +346,7 @@ nebula> RETURN substr("abcdefg",0,4); | "abcd" | +-----------------------+ +# 返回字符串 "abcdefg" 从下标 0 开始到结尾的字符组成的子字符串 nebula> RETURN substr("abcdefg",2); +---------------------+ | substr("abcdefg",2) | @@ -351,6 +368,7 @@ reverse() 逆序返回指定的字符串。 示例: ```ngql +# 逆序返回字符串 "abcdefg" nebula> RETURN reverse("abcdefg"); +--------------------+ | reverse("abcdefg") | @@ -422,7 +440,7 @@ concat() 返回所有参数连接成的字符串。 示例: ```ngql -//连接 1,2,3 +//拼接 1,2,3 nebula> RETURN concat("1","2","3") AS r; +-------+ | r | @@ -489,7 +507,7 @@ nebula> RETURN concat_ws("+","a",NULL,"b","c") AS r; | "a+b+c" | +---------+ -//分隔符为+。字符串参数只有一个 +//分隔符为 +。字符串参数只有一个 nebula> RETURN concat_ws("+","a") AS r; +-----+ | r | diff --git a/docs-2.0-zh/3.ngql-guide/6.functions-and-expressions/3.date-and-time.md b/docs-2.0-zh/3.ngql-guide/6.functions-and-expressions/3.date-and-time.md index e9f05d55ced..4afa8199256 100644 --- a/docs-2.0-zh/3.ngql-guide/6.functions-and-expressions/3.date-and-time.md +++ b/docs-2.0-zh/3.ngql-guide/6.functions-and-expressions/3.date-and-time.md @@ -1,6 +1,6 @@ # 内置日期时间函数 -{{nebula.name}}支持以下内置日期时间函数。 + {{nebula.name}} 支持以下内置日期时间函数。 |函数| 说明 | |:---- | :----| diff --git a/docs-2.0-zh/3.ngql-guide/6.functions-and-expressions/4.schema.md b/docs-2.0-zh/3.ngql-guide/6.functions-and-expressions/4.schema.md index e91fb762256..20ca05dd195 100644 --- a/docs-2.0-zh/3.ngql-guide/6.functions-and-expressions/4.schema.md +++ b/docs-2.0-zh/3.ngql-guide/6.functions-and-expressions/4.schema.md @@ -1,6 +1,6 @@ # Schema 相关函数 -本文介绍{{nebula.name}}支持的 [Schema](../../1.introduction/2.data-model.md) 相关的函数。 +本文介绍 {{nebula.name}} 支持的 [Schema](../../1.introduction/2.data-model.md) 相关的函数。 Schema 相关的函数分为两类: @@ -223,15 +223,15 @@ nebula> GO FROM "player100" OVER follow YIELD edge AS e; ### vertices -vertices 返回子图中的点的信息。详情参见 [GET SUBGRAPH](../16.subgraph-and-path/1.get-subgraph.md)。 +vertices 返回子图中的点的信息。详情参见 [GET SUBGRAPH](../../3.ngql-guide/7.general-query-statements/7.get-subgraph.md)。 ### edges -edges 返回子图中的边的信息。详情参见 [GET SUBGRAPH](../16.subgraph-and-path/1.get-subgraph.md)。 +edges 返回子图中的边的信息。详情参见 [GET SUBGRAPH](../../3.ngql-guide/7.general-query-statements/7.get-subgraph.md)。 ### path -path 返回路径信息。详情参见 [FIND PATH](../16.subgraph-and-path/2.find-path.md)。 +path 返回路径信息。详情参见 [FIND PATH](../../3.ngql-guide/7.general-query-statements/6.find-path.md)。 ## openCypher 兼容语句适用 diff --git a/docs-2.0-zh/3.ngql-guide/6.functions-and-expressions/5.conditional-expressions.md b/docs-2.0-zh/3.ngql-guide/6.functions-and-expressions/5.conditional-expressions.md index 7ec83a88dbe..4773369a527 100644 --- a/docs-2.0-zh/3.ngql-guide/6.functions-and-expressions/5.conditional-expressions.md +++ b/docs-2.0-zh/3.ngql-guide/6.functions-and-expressions/5.conditional-expressions.md @@ -1,6 +1,6 @@ # 条件表达式函数 -本文介绍{{nebula.name}}支持的条件表达式函数。 +本文介绍 {{nebula.name}} 支持的条件表达式函数。 ## CASE diff --git a/docs-2.0-zh/3.ngql-guide/6.functions-and-expressions/6.list.md b/docs-2.0-zh/3.ngql-guide/6.functions-and-expressions/6.list.md index 4e2d746aa25..e6693dc7119 100644 --- a/docs-2.0-zh/3.ngql-guide/6.functions-and-expressions/6.list.md +++ b/docs-2.0-zh/3.ngql-guide/6.functions-and-expressions/6.list.md @@ -1,6 +1,6 @@ # 列表函数 -本文介绍{{nebula.name}}支持的列表(List)函数。部分列表函数在原生 nGQL 语句和 openCypher 兼容语句中的语法不同。 +本文介绍 {{nebula.name}} 支持的列表(List)函数。部分列表函数在原生 nGQL 语句和 openCypher 兼容语句中的语法不同。 ## 注意事项 diff --git a/docs-2.0-zh/3.ngql-guide/6.functions-and-expressions/8.predicate.md b/docs-2.0-zh/3.ngql-guide/6.functions-and-expressions/8.predicate.md index b2db590113d..8e7d5eb0d9c 100644 --- a/docs-2.0-zh/3.ngql-guide/6.functions-and-expressions/8.predicate.md +++ b/docs-2.0-zh/3.ngql-guide/6.functions-and-expressions/8.predicate.md @@ -2,7 +2,7 @@ 谓词函数只返回`true`或`false`,通常用于`WHERE`子句中。 -{{nebula.name}}支持以下谓词函数。 + {{nebula.name}} 支持以下谓词函数。 | 函数 | 说明 | |:----- |:-------- | diff --git a/docs-2.0-zh/3.ngql-guide/6.functions-and-expressions/9.user-defined-functions.md b/docs-2.0-zh/3.ngql-guide/6.functions-and-expressions/9.user-defined-functions.md index 35ebbb087d0..8875b054337 100644 --- a/docs-2.0-zh/3.ngql-guide/6.functions-and-expressions/9.user-defined-functions.md +++ b/docs-2.0-zh/3.ngql-guide/6.functions-and-expressions/9.user-defined-functions.md @@ -2,4 +2,4 @@ ## openCypher 兼容性 -{{nebula.name}} {{ nebula.release }} 不支持自定义函数(UDF)和存储过程。 + {{nebula.name}} {{ nebula.release }} 不支持自定义函数(UDF)和存储过程。 diff --git a/docs-2.0-zh/3.ngql-guide/7.general-query-statements/1.general-query-statements-overview.md b/docs-2.0-zh/3.ngql-guide/7.general-query-statements/1.general-query-statements-overview.md new file mode 100644 index 00000000000..a8be785022b --- /dev/null +++ b/docs-2.0-zh/3.ngql-guide/7.general-query-statements/1.general-query-statements-overview.md @@ -0,0 +1,259 @@ +# {{nebula.name}} 查询语句概述 + +本文介绍 {{nebula.name}} 的通用的查询语句分类及各类语句的使用场景。 + +## 背景信息 + +{{nebula.name}} 的数据以点和边的形式存储。每个点可以有 0 或多个标签(Tag);每条边有且仅有一个边类型(Edge Type)。标签定义点的类型以及描述点的属性;边类型定义边的类型以及描述边的属性。在查询时,可以通过指定点的标签或边的类型来限定查询的范围。更多信息,请参见[数据模型](../1.nGQL-overview/3.graph-patterns.md)。 + +## 查询语句分类 + +{{nebula.name}} 的核心查询语句可分为: + +- [FETCH PROP ON](#fetch_prop_on) +- [LOOKUP ON](#lookup_on) +- [GO](#go) +- [MATCH](#match) +- [FIND PATH](#find_path) +- [GET SUBGRAPH](#get_subgraph) +- [SHOW](#show) + +`FETCH PROP ON`和`LOOKUP ON`更多用于基础的数据查询;`GO`和`MATCH`用于更复杂的查询和图数据遍历;`FIND PATH`和`GET SUBGRAPH`用于图数据的路径查询和子图查询;`SHOW`用于获取数据库的元数据信息。 + +## 用法及使用场景 + +### FETCH PROP ON + +**用法**:用于获取指定点或边的属性。 + +**场景**:已知具体的点 ID 或边 ID,并想获取其属性。 + +**说明**: + +- 必需指定点或边的 ID。 +- 必需指定点或边所属的标签或边类型。 +- 使用`YIELD`子句指定返回的属性。 + +**示例**: + +```ngql +FETCH PROP ON player "player100" YIELD properties(vertex); + --+--- ----+----- -------+---------- + | | | + | | | + | | +--------- 返回点的 player TAG 下所有属性 + | | + | +----------------- 从 "player100" 这个点获取 + | + +--------------------------- 获取 player 这个 TAG 下的属性 +``` + +更多信息,请参见 [FETCH PROP ON](4.fetch.md)。 + +### LOOKUP ON + +**用法**:用于基于索引查询点或边 ID。 + +**场景**:根据属性值查找点或边的 ID。 + +**说明**: + +- 必需预先定义[索引](../14.native-index-statements/README.md)。 +- 必需指定点或边所属的标签或边类型。 +- 使用`YIELD`子句指定返回的 ID。 + +**示例**: + +```ngql +LOOKUP ON player WHERE player.name == "Tony Parker" YIELD id(vertex); + --+--- ------------------+--------------- ---+------ + | | | + | | | + | | +---- 返回查到点的 VID + | | + | +------------ 过滤条件是属性 name 的值 + | + +----------------------------------- 根据点的 TAG player 查询 +``` + +更多信息,请参见 [LOOKUP ON](5.lookup.md)。 + +### GO + +**用法**:用于基于给定的点进行图遍历,按需返回起始点、边或目标点的信息。可以指定遍历的深度、边的类型、方向等。 + +**场景**:复杂的图遍历,比如找到某个点的朋友、朋友的朋友等。 + +**说明**: + +- 结合[属性引用符](../5.operators/5.property-reference.md)(`$^`和`$$`)来返回起始点或目标点的属性,例如`YIELD $^.player.name`。 +- 结合[函数](../6.functions-and-expressions/4.schema.md)`properties($^)`和`properties($$)`来返回起始点或目标点的所有属性;或者在函数中指定属性名,来返回指定的属性,例如`YIELD properties($^).name`。 +- 结合[函数](../6.functions-and-expressions/4.schema.md)`src(edge)`和`dst(edge)`来返回边的起始点或目标点 ID,例如`YIELD src(edge)`。 + +**示例**: + +```ngql +GO 3 STEPS FROM "player102" OVER follow YIELD dst(edge); +-----+--- --+------- -+---- ---+----- + | | | | + | | | | + | | | +--------- 返回最后一跳边的终点 + | | | + | | +------ 从 follow 这个边的出方向探索 + | | + | +--------------------- 起点是 "player102" + | + +---------------------------------- 探索 3 步 +``` + +更多信息,请参见 [GO](3.go.md)。 + +### MATCH + +**用法**:用于执行复杂的[图模式](../1.nGQL-overview/3.graph-patterns.md)匹配查询。 + +**场景**:复杂的图模式匹配时使用,比如寻找满足特定模式的点和边的组合。 + +**说明**: + +MATCH 语句兼容 OpenCypher 的语法,但是有一些差异: + +- 使用`==`表达相等判断而不是`=`,例如`WHERE player.name == "Tony Parker"`。 + +- 引用点的属性时,需要指定点的标签,例如`YIELD player.name`。 + +- 新增`WHERE id(v) == "player100"`语法。 + +- 必须使用`RETURN`子句指定返回的信息。 + +**示例**: + +```ngql +MATCH (v:player{name:"Tim Duncan"})--(v2:player) \ + RETURN v2.player.name AS Name; +``` + +更多信息,请参见 [MATCH](2.match.md)。 + +### FIND PATH + +**用法**:用于查询给定的起始点和目标点之间的所有路径;或者查询路径中的点和边的属性时使用。 + +**场景**:查询两个点之间的所有路径。 + +**说明**:必须使用`YIELD`子句指定返回信息。 + +**示例**: + +```ngql +FIND SHORTEST PATH FROM "player102" TO "team204" OVER * YIELD path AS p; +-------+----- -------+---------------- ---+-- ----+---- + | | | | + | | | | + | | | +---------- 返回路径为 p 列 + | | | + | | +----------- 经由所有类型的边的出方向探索 + | | + | | + | +------------------ 从给定的起点、终点 VID + | + +--------------------------- 查找最短路径 +``` + +更多信息,请参见 [FIND PATH](6.find-path.md)。 + +### GET SUBGRAPH + +**用法**:提取满足特定条件的图的一部分;查询子图中的点和边的属性。 + +**场景**:分析图的局部结构或特定区域时非常有用,比如提取某个人的社交网络子图,或者提取某个区域的交通网络。 + +**说明**:必须使用`YIELD`子句指定返回信息。 + +**示例**: + +```ngql +GET SUBGRAPH 5 STEPS FROM "player101" YIELD VERTICES AS nodes, EDGES AS relationships; + -----+- -----+-------- ------------------------+---------------- + | | | + | | | + | +------- 从 "player101" 开始出发 +------------ 返回所有的点、边 + | + +----------------- 获取 5 步的探索 +``` + +更多信息,请参见 [GET SUBGRAPH](7.get-subgraph.md)。 + +### SHOW + +SHOW 语句主要用于获取数据库的元数据信息,而不是用于获取存储在数据库中的实际数据内容。这类语句通常用于查询数据库的结构和配置,如查看现有的图空间、标签、边类型、索引等。 + + | 语句 | 语法 | 示例 | 说明 | + | ------------------------------------------------------------ | ------------------------------------------------- | ------------------------------------ | -------------------------------------------------------- | + | [SHOW CHARSET](6.show/1.show-charset.md) | `SHOW CHARSET` | `SHOW CHARSET` | 显示当前的字符集。 | + | [SHOW COLLATION](6.show/2.show-collation.md) | `SHOW COLLATION` | `SHOW COLLATION` | 显示当前的排序规则。 | + | [SHOW CREATE SPACE](6.show/4.show-create-space.md) | `SHOW CREATE SPACE ` | `SHOW CREATE SPACE basketballplayer` | 显示指定图空间的创建语句。 | + | [SHOW CREATE TAG/EDGE](6.show/5.show-create-tag-edge.md) | `SHOW CREATE {TAG | EDGE }` | `SHOW CREATE TAG player` | 显示指定 Tag/Edge type 的基本信息。 | + | [SHOW HOSTS](6.show/6.show-hosts.md) | `SHOW HOSTS [GRAPH | STORAGE | META]` | `SHOW HOSTS`
`SHOW HOSTS GRAPH` | 显示 Graph、Storage、Meta 服务主机信息、版本信息。 | + | [SHOW INDEX STATUS](6.show/7.show-index-status.md) | `SHOW {TAG | EDGE} INDEX STATUS` | `SHOW TAG INDEX STATUS` | 重建原生索引的作业状态,以便确定重建索引是否成功。 | + | [SHOW INDEXES](6.show/8.show-indexes.md) | `SHOW {TAG | EDGE} INDEXES` | `SHOW TAG INDEXES` | 列出当前图空间内的所有 Tag 和 Edge type(包括属性)的索引。 | + | [SHOW PARTS](6.show/9.show-parts.md) | `SHOW PARTS []` | `SHOW PARTS` | 显示图空间中指定分片或所有分片的信息。 | + | [SHOW ROLES](6.show/10.show-roles.md) | `SHOW ROLES IN ` | `SHOW ROLES in basketballplayer` | 显示分配给用户的角色信息。 | + | [SHOW SNAPSHOTS](6.show/11.show-snapshots.md) | `SHOW SNAPSHOTS` | `SHOW SNAPSHOTS` | 显示所有快照信息。 | + | [SHOW SPACES](6.show/12.show-spaces.md) | `SHOW SPACES` | `SHOW SPACES` | 显示现存的图空间。 | + | [SHOW STATS](6.show/14.show-stats.md) | `SHOW STATS` | `SHOW STATS` | 显示最近`STATS`作业收集的图空间统计信息。 | + | [SHOW TAGS/EDGES](6.show/15.show-tags-edges.md) | `SHOW TAGS | EDGES` | `SHOW TAGS`、`SHOW EDGES` | 显示当前图空间内的所有 Tag/Edge type。 | + | [SHOW USERS](6.show/16.show-users.md) | `SHOW USERS` | `SHOW USERS` | 显示用户信息。 | + | [SHOW SESSIONS](6.show/17.show-sessions.md) | `SHOW SESSIONS ` | ` SHOW SESSIONS` | 显示所有会话信息。 | + | [SHOW SESSIONS](6.show/17.show-sessions.md) | `SHOW SESSION ` | `SHOW SESSION 1623304491050858` | 指定会话 ID 进行查看。 | + | [SHOW QUERIES](6.show/18.show-queries.md) | `SHOW [ALL] QUERIES` | `SHOW QUERIES` | 查看当前 Session 中正在执行的查询请求信息。 | + | [SHOW META LEADER](6.show/19.show-meta-leader.md) | `SHOW META LEADER` | `SHOW META LEADER` | 显示当前 Meta 集群的 leader 信息。 | + +## 复合查询 + +{{nebula.name}} 的查询语句可以组合使用,以实现更复杂的查询。 + +复合语句中如需引用子查询的结果,需要为该结果设置别名,并使用[管道符`|`](../5.operators/4.pipe.md)传递给下一个子查询,同时在下一个子查询中使用`$-`引用该结果的别名。详情参见[管道符](../5.operators/4.pipe.md)。 + +示例: + +```ngql +nebula> GO FROM "player100" OVER follow \ + YIELD dst(edge) AS dstid, properties($$).name AS Name | \ + GO FROM $-.dstid OVER follow YIELD dst(edge); + ++-------------+ +| dst(EDGE) | ++-------------+ +| "player100" | +| "player102" | +| "player125" | +| "player100" | ++-------------+ +``` + +管道符`|`仅适用于 nGQL,不适用于 OpenCypher 语句,即不能在 MATCH 语句中使用管道符。如果需要使用 MATCH 语句进行复合查询,可以使用 [WITH 子句](../8.clauses-and-options/with.md)。 + +示例: + +```ngql +nebula> MATCH (v:player)-->(v2:player) \ + WITH DISTINCT v2 AS v2, v2.player.age AS Age \ + ORDER BY Age \ + WHERE Age<25 \ + RETURN v2.player.name AS Name, Age; ++----------------------+-----+ +| Name | Age | ++----------------------+-----+ +| "Luka Doncic" | 20 | +| "Ben Simmons" | 22 | +| "Kristaps Porzingis" | 23 | ++----------------------+-----+ +``` + +## 更多信息 + +- [nGQL 简明教程](https://www.siwei.io/ngql-tutorial/) +- [nGQL 语句汇总](../../2.quick-start/6.cheatsheet-for-ngql-command.md) + + diff --git a/docs-2.0-zh/3.ngql-guide/7.general-query-statements/2.match.md b/docs-2.0-zh/3.ngql-guide/7.general-query-statements/2.match.md index ed726ef400c..e95a6bcfd6f 100644 --- a/docs-2.0-zh/3.ngql-guide/7.general-query-statements/2.match.md +++ b/docs-2.0-zh/3.ngql-guide/7.general-query-statements/2.match.md @@ -44,6 +44,7 @@ MATCH [] RETURN []; 用户可以在一对括号中使用自定义变量来表示模式中的点。例如`(v)`。 ```ngql +# 匹配全图空间中的任意 3 个点 nebula> MATCH (v) \ RETURN v \ LIMIT 3; @@ -60,11 +61,12 @@ nebula> MATCH (v) \ !!! compatibility "历史版本兼容性" - 在{{nebula.name}} 3.0.0 之前,匹配 Tag 的前提是 Tag 本身有索引或者 Tag 的某个属性有索引,否则,用户无法基于该 Tag 执行`MATCH`语句。从{{nebula.name}} 3.0.0 开始,匹配 Tag 可以不创建索引,但需要使用`LIMIT`限制输出结果数量。从{{nebula.name}} 3.5.0 开始,`MATCH`语句支持全表扫描,无需为 Tag 或 Tag 的某个属性创建索引,或者使用`LIMIT`限制输出结果数量,即可执行`MATCH`语句。 + 在 {{nebula.name}} 3.0.0 之前,匹配 Tag 的前提是 Tag 本身有索引或者 Tag 的某个属性有索引,否则,用户无法基于该 Tag 执行`MATCH`语句。从 {{nebula.name}} 3.0.0 开始,匹配 Tag 可以不创建索引,但需要使用`LIMIT`限制输出结果数量。从 {{nebula.name}} 3.5.0 开始,`MATCH`语句支持全表扫描,无需为 Tag 或 Tag 的某个属性创建索引,或者使用`LIMIT`限制输出结果数量,即可执行`MATCH`语句。 用户可以在点的右侧用`:`表示模式中的 Tag。 ```ngql +# 匹配全图空间中所有 Tag 为 player 的点 nebula> MATCH (v:player) \ RETURN v; +-----------------------------------------------------------+ @@ -109,6 +111,7 @@ nebula> MATCH (v:player{name:"Tim Duncan"}) \ 使用`WHERE`子句也可以实现相同的操作: ```ngql +# 查找类型为 player,名字为 Tim Duncan 的点。 nebula> MATCH (v:player) \ WHERE v.player.name == "Tim Duncan" \ RETURN v; @@ -155,6 +158,7 @@ nebula> WITH ['Tim Duncan', 'Yao Ming'] AS names \ 用户可以使用点 ID 去匹配点。`id()`函数可以检索点的 ID。 ```ngql +# 查找 ID 为 “player101” 的点。(注:ID 全局唯一)。 nebula> MATCH (v) \ WHERE id(v) == 'player101' \ RETURN v; @@ -168,6 +172,7 @@ nebula> MATCH (v) \ 要匹配多个点的 ID,可以用`WHERE id(v) IN [vid_list]`或者`WHERE id(v) IN {vid_list}`。 ```ngql +# 查找与 `Tim Duncan` 直接相连的点,并且这些点的 ID 必须是 `player101` 或 `player102`。 nebula> MATCH (v:player { name: 'Tim Duncan' })--(v2) \ WHERE id(v2) IN ["player101", "player102"] \ RETURN v2; @@ -213,7 +218,7 @@ nebula> MATCH (v:player{name:"Tim Duncan"})--(v2:player) \ 用户可以在`--`符号上增加`<`或`>`符号指定边的方向。 ```ngql -# -->表示边从 v 开始,指向 v2。对于点 v 来说是出边,对于点 v2 来说是入边。 +# `-->` 表示边从 v 开始,指向 v2。对于点 v 来说是出边,对于点 v2 来说是入边。 nebula> MATCH (v:player{name:"Tim Duncan"})-->(v2:player) \ RETURN v2.player.name AS Name; +-----------------+ @@ -313,7 +318,7 @@ nebula> MATCH ()<-[e]-() \ !!! compatibility "历史版本兼容性" - 在{{nebula.name}} 3.0.0 之前,匹配 Edge Type 的前提是 Edge type 本身有对应属性的索引,否则,用户无法基于 Edge Type 执行 `MATCH` 语句。从{{nebula.name}} 3.0.0 开始,匹配 Edge Type 可以不创建索引,但需要使用 `LIMIT` 限制输出结果数量,并且必须指定边的方向。从{{nebula.name}} 3.5.0 开始,无需为 Edge Type 创建索引或者使用`LIMIT`限制输出结果数量,即可使用`MATCH`语句匹配边。 + 在 {{nebula.name}} 3.0.0 之前,匹配 Edge Type 的前提是 Edge Type 本身有对应属性的索引,否则,用户无法基于 Edge Type 执行 `MATCH` 语句。从 {{nebula.name}} 3.0.0 开始,匹配 Edge Type 可以不创建索引,但需要使用 `LIMIT` 限制输出结果数量,并且必须指定边的方向。从 {{nebula.name}} 3.5.0 开始,无需为 Edge Type 创建索引或者使用`LIMIT`限制输出结果数量,即可使用`MATCH`语句匹配边。 ```ngql nebula> MATCH ()-[e:follow]->() \ diff --git a/docs-2.0-zh/3.ngql-guide/7.general-query-statements/3.go.md b/docs-2.0-zh/3.ngql-guide/7.general-query-statements/3.go.md index 4d36bd8318f..8189e20a601 100644 --- a/docs-2.0-zh/3.ngql-guide/7.general-query-statements/3.go.md +++ b/docs-2.0-zh/3.ngql-guide/7.general-query-statements/3.go.md @@ -1,6 +1,6 @@ # GO -`GO`语句是{{nebula.name}}图数据库中用于从给定起始点开始遍历图的语句。`GO`语句采用的路径类型是[`walk`](../../1.introduction/2.1.path.md),即遍历时点和边都可以重复。 +`GO`语句是 {{nebula.name}} 图数据库中用于从给定起始点开始遍历图的语句。`GO`语句采用的路径类型是[`walk`](../../1.introduction/2.1.path.md),即遍历时点和边都可以重复。 ## openCypher 兼容性 @@ -29,7 +29,7 @@ YIELD [DISTINCT] [AS ] [, [AS ] ...] ``` -- ` {STEP|STEPS}`:指定跳数。如果没有指定跳数,默认值`N`为`1`。如果`N`为`0`,{{nebula.name}}不会检索任何边。 +- ` {STEP|STEPS}`:指定跳数。如果没有指定跳数,默认值`N`为`1`。如果`N`为`0`,{{nebula.name}} 不会检索任何边。 - `M TO N {STEP|STEPS}`:遍历`M~N`跳的边。如果`M`为`0`,输出结果和`M`为`1`相同,即`GO 0 TO 2`和`GO 1 TO 2`是相同的。 @@ -146,6 +146,26 @@ nebula> GO FROM "player100", "player102" OVER serve \ +-----------------+------------+---------------------+ ``` +### 查询所有边 + +场景:查询起始点关联的所有边。 + +```ngql +# 返回 player102 关联的所有边。 +nebula> GO FROM "player102" OVER * BIDIRECT YIELD edge AS e; ++-----------------------------------------------------------------------+ +| e | ++-----------------------------------------------------------------------+ +| [:follow "player101"->"player102" @0 {degree: 90}] | +| [:follow "player103"->"player102" @0 {degree: 70}] | +| [:follow "player135"->"player102" @0 {degree: 80}] | +| [:follow "player102"->"player100" @0 {degree: 75}] | +| [:follow "player102"->"player101" @0 {degree: 75}] | +| [:serve "player102"->"team203" @0 {end_year: 2015, start_year: 2006}] | +| [:serve "player102"->"team204" @0 {end_year: 2019, start_year: 2015}] | ++-----------------------------------------------------------------------+ +``` + ### 查询多个 Edge type 场景:查询起始点关联的多个边类型可以通过设置多个Edge Type实现,也可以通过设置`*`关联所有的边类型。 diff --git a/docs-2.0-zh/3.ngql-guide/7.general-query-statements/4.fetch.md b/docs-2.0-zh/3.ngql-guide/7.general-query-statements/4.fetch.md index cf2c460920f..cfb2664ad20 100644 --- a/docs-2.0-zh/3.ngql-guide/7.general-query-statements/4.fetch.md +++ b/docs-2.0-zh/3.ngql-guide/7.general-query-statements/4.fetch.md @@ -29,6 +29,7 @@ YIELD [DISTINCT] [AS ]; 在`FETCH`语句中指定 Tag 获取对应点的属性值。 ```ngql +# 获取 Tag 为 player,且 ID 为 player100 的点数据的属性值。 nebula> FETCH PROP ON player "player100" YIELD properties(vertex); +-------------------------------+ | properties(VERTEX) | @@ -42,6 +43,7 @@ nebula> FETCH PROP ON player "player100" YIELD properties(vertex); 使用`YIELD`子句指定返回的属性。 ```ngql +# 获取 Tag 为 player,且 ID 为 player100 的点数据 name 的属性值。 nebula> FETCH PROP ON player "player100" \ YIELD properties(vertex).name AS name; +--------------+ @@ -56,6 +58,7 @@ nebula> FETCH PROP ON player "player100" \ 指定多个点 ID 获取多个点的属性值,点之间用英文逗号(,)分隔。 ```ngql +# 获取 Tag 为 player,且 ID 为 player101,player102,player103 三个点数据的属性值。 nebula> FETCH PROP ON player "player101", "player102", "player103" YIELD properties(vertex); +--------------------------------------+ | properties(VERTEX) | @@ -89,6 +92,7 @@ nebula> FETCH PROP ON player, t1 "player100" YIELD vertex AS v; 用户可以在`FETCH`语句中组合多个 Tag 和多个点。 ```ngql +# 获取 Tag 为 player 或 t1,且 ID 为 player100,player103 两个点数据的属性值。 nebula> FETCH PROP ON player, t1 "player100", "player103" YIELD vertex AS v; +----------------------------------------------------------------------------+ | v | @@ -103,6 +107,7 @@ nebula> FETCH PROP ON player, t1 "player100", "player103" YIELD vertex AS v; 在`FETCH`语句中使用`*`获取当前图空间所有标签里,点的属性值。 ```ngql +# 获取当前图空间所有标签里 ID 为 player100,player106,team200 的点数据属性值。 nebula> FETCH PROP ON * "player100", "player106", "team200" YIELD vertex AS v; +----------------------------------------------------------------------------+ | v | @@ -147,6 +152,7 @@ nebula> FETCH PROP ON serve "player100" -> "team204" YIELD properties(edge); 使用`YIELD`子句指定返回的属性。 ```ngql +# 获取连接 player100 和 team204 的边 serve 的 start_year 属性值。 nebula> FETCH PROP ON serve "player100" -> "team204" \ YIELD properties(edge).start_year; +-----------------------------+ @@ -161,6 +167,7 @@ nebula> FETCH PROP ON serve "player100" -> "team204" \ 指定多个边模式 (` -> [@]`) 获取多个边的属性值。模式之间用英文逗号(,)分隔。 ```ngql +# 获取连接 player100 和 team204 的边,连接 player133 和 team202 的边 serve 的所有属性值。 nebula> FETCH PROP ON serve "player100" -> "team204", "player133" -> "team202" YIELD edge AS e; +-----------------------------------------------------------------------+ | e | @@ -204,7 +211,7 @@ nebula> FETCH PROP ON serve "player100" -> "team204"@1 YIELD edge AS e; 将`FETCH`与原生 nGQL 结合使用是一种常见的方式,例如和`GO`一起。 ```ngql -# 返回从点 player101 开始的 follow 边的 degree 值。 +# 返回从点 player101 开始的 follow 边的 degree 值。src(edge) 获取边的起始点 ID,dst(edge) 获取边的目的点 ID。 nebula> GO FROM "player101" OVER follow \ YIELD src(edge) AS s, dst(edge) AS d \ | FETCH PROP ON follow $-.s -> $-.d \ @@ -221,6 +228,7 @@ nebula> GO FROM "player101" OVER follow \ 用户也可以通过自定义变量构建类似的查询。 ```ngql +# 返回从点 player101 开始的 follow 边的 degree 值。src(edge) 获取边的起始点 ID,dst(edge) 获取边的目的点 ID。 nebula> $var = GO FROM "player101" OVER follow \ YIELD src(edge) AS s, dst(edge) AS d; \ FETCH PROP ON follow $var.s -> $var.d \ diff --git a/docs-2.0-zh/3.ngql-guide/7.general-query-statements/5.lookup.md b/docs-2.0-zh/3.ngql-guide/7.general-query-statements/5.lookup.md index 4c720219c2c..6f83f88099f 100644 --- a/docs-2.0-zh/3.ngql-guide/7.general-query-statements/5.lookup.md +++ b/docs-2.0-zh/3.ngql-guide/7.general-query-statements/5.lookup.md @@ -69,8 +69,10 @@ YIELD [DISTINCT] [AS ] 返回 Tag 为`player`且`name`为`Tony Parker`的点。 ```ngql +# 创建 Tag 为 player 的复合属性索引 index_player。 nebula> CREATE TAG INDEX IF NOT EXISTS index_player ON player(name(30), age); +# 重建复合属性索引 index_player,返回任务 id。 nebula> REBUILD TAG INDEX index_player; +------------+ | New Job Id | @@ -78,6 +80,7 @@ nebula> REBUILD TAG INDEX index_player; | 15 | +------------+ +# 返回所有 name 等于 Tony Parker 的点数据的 ID。 nebula> LOOKUP ON player \ WHERE player.name == "Tony Parker" \ YIELD id(vertex); @@ -87,6 +90,7 @@ nebula> LOOKUP ON player \ | "player101" | +---------------+ +# 查询所有 name 等于 Tony Parker 的点数据,返回 name 和 age 属性值。 nebula> LOOKUP ON player \ WHERE player.name == "Tony Parker" \ YIELD properties(vertex).name AS name, properties(vertex).age AS age; @@ -96,6 +100,7 @@ nebula> LOOKUP ON player \ | "Tony Parker" | 36 | +---------------+-----+ +# 查询所有 age 大于 45 的点数据,并返回点数据的 ID。 nebula> LOOKUP ON player \ WHERE player.age > 45 \ YIELD id(vertex); @@ -106,6 +111,7 @@ nebula> LOOKUP ON player \ | "player140" | +-------------+ +# 查询所有 name 以 B 开头,且 age 在 22 和 30 之间的点数据,并返回 name 和 age 属性值。 nebula> LOOKUP ON player \ WHERE player.name STARTS WITH "B" \ AND player.age IN [22,30] \ @@ -117,6 +123,7 @@ nebula> LOOKUP ON player \ | "Blake Griffin" | 30 | +-------------------------+------------------------+ +# 查询所有 name 等于 Kobe Bryant 的点数据,返回点的 ID 和 name 属性值,并以此为起始点进行遍历,返回遍历结果。 nebula> LOOKUP ON player \ WHERE player.name == "Kobe Bryant"\ YIELD id(vertex) AS VertexID, properties(vertex).name AS name |\ @@ -135,8 +142,10 @@ nebula> LOOKUP ON player \ 返回 Edge type 为`follow`且`degree`为`90`的边。 ```ngql +# 创建 Edge type 为 follow,属性 degree 的索引 index_follow。 nebula> CREATE EDGE INDEX IF NOT EXISTS index_follow ON follow(degree); +# 重建属性索引 index_follow,返回任务 id。 nebula> REBUILD EDGE INDEX index_follow; +------------+ | New Job Id | @@ -144,6 +153,7 @@ nebula> REBUILD EDGE INDEX index_follow; | 62 | +------------+ +# 查询并返回所有 degree 等于 90 的边。 nebula> LOOKUP ON follow \ WHERE follow.degree == 90 YIELD edge AS e; +----------------------------------------------------+ @@ -154,6 +164,7 @@ nebula> LOOKUP ON follow \ | [:follow "player118"->"player131" @0 {degree: 90}] | ... +# 查询所有 degree 等于 90 的边,并返回 degree 属性值。 nebula> LOOKUP ON follow \ WHERE follow.degree == 90 \ YIELD properties(edge).degree; @@ -164,6 +175,7 @@ nebula> LOOKUP ON follow \ | 90 | ... +# 根据 degree 属性值升序排列,并返回前 10 条 degree 属性值。 nebula> LOOKUP ON follow \ YIELD properties(edge).degree as degree \ | ORDER BY $-.degree \ @@ -183,6 +195,7 @@ nebula> LOOKUP ON follow \ | 70 | +--------+ +# 查询所有 degree 等于 60 的边,返回边的目的点 ID 和边的 degree 属性值,并为此起始点进行遍历,返回遍历结果。 nebula> LOOKUP ON follow \ WHERE follow.degree == 60 \ YIELD dst(edge) AS DstVID, properties(edge).degree AS Degree |\ @@ -206,10 +219,13 @@ nebula> LOOKUP ON follow \ - 查找所有 Tag 为`player`的点 VID。 ```ngql + # 创建名为 player 的 Tag。 nebula> CREATE TAG IF NOT EXISTS player(name string,age int); + # 创建 Tag 为 player 的索引 player_index。 nebula> CREATE TAG INDEX IF NOT EXISTS player_index on player(); + # 重建索引 player_index,返回任务 id。 nebula> REBUILD TAG INDEX player_index; +------------+ | New Job Id | @@ -217,11 +233,11 @@ nebula> LOOKUP ON follow \ | 66 | +------------+ + # 插入两个点数据。 nebula> INSERT VERTEX player(name,age) \ VALUES "player100":("Tim Duncan", 42), "player101":("Tony Parker", 36); # 列出所有的 player。类似于 MATCH (n:player) RETURN id(n) /*, n */。 - nebula> LOOKUP ON player YIELD id(vertex); +-------------+ | id(VERTEX) | @@ -245,10 +261,13 @@ nebula> LOOKUP ON follow \ - 查找 Edge type 为`follow`的所有边的信息。 ```ngql + # 创建名为 follow 的 Edge type。 nebula> CREATE EDGE IF NOT EXISTS follow(degree int); + # 创建 Edge type 为 follow 的索引 follow_index。 nebula> CREATE EDGE INDEX IF NOT EXISTS follow_index on follow(); + # 重建索引 follow_index。 nebula> REBUILD EDGE INDEX follow_index; +------------+ | New Job Id | @@ -256,11 +275,11 @@ nebula> LOOKUP ON follow \ | 88 | +------------+ + # 插入边数据。 nebula> INSERT EDGE follow(degree) \ VALUES "player100"->"player101":(95); # 列出所有的 follow 边。类似于 MATCH (s)-[e:follow]->(d) RETURN id(s), rank(e), id(d) /*, type(e) */。 - nebula)> LOOKUP ON follow YIELD edge AS e; +-----------------------------------------------------+ | e | @@ -276,6 +295,7 @@ nebula> LOOKUP ON follow \ 统计 Tag 为`player`的点和 Edge type 为`follow`的边。 ```ngql +# 统计 Tag 为 player 的点总数。 nebula> LOOKUP ON player YIELD id(vertex)|\ YIELD COUNT(*) AS Player_Number; +---------------+ @@ -284,6 +304,7 @@ nebula> LOOKUP ON player YIELD id(vertex)|\ | 51 | +---------------+ +# 统计 Edge type 为 follow 的边总数。 nebula> LOOKUP ON follow YIELD edge AS e| \ YIELD COUNT(*) AS Follow_Number; +---------------+ diff --git a/docs-2.0-zh/3.ngql-guide/16.subgraph-and-path/2.find-path.md b/docs-2.0-zh/3.ngql-guide/7.general-query-statements/6.find-path.md similarity index 95% rename from docs-2.0-zh/3.ngql-guide/16.subgraph-and-path/2.find-path.md rename to docs-2.0-zh/3.ngql-guide/7.general-query-statements/6.find-path.md index 820edc554b0..f7554d16b5a 100644 --- a/docs-2.0-zh/3.ngql-guide/16.subgraph-and-path/2.find-path.md +++ b/docs-2.0-zh/3.ngql-guide/7.general-query-statements/6.find-path.md @@ -67,6 +67,7 @@ YIELD path as 返回的路径格式类似于`()-[:@]->( FIND SHORTEST PATH FROM "player102" TO "team204" OVER * YIELD path AS p; +--------------------------------------------+ | p | @@ -76,6 +77,7 @@ nebula> FIND SHORTEST PATH FROM "player102" TO "team204" OVER * YIELD path AS p; ``` ```ngql +# 查找并返回带属性值的 team204 到 player100 的最短反向路径。 nebula> FIND SHORTEST PATH WITH PROP FROM "team204" TO "player100" OVER * REVERSELY YIELD path AS p; +--------------------------------------------------------------------------------------------------------------------------------------+ | p | @@ -85,6 +87,7 @@ nebula> FIND SHORTEST PATH WITH PROP FROM "team204" TO "player100" OVER * REVERS ``` ```ngql +# 查找并返回起点为 player100,player130 而终点为 player132,player133 的 18 跳之内双向最短路径。 nebula> FIND SHORTEST PATH FROM "player100", "player130" TO "player132", "player133" OVER * BIDIRECT UPTO 18 STEPS YIELD path as p; +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | p | @@ -104,6 +107,7 @@ nebula> FIND SHORTEST PATH FROM "player100", "player130" TO "player132", "player ```ngql +# 查找所有从 player100 到 team204,并且 degree 为空或者大于等于 0 的路径。 nebula> FIND ALL PATH FROM "player100" TO "team204" OVER * WHERE follow.degree is EMPTY or follow.degree >=0 YIELD path AS p; +------------------------------------------------------------------------------+ | p | @@ -116,6 +120,7 @@ nebula> FIND ALL PATH FROM "player100" TO "team204" OVER * WHERE follow.degree i ``` ```ngql +# 查找所有从 player100 到 team204 无环路径。 nebula> FIND NOLOOP PATH FROM "player100" TO "team204" OVER * YIELD path AS p; +--------------------------------------------------------------------------------------------------------+ | p | diff --git a/docs-2.0-zh/3.ngql-guide/7.general-query-statements/6.show/1.show-charset.md b/docs-2.0-zh/3.ngql-guide/7.general-query-statements/6.show/1.show-charset.md index d43270ec9eb..7cb4ac39bd9 100644 --- a/docs-2.0-zh/3.ngql-guide/7.general-query-statements/6.show/1.show-charset.md +++ b/docs-2.0-zh/3.ngql-guide/7.general-query-statements/6.show/1.show-charset.md @@ -2,7 +2,7 @@ `SHOW CHARSET`语句显示当前的字符集。 -目前可用的字符集为`utf8`和`utf8mb4`。默认字符集为`utf8`。{{nebula.name}} 扩展`uft8`支持四字节字符,因此`utf8`和`utf8mb4`是等价的。 +目前可用的字符集为`utf8`和`utf8mb4`。默认字符集为`utf8`。 {{nebula.name}} 扩展`uft8`支持四字节字符,因此`utf8`和`utf8mb4`是等价的。 ## 语法 diff --git a/docs-2.0-zh/3.ngql-guide/7.general-query-statements/6.show/17.show-sessions.md b/docs-2.0-zh/3.ngql-guide/7.general-query-statements/6.show/17.show-sessions.md index 2273efa5a08..c5008d1ff9e 100644 --- a/docs-2.0-zh/3.ngql-guide/7.general-query-statements/6.show/17.show-sessions.md +++ b/docs-2.0-zh/3.ngql-guide/7.general-query-statements/6.show/17.show-sessions.md @@ -1,6 +1,6 @@ # SHOW SESSIONS -登录{{nebula.name}}数据库时,会创建对应会话,用户可以查询会话信息。 +登录 {{nebula.name}} 数据库时,会创建对应会话,用户可以查询会话信息。 ## 注意事项 @@ -49,9 +49,9 @@ nebula> SHOW SESSION 1635254859271703; |`SpaceName`|用户当前所使用的图空间。刚登录时为空(`""`)。| |`CreateTime`|会话的创建时间,即用户认证登录的时间。时区为配置文件中`timezone_name`指定的时区。| |`UpdateTime`|用户有执行操作时,会更新此时间。时区为配置文件中`timezone_name`指定的时区。| -|`GraphAddr`|会话的 Graph 服务地址和端口。| +|`GraphAddr`|会话的 Graph 服务 IP(或主机名)和端口。| |`Timezone`|保留参数,暂无意义。| -|`ClientIp`|会话的客户端 IP 地址。| +|`ClientIp`|会话的客户端 IP 或主机名。| diff --git a/docs-2.0-zh/3.ngql-guide/7.general-query-statements/6.show/19.show-meta-leader.md b/docs-2.0-zh/3.ngql-guide/7.general-query-statements/6.show/19.show-meta-leader.md index 24afa3481dc..cbf79ab9570 100644 --- a/docs-2.0-zh/3.ngql-guide/7.general-query-statements/6.show/19.show-meta-leader.md +++ b/docs-2.0-zh/3.ngql-guide/7.general-query-statements/6.show/19.show-meta-leader.md @@ -23,5 +23,5 @@ nebula> SHOW META LEADER; |参数|说明| |:---|:---| -|`Meta Leader`|Meta 集群的 leader 信息,包括 leader 所在服务器的 IP 地址和端口。| +|`Meta Leader`|Meta 集群的 leader 信息,包括 leader 所在服务器的 IP(或主机名)和端口。| |`secs from last heart beat`|距离上次心跳的时间间隔。单位:秒。| diff --git a/docs-2.0-zh/3.ngql-guide/7.general-query-statements/6.show/6.show-hosts.md b/docs-2.0-zh/3.ngql-guide/7.general-query-statements/6.show/6.show-hosts.md index c179414db47..cced38de639 100644 --- a/docs-2.0-zh/3.ngql-guide/7.general-query-statements/6.show/6.show-hosts.md +++ b/docs-2.0-zh/3.ngql-guide/7.general-query-statements/6.show/6.show-hosts.md @@ -10,7 +10,7 @@ SHOW HOSTS [GRAPH | STORAGE | META]; !!! note - 对于使用源码安装的{{nebula.name}},执行添加了服务名的命令后,输出的信息中不显示版本信息。 + 对于使用源码安装的 {{nebula.name}},执行添加了服务名的命令后,输出的信息中不显示版本信息。 ## 示例 diff --git a/docs-2.0-zh/3.ngql-guide/7.general-query-statements/6.show/9.show-parts.md b/docs-2.0-zh/3.ngql-guide/7.general-query-statements/6.show/9.show-parts.md index 6a14a6e57e3..8b5822b535b 100644 --- a/docs-2.0-zh/3.ngql-guide/7.general-query-statements/6.show/9.show-parts.md +++ b/docs-2.0-zh/3.ngql-guide/7.general-query-statements/6.show/9.show-parts.md @@ -39,7 +39,7 @@ nebula> SHOW PARTS 1; | 参数 | 说明 | | - | - | -| `Partition ID` | 存储分片的 ID | -| `Leader` | 分片对应的 Raft leader 副本的信息,包括 IP 地址与服务端口 | -| `Peers` | 分片对应的所有副本(leader 与 follower)的信息,包括 IP 地址与服务端口 | -| `Losts` | 分片对应的处于离线状态的副本信息,包括 IP 地址和服务端口 | +| `Partition ID` | 存储分片的 ID。 | +| `Leader` | 分片对应的 Raft leader 副本的信息,包括 IP(或主机名)与服务端口。 | +| `Peers` | 分片对应的所有副本(leader 与 follower)的信息,包括 IP(或主机名)与服务端口。 | +| `Losts` | 分片对应的处于离线状态的副本信息,包括 IP(或主机名)和服务端口。 | diff --git a/docs-2.0-zh/3.ngql-guide/16.subgraph-and-path/1.get-subgraph.md b/docs-2.0-zh/3.ngql-guide/7.general-query-statements/7.get-subgraph.md similarity index 99% rename from docs-2.0-zh/3.ngql-guide/16.subgraph-and-path/1.get-subgraph.md rename to docs-2.0-zh/3.ngql-guide/7.general-query-statements/7.get-subgraph.md index 68fe7459074..eeb309de620 100644 --- a/docs-2.0-zh/3.ngql-guide/16.subgraph-and-path/1.get-subgraph.md +++ b/docs-2.0-zh/3.ngql-guide/7.general-query-statements/7.get-subgraph.md @@ -147,6 +147,7 @@ nebula> GO 1 STEPS FROM "A" OVER follow YIELD src(edge),dst(edge); 查询到没有多余子图数据时会停止查询,且不会返回空值。 ```ngql +# 查询从点 player101 开始、0~100 跳、follow 类型的出边的子图。 nebula> GET SUBGRAPH 100 STEPS FROM "player101" OUT follow YIELD VERTICES AS nodes, EDGES AS relationships; +----------------------------------------------------+--------------------------------------------------------------------------------------+ | nodes | relationships | diff --git a/docs-2.0-zh/3.ngql-guide/7.general-query-statements/optional-match.md b/docs-2.0-zh/3.ngql-guide/7.general-query-statements/optional-match.md index 48d03858b83..5fa48b86bd7 100644 --- a/docs-2.0-zh/3.ngql-guide/7.general-query-statements/optional-match.md +++ b/docs-2.0-zh/3.ngql-guide/7.general-query-statements/optional-match.md @@ -19,6 +19,7 @@ `MATCH`语句中使用`OPTIONAL MATCH`的示例如下: ```ngql +# 找出特定节点 m(ID为 "player100" 的节点)直接连接的节点,以及这些节点 n 直连的下一层节点 l (OPTIONAL MATCH (n)-[]->(l)), 如果没有找到这样的节点 l,查询也会继续, l 的返回值是 null。 nebula> MATCH (m)-[]->(n) WHERE id(m)=="player100" \ OPTIONAL MATCH (n)-[]->(l) \ RETURN id(m),id(n),id(l); @@ -39,6 +40,7 @@ nebula> MATCH (m)-[]->(n) WHERE id(m)=="player100" \ 而使用多`MATCH`,不使用`OPTIONAL MATCH`时,会返回模式完全匹配的行。示例如下: ```ngql +# 找出特定节点 m(ID为 "player100" 的节点)直接连接的节点,以及这些节点 n 直连的下一层节点 l, 节点 l 必须存在。 nebula> MATCH (m)-[]->(n) WHERE id(m)=="player100" \ MATCH (n)-[]->(l) \ RETURN id(m),id(n),id(l); diff --git a/docs-2.0-zh/3.ngql-guide/8.clauses-and-options/joins.md b/docs-2.0-zh/3.ngql-guide/8.clauses-and-options/joins.md index 1054263b824..dc9b894095a 100644 --- a/docs-2.0-zh/3.ngql-guide/8.clauses-and-options/joins.md +++ b/docs-2.0-zh/3.ngql-guide/8.clauses-and-options/joins.md @@ -1,6 +1,6 @@ # INNER JOIN -`INNER JOIN`是一种连接查询。它基于两个表之间的共同列值进行匹配,并返回满足条件的记录。`INNER JOIN`通常用于根据关联列的值来创建一个包含两个表的结果集。在{{nebula.name}}中,可以显示地使用`INNER JOIN`子句在两个表之间进行连接查询,以获取更加复杂的查询结果。 +`INNER JOIN`是一种连接查询。它基于两个表之间的共同列值进行匹配,并返回满足条件的记录。`INNER JOIN`通常用于根据关联列的值来创建一个包含两个表的结果集。在 {{nebula.name}} 中,可以显示地使用`INNER JOIN`子句在两个表之间进行连接查询,以获取更加复杂的查询结果。 !!! note diff --git a/docs-2.0-zh/3.ngql-guide/8.clauses-and-options/limit.md b/docs-2.0-zh/3.ngql-guide/8.clauses-and-options/limit.md index b329c57f113..45e7a30b46b 100644 --- a/docs-2.0-zh/3.ngql-guide/8.clauses-and-options/limit.md +++ b/docs-2.0-zh/3.ngql-guide/8.clauses-and-options/limit.md @@ -179,5 +179,5 @@ nebula> MATCH (v:player{name:"Tim Duncan"}) --> (v2) \ diff --git a/docs-2.0-zh/3.ngql-guide/8.clauses-and-options/ttl-options.md b/docs-2.0-zh/3.ngql-guide/8.clauses-and-options/ttl-options.md index a216b9c956b..54236fc7630 100644 --- a/docs-2.0-zh/3.ngql-guide/8.clauses-and-options/ttl-options.md +++ b/docs-2.0-zh/3.ngql-guide/8.clauses-and-options/ttl-options.md @@ -87,7 +87,7 @@ nebula> INSERT VERTEX t2(a, b, c) VALUES "102":(1648197138, 30, "Hello"); 属性过期后,对应的过期数据仍然存储在硬盘上,但是查询时会过滤过期数据。 -{{nebula.name}}自动删除过期数据后,会在下一次 [Compaction](../../8.service-tuning/compaction.md) 过程中回收硬盘空间。 + {{nebula.name}} 自动删除过期数据后,会在下一次 [Compaction](../../8.service-tuning/compaction.md) 过程中回收硬盘空间。 !!! note diff --git a/docs-2.0-zh/3.ngql-guide/8.clauses-and-options/with.md b/docs-2.0-zh/3.ngql-guide/8.clauses-and-options/with.md index 4a65005a5d7..09ea1a6d975 100644 --- a/docs-2.0-zh/3.ngql-guide/8.clauses-and-options/with.md +++ b/docs-2.0-zh/3.ngql-guide/8.clauses-and-options/with.md @@ -22,6 +22,7 @@ 4. 去重后返回点的信息。 ```ngql +# 查询 Tag 为 player,name 属性为 Tim Duncan 的点的路径,并返回去重后路径中的所有的点信息列表。 nebula> MATCH p=(v:player{name:"Tim Duncan"})--() \ WITH nodes(p) AS n \ UNWIND n AS n1 \ @@ -52,6 +53,7 @@ nebula> MATCH p=(v:player{name:"Tim Duncan"})--() \ 4. 返回结果。 ```ngql +# 查询 id 为 player100 的点,并返回点的所有 Tag。 nebula> MATCH (v) \ WHERE id(v)=="player100" \ WITH labels(v) AS tags_unf \ @@ -69,6 +71,7 @@ nebula> MATCH (v) \ `WITH`可以在聚合查询中作为过滤器使用。 ```ngql +# 查询所有起始点和目的点均有 player 点类型的边,并对所有目的点去重,再根据 age 属性升序排列,返回 age 属性值小于 25 的目的点数据。 nebula> MATCH (v:player)-->(v2:player) \ WITH DISTINCT v2 AS v2, v2.player.age AS Age \ ORDER BY Age \ @@ -88,6 +91,7 @@ nebula> MATCH (v:player)-->(v2:player) \ 在`collect()`函数将输出结果转换为列表之前,可以使用`WITH`子句排序和限制输出结果。 ```ngql +# 查询所有 Tag 为 player 的点数据,并根据 name 属性倒序排列,将前 3 条结果转换为列表返回。 nebula> MATCH (v:player) \ WITH v.player.name AS Name \ ORDER BY Name DESC \ @@ -105,6 +109,7 @@ nebula> MATCH (v:player) \ 在`WITH`子句中设置别名,并通过`RETURN`子句输出结果。 ```ngql +# 判断 3 是否存在于 list 数组中。 nebula> WITH [1, 2, 3] AS `list` RETURN 3 IN `list` AS r; +------+ | r | @@ -112,6 +117,7 @@ nebula> WITH [1, 2, 3] AS `list` RETURN 3 IN `list` AS r; | true | +------+ +# 返回 3 和 4 的比较结果。 nebula> WITH 4 AS one, 3 AS two RETURN one > two AS result; +--------+ | result | diff --git a/docs-2.0-zh/3.ngql-guide/8.clauses-and-options/yield.md b/docs-2.0-zh/3.ngql-guide/8.clauses-and-options/yield.md index 5aa90408a02..0be542c81c8 100644 --- a/docs-2.0-zh/3.ngql-guide/8.clauses-and-options/yield.md +++ b/docs-2.0-zh/3.ngql-guide/8.clauses-and-options/yield.md @@ -23,7 +23,7 @@ - 在 nGQL 中,`YIELD`和 openCypher 中的`RETURN`类似。 !!! note - 下文示例中的`$$`、`$-`等是引用符号,详情请参见[引用符](../5.operators/5.property-reference.md)。 + 下文示例中的`$$`、`$-`等是引用符号,详情请参见[引用属性](../4.variable-and-composite-queries/3.property-reference.md)。 ## YIELD 子句 diff --git a/docs-2.0-zh/3.ngql-guide/9.space-statements/1.create-space.md b/docs-2.0-zh/3.ngql-guide/9.space-statements/1.create-space.md index fe295056542..639c330ead6 100644 --- a/docs-2.0-zh/3.ngql-guide/9.space-statements/1.create-space.md +++ b/docs-2.0-zh/3.ngql-guide/9.space-statements/1.create-space.md @@ -1,6 +1,6 @@ # CREATE SPACE -图空间是{{nebula.name}}中彼此隔离的图数据集合,与 MySQL 中的 database 概念类似。`CREATE SPACE`语句可以创建一个新的图空间,或者克隆现有图空间的 Schema。 +图空间是 {{nebula.name}} 中彼此隔离的图数据集合,与 MySQL 中的 database 概念类似。`CREATE SPACE`语句可以创建一个新的图空间,或者克隆现有图空间的 Schema。 ## 前提条件 @@ -23,7 +23,7 @@ CREATE SPACE [IF NOT EXISTS] ( |参数|说明| |:---|:---| |`IF NOT EXISTS`|检测待创建的图空间是否存在,只有不存在时,才会创建图空间。仅检测图空间的名称,不会检测具体属性。| -|``|1、在{{nebula.name}}实例中唯一标识一个图空间。
2、图空间名称设置后无法被修改。
3、不能以数字开头;支持 1~4 字节的 UTF-8 编码字符,包括英文字母(区分大小写)、数字、中文等,但是不包括除下划线外的特殊字符;使用特殊字符、保留关键字或数字开头时,需要用反引号(\`)包围且不能使用英文句号(`.`)。详情参见[关键字和保留字](../../3.ngql-guide/1.nGQL-overview/keywords-and-reserved-words.md)。
**注意**:如果以中文为图空间命名,报`SyntaxError`错误时,需使用反引号(\`)包围中文字符。| +|``|1、在{{nebula.name}}实例中唯一标识一个图空间。
2、图空间名称设置后无法被修改。
3、默认情况下,仅支持 1~4 字节的 UTF-8 编码字符,包括英文字母(区分大小写)、数字、中文等。不能包含下划线(_)以外的特殊字符,且不能以数字开头。
4、如果需要使用特殊字符、保留关键字或者以数字开头,请使用反引号(\`)包围整个名称。反引号中不能包含英文句号(`.`)。详情参见[关键字和保留字](../../3.ngql-guide/1.nGQL-overview/keywords-and-reserved-words.md)。
**注意**:
1、如果以中文为图空间命名,报`SyntaxError`错误时,需使用反引号(\`)包围中文字符。
2、名称中如需包含反引号(\`),使用反斜杠(\)来转义反引号(\`),如:\\\`;如需包含反斜杠(\),反斜杠(\)本身也需转义,如:\\\。| |`partition_num`|指定图空间的分片数量。建议设置为集群中硬盘数量的 20 倍(HDD 硬盘建议为 2 倍)。例如集群中有 3 个硬盘,建议设置 60 个分片。默认值为 10。| |`replica_factor`|指定每个分片的副本数量。建议在生产环境中设置为 3,在测试环境中设置为 1。由于需要基于多数表决,副本数量必须是**奇数**。默认值为 1。| |`vid_type`|必选参数。指定点 ID 的数据类型。可选值为`FIXED_STRING()`和`INT64`。`INT`等同于`INT64`。
`FIXED_STRING()`表示数据类型为定长字符串,长度为`N`字节,超出长度会报错。例如,UTF-8中,一个中文字符的长度为三个字节,如果设置`N`为 12,那么`vid_type`为最多 4 个中文字符。
`INT64`表示数据类型为整数。| @@ -31,11 +31,11 @@ CREATE SPACE [IF NOT EXISTS] ( !!! caution - - 如果将副本数设置为 1,用户将无法使用 [SUBMIT JOB BALANCE](../../8.service-tuning/load-balance.md) 命令为{{nebula.name}}的存储服务平衡负载或扩容。 + - 如果将副本数设置为 1,用户将无法使用 [SUBMIT JOB BALANCE](../../8.service-tuning/load-balance.md) 命令为 {{nebula.name}} 的存储服务平衡负载或扩容。 - VID 类型变更与长度限制: - - 在{{nebula.name}} 1.x 中,VID 的类型只能为`INT64`,不支持字符型;在{{nebula.name}} 2.x 中,VID 的类型支持`INT64`和`FIXED_STRING()`。请在创建图空间时指定 VID 类型,使用`INSERT`语句时也需要保持一致,否则会报错 VID 类型不匹配`Wrong vertex id type: 1001`。 + - 在 {{nebula.name}} 1.x 中,VID 的类型只能为`INT64`,不支持字符型;在 {{nebula.name}} 2.x 中,VID 的类型支持`INT64`和`FIXED_STRING()`。请在创建图空间时指定 VID 类型,使用`INSERT`语句时也需要保持一致,否则会报错 VID 类型不匹配`Wrong vertex id type: 1001`。 - VID 最大长度必须为`N`,不可任意长度;超过该长度也会报错`The VID must be a 64-bit integer or a string fitting space vertex id length limit.`。 @@ -67,7 +67,7 @@ CREATE SPACE [IF NOT EXISTS] AS ; |参数|说明| |:---|:---| |`IF NOT EXISTS`|检测待创建的图空间是否存在,只有不存在时,才会克隆图空间。仅检测图空间的名称,不会检测具体属性。| -|``|目标图空间名称。该图空间必须未创建。图空间名称以英文字母开头,支持 1~4 字节的 UTF-8 编码字符,包括英文字母(区分大小写)、数字、中文等,但是不包括除下划线外的特殊字符。使用保留关键字时,需要用反引号(\`)包围,详情参见[关键字和保留字](../../3.ngql-guide/1.nGQL-overview/keywords-and-reserved-words.md)。创建时会克隆``图空间的 Schema,包括图空间本身参数(分片数量、副本数量等)、Tag、Edge type 和 原生索引。| +|``|目标图空间名称。该图空间必须未创建。
默认情况下,仅支持 1~4 字节的 UTF-8 编码字符,包括英文字母(区分大小写)、数字、中文等,但是特殊字符只能使用下划线。不能以数字开头。
如果需要使用特殊字符、保留关键字或者以数字开头,请使用反引号(\`)包围整个名称。反引号中不能包含英文句号(`.`)。详情参见[关键字和保留字](../../3.ngql-guide/1.nGQL-overview/keywords-and-reserved-words.md)。
创建时会克隆``图空间的 Schema,包括图空间本身参数(分片数量、副本数量等)、Tag、Edge type 和 原生索引。
**注意**:
1、如果以中文为图空间命名,报`SyntaxError`错误时,需使用反引号(\`)包围中文字符。
2、名称中如需包含反引号(\`),使用反斜杠(\)来转义反引号(\`),如:\\\`;如需包含反斜杠(\),反斜杠(\)本身也需转义,如:\\\。| |``|原始图空间名称。该图空间必须已存在。| ## 示例 diff --git a/docs-2.0-zh/3.ngql-guide/9.space-statements/2.use-space.md b/docs-2.0-zh/3.ngql-guide/9.space-statements/2.use-space.md index f5af5c1d4bd..c992b53efb2 100644 --- a/docs-2.0-zh/3.ngql-guide/9.space-statements/2.use-space.md +++ b/docs-2.0-zh/3.ngql-guide/9.space-statements/2.use-space.md @@ -30,4 +30,4 @@ nebula> USE space2; 不能在一条语句中同时操作两个图空间。 - 与 Fabric Cypher 不同,{{nebula.name}}的图空间彼此之间是完全隔离的,将一个图空间作为工作空间后,用户无法访问其他空间。使用新图空间的唯一方法是通过`USE`语句切换。而在 Fabric Cypher 中可以在一条语句中 (`USE + CALL`语法)使用两个图空间。 + 与 Fabric Cypher 不同,{{nebula.name}} 的图空间彼此之间是完全隔离的,将一个图空间作为工作空间后,用户无法访问其他空间。使用新图空间的唯一方法是通过`USE`语句切换。而在 Fabric Cypher 中可以在一条语句中 (`USE + CALL`语法)使用两个图空间。 diff --git a/docs-2.0-zh/3.ngql-guide/9.space-statements/3.show-spaces.md b/docs-2.0-zh/3.ngql-guide/9.space-statements/3.show-spaces.md index 864680838d6..e588097d59d 100644 --- a/docs-2.0-zh/3.ngql-guide/9.space-statements/3.show-spaces.md +++ b/docs-2.0-zh/3.ngql-guide/9.space-statements/3.show-spaces.md @@ -1,6 +1,6 @@ # SHOW SPACES -`SHOW SPACES`语句可以列出{{nebula.name}}示例中的所有图空间。 +`SHOW SPACES`语句可以列出 {{nebula.name}} 示例中的所有图空间。 ## 语法 diff --git a/docs-2.0-zh/3.ngql-guide/9.space-statements/5.drop-space.md b/docs-2.0-zh/3.ngql-guide/9.space-statements/5.drop-space.md index f358f300e29..79390cceab6 100644 --- a/docs-2.0-zh/3.ngql-guide/9.space-statements/5.drop-space.md +++ b/docs-2.0-zh/3.ngql-guide/9.space-statements/5.drop-space.md @@ -8,7 +8,7 @@ !!! warning - 执行`DROP SPACE`后,即使快照中存在该图空间的数据,该图空间的数据也无法恢复。但是如果`auto_remove_invalid_space`的值为`false`时,可联系商务人员恢复数据。 + 执行`DROP SPACE`后,即使快照中存在该图空间的数据,该图空间的数据也无法恢复。 ## 前提条件 @@ -24,7 +24,7 @@ DROP SPACE [IF EXISTS] ; !!! compatibility "历史版本兼容性" - 在{{nebula.name}} 3.1.0 版本前,`DROP SPACE`语句不会删除硬盘上对应图空间的目录和文件。 + 在 {{nebula.name}} 3.1.0 版本前,`DROP SPACE`语句不会删除硬盘上对应图空间的目录和文件。 !!! danger @@ -36,4 +36,4 @@ DROP SPACE [IF EXISTS] ; 问:执行`DROP SPACE`语句删除图空间后,为什么磁盘的大小没变化? -答:如果使用 3.1.0 之前版本的{{nebula.name}}, `DROP SPACE`语句仅删除指定的逻辑图空间,不会删除硬盘上对应图空间的目录和文件。如需删除硬盘上的数据,需手动删除相应文件的路径,文件路径为`/data/storage/nebula/`。其中``可以通过`DESCRIBE SPACE {space_name}`查看。 +答:如果使用 3.1.0 之前版本的 {{nebula.name}} , `DROP SPACE`语句仅删除指定的逻辑图空间,不会删除硬盘上对应图空间的目录和文件。如需删除硬盘上的数据,需手动删除相应文件的路径,文件路径为`/data/storage/nebula/`。其中``可以通过`DESCRIBE SPACE {space_name}`查看。 diff --git a/docs-2.0-zh/3.ngql-guide/9.space-statements/6.clear-space.md b/docs-2.0-zh/3.ngql-guide/9.space-statements/6.clear-space.md index 4da124f7d5a..f945eec9032 100644 --- a/docs-2.0-zh/3.ngql-guide/9.space-statements/6.clear-space.md +++ b/docs-2.0-zh/3.ngql-guide/9.space-statements/6.clear-space.md @@ -5,7 +5,7 @@ !!! note - 建议在执行`CLEAR SPACE`操作之后,立即执行[`SUBMIT JOB COMPACT`](../../4.job-statements/#submit_job_compact)操作以提升查询性能。需要注意的是,COMPACT 操作可能会影响查询性能,建议在业务低峰期(例如凌晨)执行该操作。 + 建议在执行`CLEAR SPACE`操作之后,立即执行 [SUBMIT JOB COMPACT](../4.job-statements.md#submit_job_compact)操作以提升查询性能。需要注意的是,COMPACT 操作可能会影响查询性能,建议在业务低峰期(例如凌晨)执行该操作。 ## 权限要求 diff --git a/docs-2.0-zh/4.deployment-and-installation/1.resource-preparations.md b/docs-2.0-zh/4.deployment-and-installation/1.resource-preparations.md index 92b9b65c6d6..81569e88d59 100644 --- a/docs-2.0-zh/4.deployment-and-installation/1.resource-preparations.md +++ b/docs-2.0-zh/4.deployment-and-installation/1.resource-preparations.md @@ -1,20 +1,20 @@ -# 准备编译、安装和运行{{nebula.name}}的环境 +# 准备编译、安装和运行 {{nebula.name}} 的环境 -本文介绍编译、安装{{nebula.name}}的要求和建议,以及如何预估集群运行所需的资源。 +本文介绍编译、安装 {{nebula.name}} 的要求和建议,以及如何预估集群运行所需的资源。 ## 关于存储硬件 -{{nebula.name}}是针对 NVMe SSD 进行设计和实现的,所有默认参数都是基于 SSD 设备进行调优,要求极高的 IOPS 和极低的 Latency。 + {{nebula.name}} 是针对 NVMe SSD 进行设计和实现的,所有默认参数都是基于 SSD 设备进行调优,要求极高的 IOPS 和极低的 Latency。 -- 不建议使用 HDD;因为其 IOPS 性能差,随机寻道延迟高;会遇到大量问题。 +- 不建议使用 HDD;因为其 IOPS 性能差,随机寻道延迟高。 - 不要使用远端存储设备(如 NAS 或 SAN),不要外接基于 HDFS 或者 Ceph 的虚拟硬盘。 -- 不要使用磁盘阵列(RAID)。 +- 不建议配置独立磁盘冗余阵列(RAID)。{{nebula.name}}本身提供了多副本机制,如果配置 RAID,会造成资源浪费。 - 使用本地 SSD 设备;或 AWS Provisioned IOPS SSD 或等价云产品。 @@ -24,7 +24,7 @@ !!! note - 从 3.0.2 开始,{{nebula.name}}在 Docker Hub 上的 Docker 支持 ARM64 架构。社区用户可以在 ARM macOS 的 Docker Desktop 上或者 ARM Linux Server 上运行容器化的{{nebula.name}}。 + 从 3.0.2 开始,{{nebula.name}} 在 Docker Hub 上的 Docker 支持 ARM64 架构。社区用户可以在 ARM macOS 的 Docker Desktop 上或者 ARM Linux Server 上运行容器化的 {{nebula.name}} 。 @@ -43,11 +43,11 @@ ### 操作系统要求 -当前仅支持在 Linux 系统中编译{{nebula.name}},建议使用内核版本为`4.15`及以上版本的 Linux 系统。 +当前仅支持在 Linux 系统中编译 {{nebula.name}},建议使用内核版本为`4.15`及以上版本的 Linux 系统。 !!! note - 在内核版本低于要求的 Linux 系统中安装{{nebula.name}}可使用 [RPM、DEB](2.compile-and-install-nebula-graph/2.install-nebula-graph-by-rpm-or-deb.md) 或者 [TAR](2.compile-and-install-nebula-graph/4.install-nebula-graph-from-tar.md) 文件。 + 在内核版本低于要求的 Linux 系统中安装 {{nebula.name}} 可使用 [RPM、DEB](2.compile-and-install-nebula-graph/2.install-nebula-graph-by-rpm-or-deb.md) 或者 [TAR](2.compile-and-install-nebula-graph/4.install-nebula-graph-from-tar.md) 文件。 ### 软件要求 @@ -151,7 +151,7 @@ ### 操作系统要求 -当前仅支持在 Linux 系统中安装{{nebula.name}},建议在测试环境中使用内核版本为`3.9`及以上版本的 Linux 系统。 +当前仅支持在 Linux 系统中安装 {{nebula.name}},建议在测试环境中使用内核版本为`3.9`及以上版本的 Linux 系统。 ### 服务架构建议 @@ -163,7 +163,7 @@ 例如单机测试环境,用户可以在机器上部署 1 个 metad、1 个 storaged 和 1 个 graphd 进程。 -对于更常见的测试环境,例如三台机器构成的集群,用户可以按照如下方案部署{{nebula.name}}。 +对于更常见的测试环境,例如三台机器构成的集群,用户可以按照如下方案部署 {{nebula.name}} 。 | 机器名称 | metad 进程数量 | storaged 进程数量 | graphd 进程数量 | | ------------ | --------------- | ------------------ | ---------------- | @@ -186,9 +186,9 @@ ### 操作系统要求 -当前仅支持在 Linux 系统中安装{{nebula.name}},建议在生产环境中使用内核版本为`3.9`及以上版本的 Linux 系统。 +当前仅支持在 Linux 系统中安装 {{nebula.name}},建议在生产环境中使用内核版本为`3.9`及以上版本的 Linux 系统。 -用户可以通过调整一些内核参数来提高{{nebula.name}}性能,详情请参见[内核配置](../5.configurations-and-logs/1.configurations/6.kernel-config.md)。 +用户可以通过调整一些内核参数来提高 {{nebula.name}} 性能,详情请参见[内核配置](../5.configurations-and-logs/1.configurations/6.kernel-config.md)。 ### 服务架构建议 @@ -206,7 +206,7 @@ storaged 进程的数量不会影响图空间副本的数量。 -用户可以在一台机器上部署多个不同进程,例如五台机器构成的集群,用户可以按照如下方案部署{{nebula.name}}。 +用户可以在一台机器上部署多个不同进程,例如五台机器构成的集群,用户可以按照如下方案部署 {{nebula.name}} 。 | 机器名称 | metad 进程数量 | storaged 进程数量 | graphd 进程数量 | | ------------ | --------------- | ------------------ | ---------------- | @@ -216,9 +216,9 @@ storaged 进程的数量不会影响图空间副本的数量。 | D | - | 1 | 1 | | E | - | 1 | 1 | -## {{nebula.name}}资源要求 +## {{nebula.name}} 资源要求 -用户可以预估一个 3 副本{{nebula.name}}集群所需的内存、硬盘空间和分区数量。 +用户可以预估一个 3 副本 {{nebula.name}} 集群所需的内存、硬盘空间和分区数量。 | 资源 |单位 | 计算公式 |说明| |:--- |:---|:--- |:---| @@ -236,7 +236,7 @@ storaged 进程的数量不会影响图空间副本的数量。 - 问题 3:如何获取 RocksDB 实例数量? - 答:对于社区版{{nebula.name}},每个图空间对应一个 RocksDB 实例,并且`--data_path`选项(`etc`目录下的`nebula-storaged.conf`文件中)中的每个目录对应一个 RocksDB 实例。即,RocksDB 实例数量 = 图空间总数 * 目录总数。 + 答:对于社区版 {{nebula.name}},每个图空间对应一个 RocksDB 实例,并且`--data_path`选项(`etc`目录下的`nebula-storaged.conf`文件中)中的每个目录对应一个 RocksDB 实例。即,RocksDB 实例数量 = 图空间总数 * 目录总数。 !!! note diff --git a/docs-2.0-zh/4.deployment-and-installation/2.compile-and-install-nebula-graph/1.install-nebula-graph-by-compiling-the-source-code.md b/docs-2.0-zh/4.deployment-and-installation/2.compile-and-install-nebula-graph/1.install-nebula-graph-by-compiling-the-source-code.md index c1a695bfdf0..a3176f7f091 100644 --- a/docs-2.0-zh/4.deployment-and-installation/2.compile-and-install-nebula-graph/1.install-nebula-graph-by-compiling-the-source-code.md +++ b/docs-2.0-zh/4.deployment-and-installation/2.compile-and-install-nebula-graph/1.install-nebula-graph-by-compiling-the-source-code.md @@ -1,6 +1,6 @@ -# 使用源码安装{{nebula.name}} +# 使用源码安装 {{nebula.name}} -使用源码安装{{nebula.name}}允许自定义编译和安装设置,并测试最新特性。 +使用源码安装 {{nebula.name}} 允许自定义编译和安装设置,并测试最新特性。 ## 前提条件 @@ -8,17 +8,17 @@ !!! note - 暂不支持离线编译{{nebula.name}}。 + 暂不支持离线编译 {{nebula.name}} 。 -- 待安装{{nebula.name}}的主机可以访问互联网。 +- 待安装 {{nebula.name}} 的主机可以访问互联网。 ## 安装步骤 -1. 克隆{{nebula.name}}的源代码到主机。 +1. 克隆 {{nebula.name}} 的源代码到主机。 - - [推荐] 如果需要安装{{nebula.release}}版本的{{nebula.name}},执行如下命令: + - [推荐] 如果需要安装{{nebula.release}}版本的 {{nebula.name}},执行如下命令: ```bash $ git clone --branch {{nebula.branch}} https://github.com/vesoft-inc/nebula.git @@ -30,7 +30,7 @@ $ git clone https://github.com/vesoft-inc/nebula.git ``` -2. 进入`nebula/third-party`目录,安装{{nebula.name}}依赖的第三方库。 +2. 进入`nebula/third-party`目录,安装 {{nebula.name}} 依赖的第三方库。 ```bash $ cd nebula/third-party @@ -56,7 +56,7 @@ $ cmake -DCMAKE_INSTALL_PREFIX=/usr/local/nebula -DENABLE_TESTING=OFF -DCMAKE_BUILD_TYPE=Release .. ``` -5. 编译{{nebula.name}}。 +5. 编译 {{nebula.name}} 。 !!! note @@ -68,7 +68,7 @@ $ make -j{N} # E.g., make -j2 ``` -6. 安装{{nebula.name}}。 +6. 安装 {{nebula.name}} 。 ```bash $ sudo make install @@ -82,7 +82,7 @@ ## 更新 master 版本 -master 分支的代码更新速度快,如果安装了 master 分支对应的开发版{{nebula.name}},可根据以下步骤更新版本。 +master 分支的代码更新速度快,如果安装了 master 分支对应的开发版 {{nebula.name}},可根据以下步骤更新版本。 1. 在目录`nebula`中,执行命令`git pull upstream master`更新源码。 @@ -90,7 +90,7 @@ master 分支的代码更新速度快,如果安装了 master 分支对应的 ## 下一步 -[管理{{nebula.name}}服务](../../2.quick-start/3.quick-start-on-premise/5.start-stop-service.md) +[管理 {{nebula.name}} 服务](../../2.quick-start/3.quick-start-on-premise/5.start-stop-service.md) ## CMake 参数 @@ -104,7 +104,7 @@ $ cmake -D= ... ### CMAKE_INSTALL_PREFIX -`CMAKE_INSTALL_PREFIX`指定{{nebula.name}}服务模块、脚本和配置文件的安装路径,默认路径为`/usr/local/nebula`。 +`CMAKE_INSTALL_PREFIX`指定 {{nebula.name}} 服务模块、脚本和配置文件的安装路径,默认路径为`/usr/local/nebula`。 ### ENABLE_WERROR @@ -112,15 +112,15 @@ $ cmake -D= ... ### ENABLE_TESTING -默认值为`ON`,表示单元测试服务由{{nebula.name}}服务构建。如果只需要服务模块,可以设置为`OFF`。 +默认值为`ON`,表示单元测试服务由 {{nebula.name}} 服务构建。如果只需要服务模块,可以设置为`OFF`。 ### ENABLE_ASAN -默认值为`OFF`,表示关闭内存问题检测工具 ASan(AddressSanitizer)。该工具是为{{nebula.name}}开发者准备的,如果需要开启,可以设置为`ON`。 +默认值为`OFF`,表示关闭内存问题检测工具 ASan(AddressSanitizer)。该工具是为 {{nebula.name}} 开发者准备的,如果需要开启,可以设置为`ON`。 ### CMAKE_BUILD_TYPE -`CMAKE_BUILD_TYPE`控制{{nebula.name}}的 build 方法,取值说明如下: +`CMAKE_BUILD_TYPE`控制 {{nebula.name}} 的 build 方法,取值说明如下: - `Debug` diff --git a/docs-2.0-zh/4.deployment-and-installation/2.compile-and-install-nebula-graph/2.install-nebula-graph-by-rpm-or-deb.md b/docs-2.0-zh/4.deployment-and-installation/2.compile-and-install-nebula-graph/2.install-nebula-graph-by-rpm-or-deb.md index 590ec286828..97e72d18e10 100644 --- a/docs-2.0-zh/4.deployment-and-installation/2.compile-and-install-nebula-graph/2.install-nebula-graph-by-rpm-or-deb.md +++ b/docs-2.0-zh/4.deployment-and-installation/2.compile-and-install-nebula-graph/2.install-nebula-graph-by-rpm-or-deb.md @@ -1,4 +1,4 @@ -# 使用 RPM 或 DEB 包安装{{nebula.name}} +# 使用 RPM 或 DEB 包安装 {{nebula.name}} {% include "/source_install-nebula-graph-by-rpm-or-deb.md" %} diff --git a/docs-2.0-zh/4.deployment-and-installation/2.compile-and-install-nebula-graph/3.deploy-nebula-graph-with-docker-compose.md b/docs-2.0-zh/4.deployment-and-installation/2.compile-and-install-nebula-graph/3.deploy-nebula-graph-with-docker-compose.md index 48119771995..8d51a7ef4f7 100644 --- a/docs-2.0-zh/4.deployment-and-installation/2.compile-and-install-nebula-graph/3.deploy-nebula-graph-with-docker-compose.md +++ b/docs-2.0-zh/4.deployment-and-installation/2.compile-and-install-nebula-graph/3.deploy-nebula-graph-with-docker-compose.md @@ -1,6 +1,6 @@ -# 使用 Docker Compose 部署{{nebula.name}} +# 使用 Docker Compose 部署 {{nebula.name}} -使用 Docker Compose 可以基于准备好的配置文件快速部署{{nebula.name}}服务,仅建议在测试{{nebula.name}}功能时使用该方式。 +使用 Docker Compose 可以基于准备好的配置文件快速部署 {{nebula.name}} 服务,仅建议在测试 {{nebula.name}} 功能时使用该方式。 ## 前提条件 @@ -12,13 +12,13 @@ |Docker Compose|最新版本|[Install Docker Compose](https://docs.docker.com/compose/install/)| |Git|最新版本|[Download Git](https://git-scm.com/download/)| -- 如果使用非 root 用户部署{{nebula.name}},请授权该用户 Docker 相关的权限。详细信息,请参见 [Manage Docker as a non-root user](https://docs.docker.com/engine/install/linux-postinstall/#manage-docker-as-a-non-root-user)。 +- 如果使用非 root 用户部署 {{nebula.name}},请授权该用户 Docker 相关的权限。详细信息,请参见 [Manage Docker as a non-root user](https://docs.docker.com/engine/install/linux-postinstall/#manage-docker-as-a-non-root-user)。 - 启动主机上的 Docker 服务。 -- 如果已经通过 Docker Compose 在主机上部署了另一个版本的{{nebula.name}},为避免兼容性问题,需要删除目录`nebula-docker-compose/data`。 +- 如果已经通过 Docker Compose 在主机上部署了另一个版本的 {{nebula.name}},为避免兼容性问题,需要删除目录`nebula-docker-compose/data`。 -## 部署{{nebula.name}} +## 部署 {{nebula.name}} 1. 通过 Git 克隆`nebula-docker-compose`仓库的`{{dockercompose.release}}`分支到主机。 @@ -40,11 +40,11 @@ $ cd nebula-docker-compose/ ``` -3. 执行如下命令启动{{nebula.name}}服务。 +3. 执行如下命令启动 {{nebula.name}} 服务。 !!! note - - 如果长期未内核更新镜像,请先更新 [{{nebula.name}}镜像](#nebulagraph_docker)和 [NebulaGraph Console 镜像](#nebulagraph_console)。 + - 如果长期未内核更新镜像,请先更新 [{{nebula.name}} 镜像](#nebulagraph_docker)和 [NebulaGraph Console 镜像](#nebulagraph_console)。 - 执行命令后的返回结果因安装目录不同而不同。 ```bash @@ -68,11 +68,11 @@ 上述服务的更多信息,请参见[架构总览](../../1.introduction/3.nebula-graph-architecture/1.architecture-overview.md)。 -## 连接{{nebula.name}} +## 连接 {{nebula.name}} -连接{{nebula.name}}有两种方式: +连接 {{nebula.name}} 有两种方式: -- 在容器外通过 Nebula Console 连接。因为容器的配置文件中将 Graph 服务的外部映射端口也固定为 9669,因此可以直接通过默认端口连接。详情参见[连接{{nebula.name}}](../../2.quick-start/3.quick-start-on-premise/3.connect-to-nebula-graph.md)。 +- 在容器外通过 Nebula Console 连接。因为容器的配置文件中将 Graph 服务的外部映射端口也固定为 9669,因此可以直接通过默认端口连接。详情参见[连接 {{nebula.name}} ](../../2.quick-start/3.quick-start-on-premise/3.connect-to-nebula-graph.md)。 - 登录安装了 NebulaGraph Console 的容器,然后再连接 Graph 服务。本小节介绍这种方式。 @@ -94,7 +94,7 @@ / # ``` -3. 通过 NebulaGraph Console 连接{{nebula.name}}。 +3. 通过 NebulaGraph Console 连接 {{nebula.name}} 。 ```bash / # ./usr/local/bin/nebula-console -u -p --address=graphd --port=9669 @@ -119,12 +119,12 @@ 执行两次`exit`可以退出容器。 -## 查看{{nebula.name}}服务的状态和端口 +## 查看 {{nebula.name}} 服务的状态和端口 -执行命令`docker-compose ps`可以列出{{nebula.name}}服务的状态和端口。 +执行命令`docker-compose ps`可以列出 {{nebula.name}} 服务的状态和端口。 !!! note - {{nebula.name}}默认使用`9669`端口为客户端提供服务,如果需要修改端口,请修改目录`nebula-docker-compose`内的文件`docker-compose.yaml`,然后重启{{nebula.name}}服务。 + {{nebula.name}} 默认使用`9669`端口为客户端提供服务,如果需要修改端口,请修改目录`nebula-docker-compose`内的文件`docker-compose.yaml`,然后重启 {{nebula.name}} 服务。 ```bash $ docker-compose ps @@ -166,9 +166,9 @@ a74054c6ae25 vesoft/nebula-graphd:nightly "/usr/local/nebula/b…" 36 mi [root@2a6c56c405f5 nebula]# ``` -## 查看{{nebula.name}}服务的数据和日志 +## 查看 {{nebula.name}} 服务的数据和日志 -{{nebula.name}}的所有数据和日志都持久化存储在`nebula-docker-compose/data`和`nebula-docker-compose/logs`目录中。 + {{nebula.name}} 的所有数据和日志都持久化存储在`nebula-docker-compose/data`和`nebula-docker-compose/logs`目录中。 目录的结构如下: @@ -194,9 +194,9 @@ nebula-docker-compose/ └── storage2 ``` -## 停止{{nebula.name}}服务 +## 停止 {{nebula.name}} 服务 -用户可以执行如下命令停止{{nebula.name}}服务: +用户可以执行如下命令停止 {{nebula.name}} 服务: ```bash $ docker-compose down @@ -234,7 +234,7 @@ Removing network nebula-docker-compose_nebula-net ## 修改配置 -Docker Compose 部署的{{nebula.name}},配置文件位置为`nebula-docker-compose/docker-compose.yaml`,修改该文件内的配置并重启服务即可使新配置生效。 +Docker Compose 部署的 {{nebula.name}},配置文件位置为`nebula-docker-compose/docker-compose.yaml`,修改该文件内的配置并重启服务即可使新配置生效。 具体的配置说明请参见[配置管理](../../5.configurations-and-logs/1.configurations/1.configurations.md)。 @@ -256,15 +256,15 @@ graphd: `9669:9669`表示内部的 9669 映射到外部的端口也是 9669,下方的`19669`表示内部的 19669 映射到外部的端口是随机的。 -### 如何升级/更新{{nebula.name}}服务的 Docker 镜像? +### 如何升级/更新 {{nebula.name}} 服务的 Docker 镜像? 1. 在文件`nebula-docker-compose/docker-compose.yaml`中,找到所有服务的`image`并修改其值为相应的镜像版本。 2. 在目录`nebula-docker-compose`内执行命令`docker-compose pull`,更新 Graph 服务、Storage 服务、Meta 服务和 NebulaGraph Console 的镜像。 -3. 执行命令`docker-compose up -d`启动{{nebula.name}}服务。 +3. 执行命令`docker-compose up -d`启动 {{nebula.name}} 服务。 -4. 通过 NebulaGraph Console 连接{{nebula.name}}后,分别执行命令`SHOW HOSTS GRAPH`、`SHOW HOSTS STORAGE`、`SHOW HOSTS META`查看各服务版本。 +4. 通过 NebulaGraph Console 连接 {{nebula.name}} 后,分别执行命令`SHOW HOSTS GRAPH`、`SHOW HOSTS STORAGE`、`SHOW HOSTS META`查看各服务版本。 ### 执行命令`docker-compose pull`报错`ERROR: toomanyrequests` @@ -276,7 +276,7 @@ graphd: ### 如何更新 NebulaGraph Console? -`docker-compose pull`会同时更新{{nebula.name}}服务和 NebulaGraph Console。 +`docker-compose pull`会同时更新 {{nebula.name}} 服务和 NebulaGraph Console。 diff --git a/docs-2.0-zh/4.deployment-and-installation/2.compile-and-install-nebula-graph/4.install-nebula-graph-from-tar.md b/docs-2.0-zh/4.deployment-and-installation/2.compile-and-install-nebula-graph/4.install-nebula-graph-from-tar.md index 9b9ea54d69e..db952ca50b7 100644 --- a/docs-2.0-zh/4.deployment-and-installation/2.compile-and-install-nebula-graph/4.install-nebula-graph-from-tar.md +++ b/docs-2.0-zh/4.deployment-and-installation/2.compile-and-install-nebula-graph/4.install-nebula-graph-from-tar.md @@ -1,21 +1,21 @@ -# 使用 tar.gz 文件安装{{nebula.name}} +# 使用 tar.gz 文件安装 {{nebula.name}} -用户可以下载打包好的 tar.gz 文件快速安装{{nebula.name}}。 +用户可以下载打包好的 tar.gz 文件快速安装 {{nebula.name}} 。 !!! note - - {{nebula.name}}从 2.6.0 版本起提供 tar.gz 文件。 + - {{nebula.name}} 从 2.6.0 版本起提供 tar.gz 文件。 - - 当前仅支持在 Linux 系统下安装{{nebula.name}},且仅支持 CentOS 7.x、CentOS 8.x、Ubuntu 16.04、Ubuntu 18.04、Ubuntu 20.04 操作系统。 + - 当前仅支持在 Linux 系统下安装 {{nebula.name}},且仅支持 CentOS 7.x、CentOS 8.x、Ubuntu 16.04、Ubuntu 18.04、Ubuntu 20.04 操作系统。 - - 如果用户使用的是国产化的 Linux 操作系统,请[安装{{nebula.name}}](https://www.nebula-graph.com.cn/contact)。 + - 如果用户使用的是国产化的 Linux 操作系统,请[安装 {{nebula.name}} ](https://www.nebula-graph.com.cn/contact)。 ## 操作步骤 -1. 使用如下地址下载{{nebula.name}}的 tar.gz 文件。 +1. 使用如下地址下载 {{nebula.name}} 的 tar.gz 文件。 下载前需将``替换为需要下载的版本。 @@ -46,7 +46,7 @@ https://oss-cdn.nebula-graph.com.cn/package//nebula-graph-.ubuntu2004.amd64.tar.gz.sha256sum.txt ``` - 例如,要下载适用于`CentOS 7.5`的{{nebula.name}} {{nebula.branch}} tar.gz 文件,运行以下命令: + 例如,要下载适用于`CentOS 7.5`的 {{nebula.name}} {{nebula.branch}} tar.gz 文件,运行以下命令: ```bash wget https://oss-cdn.nebula-graph.com.cn/package/{{nebula.release}}/nebula-graph-{{nebula.release}}.el7.x86_64.tar.gz @@ -55,7 +55,7 @@ -2. 解压 tar.gz 文件到{{nebula.name}}安装目录。 +2. 解压 tar.gz 文件到 {{nebula.name}} 安装目录。 ```bash tar -xvzf -C @@ -76,7 +76,7 @@ 3. 修改配置文件名以应用配置。 - 进入解压出的目录,将子目录`etc`中的文件`nebula-graphd.conf.default`、`nebula-metad.conf.default`和`nebula-storaged.conf.default`重命名,删除`.default`,即可应用{{nebula.name}}的默认配置。 + 进入解压出的目录,将子目录`etc`中的文件`nebula-graphd.conf.default`、`nebula-metad.conf.default`和`nebula-storaged.conf.default`重命名,删除`.default`,即可应用 {{nebula.name}} 的默认配置。 @@ -84,8 +84,8 @@ 如需修改更多配置,参见[配置管理](../../5.configurations-and-logs/1.configurations/1.configurations.md)。 -至此,{{nebula.name}}安装完毕。 +至此,{{nebula.name}} 安装完毕。 ## 下一步 -[管理{{nebula.name}}服务](../manage-service.md) +[管理 {{nebula.name}} 服务](../manage-service.md) diff --git a/docs-2.0-zh/4.deployment-and-installation/2.compile-and-install-nebula-graph/6.deploy-nebula-graph-with-peripherals.md b/docs-2.0-zh/4.deployment-and-installation/2.compile-and-install-nebula-graph/6.deploy-nebula-graph-with-peripherals.md index 1c0fa114ee5..de3c5e7e70e 100644 --- a/docs-2.0-zh/4.deployment-and-installation/2.compile-and-install-nebula-graph/6.deploy-nebula-graph-with-peripherals.md +++ b/docs-2.0-zh/4.deployment-and-installation/2.compile-and-install-nebula-graph/6.deploy-nebula-graph-with-peripherals.md @@ -1,14 +1,10 @@ -# 使用生态工具安装{{nebula.name}} - -用户可以使用以下生态工具安装{{nebula.name}}: - +# 使用生态工具安装 {{nebula.name}} +用户可以使用以下生态工具安装 {{nebula.name}} : - NebulaGraph Operator ## 安装详情 - - -- 使用 **NebulaGraph Operator** 安装{{nebula.name}}的详情,参见[使用 Kubectl 部署{{nebula.name}}集群](../../nebula-operator/3.deploy-nebula-graph-cluster/3.1create-cluster-with-kubectl.md) 或 [使用 Helm 部署{{nebula.name}}集群](../../nebula-operator/3.deploy-nebula-graph-cluster/3.2create-cluster-with-helm.md)。 +使用 **NebulaGraph Operator** 安装 {{nebula.name}} 的详情,参见[创建 {{nebula.name}} 集群](../../k8s-operator/4.cluster-administration/4.1.installation/4.1.1.cluster-install.md)。 diff --git a/docs-2.0-zh/4.deployment-and-installation/2.compile-and-install-nebula-graph/deploy-nebula-graph-cluster.md b/docs-2.0-zh/4.deployment-and-installation/2.compile-and-install-nebula-graph/deploy-nebula-graph-cluster.md index d12c8a7a0f3..36615b5f2e7 100644 --- a/docs-2.0-zh/4.deployment-and-installation/2.compile-and-install-nebula-graph/deploy-nebula-graph-cluster.md +++ b/docs-2.0-zh/4.deployment-and-installation/2.compile-and-install-nebula-graph/deploy-nebula-graph-cluster.md @@ -1,10 +1,10 @@ -# 使用 RPM/DEB 包部署{{nebula.name}}多机集群 +# 使用 RPM/DEB 包部署 {{nebula.name}} 多机集群 本文介绍通过 RPM 或 DEB 文件部署集群的示例。 !!! note - 用户还可以通过官方工具部署{{nebula.name}}多机集群。详情参见[使用生态工具安装集群](6.deploy-nebula-graph-with-peripherals.md)。 + 用户还可以通过官方工具部署 {{nebula.name}} 多机集群。详情参见[使用生态工具安装集群](6.deploy-nebula-graph-with-peripherals.md)。 ## 部署方案 @@ -24,21 +24,21 @@ ## 手动部署流程 -### 安装{{nebula.name}} +### 安装 {{nebula.name}} -在集群的每一台服务器上都安装{{nebula.name}},安装后暂不需要启动服务。安装方式请参见: +在集群的每一台服务器上都安装 {{nebula.name}},安装后暂不需要启动服务。安装方式请参见: -- [使用 RPM 或 DEB 包安装{{nebula.name}}](2.install-nebula-graph-by-rpm-or-deb.md) +- [使用 RPM 或 DEB 包安装 {{nebula.name}} ](2.install-nebula-graph-by-rpm-or-deb.md) -- [使用源码安装{{nebula.name}}](1.install-nebula-graph-by-compiling-the-source-code.md) +- [使用源码安装 {{nebula.name}} ](1.install-nebula-graph-by-compiling-the-source-code.md) ### 修改配置文件 -修改每个服务器上的{{nebula.name}}配置文件。 +修改每个服务器上的 {{nebula.name}} 配置文件。 -{{nebula.name}}的所有配置文件均位于安装目录的`etc`目录内,包括`nebula-graphd.conf`、`nebula-metad.conf`和`nebula-storaged.conf`,用户可以只修改所需服务的配置文件。各个机器需要修改的配置文件如下。 + {{nebula.name}} 的所有配置文件均位于安装目录的`etc`目录内,包括`nebula-graphd.conf`、`nebula-metad.conf`和`nebula-storaged.conf`,用户可以只修改所需服务的配置文件。各个机器需要修改的配置文件如下。 | 机器名称 |待修改配置文件 | | :----- |:---------------| @@ -278,7 +278,7 @@ | D | graphd、storaged | | E | graphd、storaged | -启动{{nebula.name}}进程的命令如下: +启动 {{nebula.name}} 进程的命令如下: ```bash sudo /usr/local/nebula/scripts/nebula.service start @@ -290,7 +290,7 @@ sudo /usr/local/nebula/scripts/nebula.service start - 当需都启动 graphd、storaged 和 metad 时,可以用 all 代替。 - - `/usr/local/nebula`是{{nebula.name}}的默认安装路径,如果修改过安装路径,请使用实际路径。更多启停服务的内容,请参见[管理{{nebula.name}}服务](../../2.quick-start/3.quick-start-on-premise/5.start-stop-service.md)。 + - `/usr/local/nebula`是 {{nebula.name}} 的默认安装路径,如果修改过安装路径,请使用实际路径。更多启停服务的内容,请参见[管理 {{nebula.name}} 服务](../../2.quick-start/3.quick-start-on-premise/5.start-stop-service.md)。 ### 检查集群 diff --git a/docs-2.0-zh/4.deployment-and-installation/3.upgrade-nebula-graph/upgrade-nebula-comm.md b/docs-2.0-zh/4.deployment-and-installation/3.upgrade-nebula-graph/upgrade-nebula-comm.md index 23c3768e970..89d66026654 100644 --- a/docs-2.0-zh/4.deployment-and-installation/3.upgrade-nebula-graph/upgrade-nebula-comm.md +++ b/docs-2.0-zh/4.deployment-and-installation/3.upgrade-nebula-graph/upgrade-nebula-comm.md @@ -1,6 +1,6 @@ -# 升级{{nebula.name}} 至 {{nebula.release}} 版本 +# 升级 {{nebula.name}} 至 {{nebula.release}} 版本 -本文以{{nebula.name}} 2.6.1 版本升级到 {{nebula.release}} 版本为例,介绍{{nebula.name}}2.x、3.x 版本升级到 {{nebula.release}} 版本的方法。 +本文以 {{nebula.name}} 2.6.1 版本升级到 {{nebula.release}} 版本为例,介绍 {{nebula.name}} 2.x、3.x 版本升级到 {{nebula.release}} 版本的方法。 !!! caution - 如需从 2.0.0 之前的版本(含 1.x 版本)升级到 {{nebula.release}},还需找到 {{nebula.release}} 版本文件中`share/resources`目录下的`date_time_zonespec.csv`文件,将其复制到{{nebula.name}}安装路径下的相同目录内。也可从 [GitHub](https://github.com/vesoft-inc/nebula/blob/master/resources/date_time_zonespec.csv) 下载该文件。 + 如需从 2.0.0 之前的版本(含 1.x 版本)升级到 {{nebula.release}},还需找到 {{nebula.release}} 版本文件中`share/resources`目录下的`date_time_zonespec.csv`文件,将其复制到 {{nebula.name}} 安装路径下的相同目录内。也可从 [GitHub](https://github.com/vesoft-inc/nebula/blob/master/resources/date_time_zonespec.csv) 下载该文件。 - 不支持轮转热升级,需完全停止整个集群服务。 @@ -46,7 +46,7 @@ ps:如果2.x(x<5)来做到3.4的升级,升级过程不会报错,因为 - 客户端兼容 - 升级后旧版本客户端将无法连接{{nebula.name}},需将所有客户端都升级到兼容{{nebula.name}} {{nebula.release}} 的版本。 + 升级后旧版本客户端将无法连接 {{nebula.name}},需将所有客户端都升级到兼容 {{nebula.name}} {{nebula.release}} 的版本。 - 配置变化 @@ -64,7 +64,7 @@ ps:如果2.x(x<5)来做到3.4的升级,升级过程不会报错,因为 - 全文索引 - 在升级部署了全文索引的{{nebula.name}}前,需要手动删除 Elasticsearch (ES) 中的全文索引。在升级后需要重新使用`SIGN IN`语句登录 ES 并重新创建全文索引。用户可通过 cURL 命令手动删除 ES 中全文索引。命令为`curl -XDELETE -u : ':/'`,例如`curl -XDELETE -u elastic:elastic 'http://192.168.8.223:9200/nebula_index_2534'`。如果 ES 没有设置用户名及密码,则无需指定`-u`选项。 + 在升级部署了全文索引的 {{nebula.name}} 前,需要手动删除 Elasticsearch (ES) 中的全文索引。在升级后需要重新使用`SIGN IN`语句登录 ES 并重新创建全文索引。用户可通过 cURL 命令手动删除 ES 中全文索引。命令为`curl -XDELETE -u : ':/'`,例如`curl -XDELETE -u elastic:elastic 'http://192.168.8.223:9200/nebula_index_2534'`。如果 ES 没有设置用户名及密码,则无需指定`-u`选项。 !!! caution @@ -72,7 +72,7 @@ ps:如果2.x(x<5)来做到3.4的升级,升级过程不会报错,因为 ## 升级准备 -- 根据操作系统和架构下载{{nebula.name}} {{nebula.release}} 版本的包文件并解压,升级过程中需要其中的二进制文件。下载地址参见 [Download 页面](https://nebula-graph.io/download/)。 +- 根据操作系统和架构下载 {{nebula.name}} {{nebula.release}} 版本的包文件并解压,升级过程中需要其中的二进制文件。下载地址参见 [Download 页面](https://nebula-graph.io/download/)。 !!! note @@ -92,13 +92,13 @@ ps:如果2.x(x<5)来做到3.4的升级,升级过程不会报错,因为 ## 升级步骤 -1. 停止所有{{nebula.name}}服务。 +1. 停止所有 {{nebula.name}} 服务。 ``` /scripts/nebula.service stop all ``` - `nebula_install_path`代表{{nebula.name}}的安装目录。 + `nebula_install_path`代表 {{nebula.name}} 的安装目录。 `storaged` 进程 flush 数据要等待约 1 分钟。运行命令后可继续运行`nebula.service status all`命令以确认所有服务都已停止。启动和停止服务的详细说明参见[管理服务](../manage-service.md)。 @@ -110,10 +110,10 @@ ps:如果2.x(x<5)来做到3.4的升级,升级过程不会报错,因为 从 3.0.0 开始,支持插入无 Tag 的点。如果用户需要保留无 Tag 的点,在集群内所有 Graph 服务的配置文件(`nebula-graphd.conf`)中新增`--graph_use_vertex_key=true`;在所有 Storage 服务的配置文件(`nebula-storaged.conf`)中新增`--use_vertex_key=true`。 -2. 在**升级准备**中下载的包的目的路径下,用此处`bin`目录中的新版二进制文件替换{{nebula.name}}安装路径下`bin`目录中的旧版二进制文件。 +2. 在**升级准备**中下载的包的目的路径下,用此处`bin`目录中的新版二进制文件替换 {{nebula.name}} 安装路径下`bin`目录中的旧版二进制文件。 !!! note - 每台部署了{{nebula.name}}服务的机器上都要更新相应服务的二进制文件。 + 每台部署了 {{nebula.name}} 服务的机器上都要更新相应服务的二进制文件。 3. 编辑所有 Graph 服务的配置文件,修改以下参数以适应新版本的取值范围。如参数值已在规定范围内,忽略该步骤。 @@ -131,7 +131,7 @@ ps:如果2.x(x<5)来做到3.4的升级,升级过程不会报错,因为 启动后,Meta 服务选举 leader。该过程耗时数秒。 - 启动后可以任意启动一个 Graph 服务节点,使用{{nebula.name}}连接该节点并运行[`SHOW HOSTS meta`](../../3.ngql-guide/7.general-query-statements/6.show/6.show-hosts.md)和[`SHOW META LEADER`](../../3.ngql-guide/7.general-query-statements/6.show/19.show-meta-leader.md),如果能够正常返回 Meta 节点的状态,则 Meta 服务启动成功。 + 启动后可以任意启动一个 Graph 服务节点,使用 {{nebula.name}} 连接该节点并运行[`SHOW HOSTS meta`](../../3.ngql-guide/7.general-query-statements/6.show/6.show-hosts.md)和[`SHOW META LEADER`](../../3.ngql-guide/7.general-query-statements/6.show/19.show-meta-leader.md),如果能够正常返回 Meta 节点的状态,则 Meta 服务启动成功。 !!! note 如果启动异常,放弃本次升级,并在[论坛](https://discuss.nebula-graph.com.cn/)或 [GitHub](https://github.com/vesoft-inc/nebula/issues) 提问。 @@ -142,7 +142,7 @@ ps:如果2.x(x<5)来做到3.4的升级,升级过程不会报错,因为 !!! note 如果启动异常,放弃本次升级,并在[论坛](https://discuss.nebula-graph.com.cn/)或 [GitHub](https://github.com/vesoft-inc/nebula/issues) 提问。 -6. 连接新版{{nebula.name}},验证服务是否可用、数据是否正常。连接方法参见[连接服务](../connect-to-nebula-graph.md)。 +6. 连接新版 {{nebula.name}},验证服务是否可用、数据是否正常。连接方法参见[连接服务](../connect-to-nebula-graph.md)。 目前尚无有效方式判断升级是否完全成功,可用于测试的参考命令如下: @@ -213,7 +213,7 @@ ADD HOSTS 192.168.10.100:9779, 192.168.10.101:9779, 192.168.10.102:9779; ### 为什么升级后用`SHOW JOBS`查询到的 Job 的 ID 与升级前一样,但 Job 名称等信息不同了? -{{nebula.name}} 2.5.0 版本调整了 Job 的定义,详情参见 [Pull request](https://github.com/vesoft-inc/nebula-common/pull/562/files)。如果是从 2.5.0 之前的版本升级,会出现该问题。 + {{nebula.name}} 2.5.0 版本调整了 Job 的定义,详情参见 [Pull request](https://github.com/vesoft-inc/nebula-common/pull/562/files)。如果是从 2.5.0 之前的版本升级,会出现该问题。 ### 有哪些语法不兼容 ? diff --git a/docs-2.0-zh/4.deployment-and-installation/4.uninstall-nebula-graph.md b/docs-2.0-zh/4.deployment-and-installation/4.uninstall-nebula-graph.md index 851d7528fc5..c0c8137db29 100644 --- a/docs-2.0-zh/4.deployment-and-installation/4.uninstall-nebula-graph.md +++ b/docs-2.0-zh/4.deployment-and-installation/4.uninstall-nebula-graph.md @@ -1,14 +1,14 @@ -# 卸载{{nebula.name}} +# 卸载 {{nebula.name}} -本文介绍如何卸载{{nebula.name}}。 +本文介绍如何卸载 {{nebula.name}} 。 !!! caution - 如果需要重新部署{{nebula.name}},请务必完全卸载后再重新部署,否则可能会出现问题,包括 Meta 不一致等。 + 如果需要重新部署 {{nebula.name}},请务必完全卸载后再重新部署,否则可能会出现问题,包括 Meta 不一致等。 ## 前提条件 -停止{{nebula.name}}服务。详情参见[管理{{nebula.name}}服务](../2.quick-start/3.quick-start-on-premise/5.start-stop-service.md)。 +停止 {{nebula.name}} 服务。详情参见[管理 {{nebula.name}} 服务](../2.quick-start/3.quick-start-on-premise/5.start-stop-service.md)。 ## 步骤 1:删除数据和元数据文件 @@ -39,13 +39,13 @@ 安装路径为参数`--prefix`指定的路径。默认路径为`/usr/local/nebula`。 -### 卸载编译安装的{{nebula.name}} +### 卸载编译安装的 {{nebula.name}} -找到{{nebula.name}}的安装目录,删除整个安装目录。 +找到 {{nebula.name}} 的安装目录,删除整个安装目录。 -### 卸载 RPM 包安装的{{nebula.name}} +### 卸载 RPM 包安装的 {{nebula.name}} -1. 使用如下命令查看{{nebula.name}}版本。 +1. 使用如下命令查看 {{nebula.name}} 版本。 ```bash $ rpm -qa | grep "nebula" @@ -57,7 +57,7 @@ nebula-graph-{{ nebula.release }}-1.x86_64 ``` -2. 使用如下命令卸载{{nebula.name}}。 +2. 使用如下命令卸载 {{nebula.name}} 。 ```bash sudo rpm -e @@ -71,9 +71,9 @@ 3. 删除安装目录。 -### 卸载 DEB 包安装的{{nebula.name}} +### 卸载 DEB 包安装的 {{nebula.name}} -1. 使用如下命令查看{{nebula.name}}版本。 +1. 使用如下命令查看 {{nebula.name}} 版本。 ```bash $ dpkg -l | grep "nebula" @@ -85,7 +85,7 @@ ii nebula-graph {{ nebula.release }} amd64 NebulaGraph Package built using CMake ``` -2. 使用如下命令卸载{{nebula.name}}。 +2. 使用如下命令卸载 {{nebula.name}} 。 ```bash sudo dpkg -r @@ -99,9 +99,9 @@ 3. 删除安装目录。 -### 卸载 Docker Compose 部署的{{nebula.name}} +### 卸载 Docker Compose 部署的 {{nebula.name}} -1. 在目录`nebula-docker-compose`内执行如下命令停止{{nebula.name}}服务。 +1. 在目录`nebula-docker-compose`内执行如下命令停止 {{nebula.name}} 服务。 ```bash docker-compose down -v diff --git a/docs-2.0-zh/4.deployment-and-installation/6.deploy-text-based-index/1.text-based-index-restrictions.md b/docs-2.0-zh/4.deployment-and-installation/6.deploy-text-based-index/1.text-based-index-restrictions.md index bf54ad54d5f..d39cff189b9 100644 --- a/docs-2.0-zh/4.deployment-and-installation/6.deploy-text-based-index/1.text-based-index-restrictions.md +++ b/docs-2.0-zh/4.deployment-and-installation/6.deploy-text-based-index/1.text-based-index-restrictions.md @@ -7,8 +7,8 @@ 3.6.0 版本重做了全文索引功能,不兼容之前版本的全文索引。如果你想继续使用通配符、正则、模糊匹配等方式,有如下 3 种方式: - 删除原有全文索引,使用新的方式重建全文索引,使用新的[查询语法](../../3.ngql-guide/15.full-text-index-statements/1.search-with-text-based-index.md)。 - - 删除原有全文索引,直接用{{nebula.name}}的[原生索引](../../3.ngql-guide/14.native-index-statements/README.md)和[字符串运算符](../../3.ngql-guide/5.operators/7.string.md)。 - - 继续使用之前版本的{{nebula.name}}及其全文索引功能。 + - 删除原有全文索引,直接用 {{nebula.name}} 的[原生索引](../../3.ngql-guide/14.native-index-statements/README.md)和[字符串运算符](../../3.ngql-guide/5.operators/7.string.md)。 + - 继续使用之前版本的 {{nebula.name}} 及其全文索引功能。 全文索引有如下限制: @@ -32,8 +32,8 @@ - 不支持修改分词器,需要删除索引数据后重建索引时指定。 -- 确保同时启动了 Elasticsearch 集群和{{nebula.name}},否则可能导致 Elasticsearch 集群写入的数据不完整。 +- 确保同时启动了 Elasticsearch 集群和 {{nebula.name}},否则可能导致 Elasticsearch 集群写入的数据不完整。 -- 从写入{{nebula.name}},到写入 listener,再到写入 Elasticsearch 并创建索引可能需要一段时间。如果访问全文索引时返回未找到索引,可检查索引任务的状态。 +- 从写入 {{nebula.name}},到写入 listener,再到写入 Elasticsearch 并创建索引可能需要一段时间。如果访问全文索引时返回未找到索引,可检查索引任务的状态。 -- 使用 K8s 方式部署的{{nebula.name}}集群不支持自动部署全文索引,但支持手动部署。 +- 使用 K8s 方式部署的 {{nebula.name}} 集群不支持自动部署全文索引,但支持手动部署。 diff --git a/docs-2.0-zh/4.deployment-and-installation/6.deploy-text-based-index/2.deploy-es.md b/docs-2.0-zh/4.deployment-and-installation/6.deploy-text-based-index/2.deploy-es.md index 90cd6f4ba17..74fca4df9a4 100644 --- a/docs-2.0-zh/4.deployment-and-installation/6.deploy-text-based-index/2.deploy-es.md +++ b/docs-2.0-zh/4.deployment-and-installation/6.deploy-text-based-index/2.deploy-es.md @@ -1,6 +1,6 @@ # 部署全文索引 -{{nebula.name}}的全文索引是基于 [Elasticsearch](https://en.wikipedia.org/wiki/Elasticsearch) 实现,这意味着用户可以使用 Elasticsearch 全文查询语言来检索想要的内容。全文索引由内置的进程管理,当 listener 集群和 Elasticsearch 集群部署后,内置的进程只能为数据类型为定长字符串或变长字符串的属性创建全文索引。 + {{nebula.name}} 的全文索引是基于 [Elasticsearch](https://en.wikipedia.org/wiki/Elasticsearch) 实现,这意味着用户可以使用 Elasticsearch 全文查询语言来检索想要的内容。全文索引由内置的进程管理,当 listener 集群和 Elasticsearch 集群部署后,内置的进程只能为数据类型为定长字符串或变长字符串的属性创建全文索引。 ## 注意事项 diff --git a/docs-2.0-zh/4.deployment-and-installation/6.deploy-text-based-index/3.deploy-listener.md b/docs-2.0-zh/4.deployment-and-installation/6.deploy-text-based-index/3.deploy-listener.md index 3c6a4b31c2f..45450017f78 100644 --- a/docs-2.0-zh/4.deployment-and-installation/6.deploy-text-based-index/3.deploy-listener.md +++ b/docs-2.0-zh/4.deployment-and-installation/6.deploy-text-based-index/3.deploy-listener.md @@ -6,7 +6,7 @@ - 已经了解全文索引的[使用限制](../../4.deployment-and-installation/6.deploy-text-based-index/1.text-based-index-restrictions.md)。 -- 已经[部署{{nebula.name}}集群](../2.compile-and-install-nebula-graph/deploy-nebula-graph-cluster.md)。 +- 已经[部署 {{nebula.name}} 集群](../2.compile-and-install-nebula-graph/deploy-nebula-graph-cluster.md)。 - 完成[部署 Elasticsearch 集群](./2.deploy-es.md)。 @@ -14,9 +14,9 @@ ## 注意事项 -- 请保证{{nebula.name}}各服务(Metad、Storaged、Graphd、listener)有相同的版本。 +- 请保证 {{nebula.name}} 各服务(Metad、Storaged、Graphd、listener)有相同的版本。 -- 请保证 listener 所在机器的时区与{{nebula.name}}各服务所在机器的时区一致。 +- 请保证 listener 所在机器的时区与 {{nebula.name}} 各服务所在机器的时区一致。 - 只能为**一个图空间一次性添加所有的 listener 机器**。尝试向已经存在有 listener 的图空间再添加新 listener 会失败。因此,需在一个命令语句里完整地添加全部的 listener。 @@ -25,7 +25,7 @@ ### 第一步:安装 listener 服务 -listener 服务与 storaged 服务使用相同的二进制文件,但是二者配置文件不同,进程使用端口也不同。我们在所有需要部署 listener 的服务器上都安装{{nebula.name}},但是不启动服务。详情请参见[使用 RPM 或 DEB 安装包安装{{nebula.name}}](../2.compile-and-install-nebula-graph/2.install-nebula-graph-by-rpm-or-deb.md)。 +listener 服务与 storaged 服务使用相同的二进制文件,但是二者配置文件不同,进程使用端口也不同。我们在所有需要部署 listener 的服务器上都安装 {{nebula.name}},但是不启动服务。详情请参见[使用 RPM 或 DEB 安装包安装 {{nebula.name}} ](../2.compile-and-install-nebula-graph/2.install-nebula-graph-by-rpm-or-deb.md)。 ### 第二步:准备 listener 的配置文件 @@ -37,8 +37,8 @@ listener 服务与 storaged 服务使用相同的二进制文件,但是二者 | :----------- | :----------------------- | :------------------| | `daemonize` | `true` | 是否启动守护进程。 | | `pid_file` | `pids/nebula-storaged-listener.pid` | 记录进程 ID 的文件。 | -| `meta_server_addrs` | - | 全部 Meta 服务的 IP 地址和端口。多个 Meta 服务用英文逗号(,)分隔。 | -| `local_ip` | - | listener 服务的本地 IP 地址。请使用真实的 listener 机器 IP 地址替换`127.0.0.1`。 | +| `meta_server_addrs` | - | 全部 Meta 服务的 IP(或主机名)和端口。多个 Meta 服务用英文逗号(,)分隔。 | +| `local_ip` | - | listener 服务的 IP(或主机名)。请使用真实的 listener 机器 IP 替换`127.0.0.1`。 | | `port` | - | listener 服务的 RPC 守护进程监听端口。 | | `heartbeat_interval_secs` | `10` | Meta 服务的心跳间隔。单位:秒(s)。 | | `listener_path` | `data/listener` | listener 的 WAL 目录。只允许使用一个目录。 | @@ -57,9 +57,9 @@ listener 服务与 storaged 服务使用相同的二进制文件,但是二者 ./bin/nebula-storaged --flagfile etc/nebula-storaged-listener.conf ``` -### 第四步:添加 listener 到{{nebula.name}}集群 +### 第四步:添加 listener 到 {{nebula.name}} 集群 -[用命令行连接到{{nebula.name}}](../../2.quick-start/3.quick-start-on-premise/3.connect-to-nebula-graph.md),然后执行 [`USE `](../../3.ngql-guide/9.space-statements/2.use-space.md) 进入需要创建全文索引的图空间。然后执行如下命令添加 listener: +[用命令行连接到 {{nebula.name}} ](../../2.quick-start/3.quick-start-on-premise/3.connect-to-nebula-graph.md),然后执行 [`USE `](../../3.ngql-guide/9.space-statements/2.use-space.md) 进入需要创建全文索引的图空间。然后执行如下命令添加 listener: ```ngql ADD LISTENER ELASTICSEARCH [,, ...] diff --git a/docs-2.0-zh/4.deployment-and-installation/connect-to-nebula-graph.md b/docs-2.0-zh/4.deployment-and-installation/connect-to-nebula-graph.md index d874231454f..e0e1c171f78 100644 --- a/docs-2.0-zh/4.deployment-and-installation/connect-to-nebula-graph.md +++ b/docs-2.0-zh/4.deployment-and-installation/connect-to-nebula-graph.md @@ -1,4 +1,4 @@ -# 连接{{nebula.name}}服务 +# 连接 {{nebula.name}} 服务 {% include "/source_connect-to-nebula-graph.md" %} diff --git a/docs-2.0-zh/4.deployment-and-installation/manage-service.md b/docs-2.0-zh/4.deployment-and-installation/manage-service.md index 69f707c9ee8..3d8ba4819c8 100644 --- a/docs-2.0-zh/4.deployment-and-installation/manage-service.md +++ b/docs-2.0-zh/4.deployment-and-installation/manage-service.md @@ -1,4 +1,4 @@ -# 管理{{nebula.name}}服务 +# 管理 {{nebula.name}} 服务 {% include "/source_manage-service.md" %} diff --git a/docs-2.0-zh/4.deployment-and-installation/standalone-deployment.md b/docs-2.0-zh/4.deployment-and-installation/standalone-deployment.md index bfbfd954ae8..4ca5016313c 100644 --- a/docs-2.0-zh/4.deployment-and-installation/standalone-deployment.md +++ b/docs-2.0-zh/4.deployment-and-installation/standalone-deployment.md @@ -1,16 +1,16 @@ -# 存算合并版{{nebula.name}} +# 存算合并版 {{nebula.name}} -存算合并版{{nebula.name}}将存储服务(Meta 和 Storage)和计算服务(Graph)合并至一个进程,用于部署在单台机器上。本文介绍存算合并版{{nebula.name}}的使用场景、安装步骤等。 +存算合并版 {{nebula.name}} 将存储服务(Meta 和 Storage)和计算服务(Graph)合并至一个进程,用于部署在单台机器上。本文介绍存算合并版 {{nebula.name}} 的使用场景、安装步骤等。 !!! danger - 存算合并版{{nebula.name}}不用于生产环境。 + 存算合并版 {{nebula.name}} 不用于生产环境。 ## 背景信息 -传统的{{nebula.name}}架构由 3 个服务构成,每个服务都有可执行的二进制文件和对应的进程,进程之间通过 RPC 协议进行调用。而在存算合并版{{nebula.name}}中,{{nebula.name}}中 3 个服务对应的 3 个进程被合为 1 个进程。 +传统的 {{nebula.name}} 架构由 3 个服务构成,每个服务都有可执行的二进制文件和对应的进程,进程之间通过 RPC 协议进行调用。而在存算合并版 {{nebula.name}} 中,{{nebula.name}} 中 3 个服务对应的 3 个进程被合为 1 个进程。 -关于{{nebula.name}}的更多信息,参见[架构总览](../1.introduction/3.nebula-graph-architecture/1.architecture-overview.md)。 +关于 {{nebula.name}} 的更多信息,参见[架构总览](../1.introduction/3.nebula-graph-architecture/1.architecture-overview.md)。 ## 使用场景 @@ -23,11 +23,11 @@ ## 环境准备 -关于安装存算合并版{{nebula.name}}所需的环境,参见[编译{{nebula.name}}源码要求](1.resource-preparations.md)。 +关于安装存算合并版 {{nebula.name}} 所需的环境,参见[编译 {{nebula.name}} 源码要求](1.resource-preparations.md)。 ## 安装步骤 -目前仅支持使用源码安装存算合并版{{nebula.name}}。其安装步骤与多进程的{{nebula.name}}步骤类似,用户只需在**使用 CMake 生成 makefile 文件**步骤的命令中添加`-DENABLE_STANDALONE_VERSION=on`。示例如下: +目前仅支持使用源码安装存算合并版 {{nebula.name}} 。其安装步骤与多进程的 {{nebula.name}} 步骤类似,用户只需在**使用 CMake 生成 makefile 文件**步骤的命令中添加`-DENABLE_STANDALONE_VERSION=on`。示例如下: ```bash cmake -DCMAKE_INSTALL_PREFIX=/usr/local/nebula -DENABLE_TESTING=OFF -DENABLE_STANDALONE_VERSION=on -DCMAKE_BUILD_TYPE=Release .. @@ -35,13 +35,13 @@ cmake -DCMAKE_INSTALL_PREFIX=/usr/local/nebula -DENABLE_TESTING=OFF -DENABLE_STA 有关具体的安装步骤,参见[使用源码安装](2.compile-and-install-nebula-graph/1.install-nebula-graph-by-compiling-the-source-code.md)。 -用户完成存算合并版{{nebula.name}}后,可以参见[连接服务](connect-to-nebula-graph.md)连接{{nebula.name}}。 +用户完成存算合并版 {{nebula.name}} 后,可以参见[连接服务](connect-to-nebula-graph.md)连接 {{nebula.name}} 。 ## 配置文件 -存算合并版{{nebula.name}}的配置文件的路径默认为`/usr/local/nebula/etc`。 +存算合并版 {{nebula.name}} 的配置文件的路径默认为`/usr/local/nebula/etc`。 -用户可执行`sudo cat nebula-standalone.conf.default`查看配置文件内容。配置文件参数和描述和多进程的{{nebula.name}}大体一致,除以下参数外: +用户可执行`sudo cat nebula-standalone.conf.default`查看配置文件内容。配置文件参数和描述和多进程的 {{nebula.name}} 大体一致,除以下参数外: | 参数 | 预设值 | 说明 | | ---------------- | ----------- | --------------------- | diff --git a/docs-2.0-zh/5.configurations-and-logs/1.configurations/1.configurations.md b/docs-2.0-zh/5.configurations-and-logs/1.configurations/1.configurations.md index 8e43734614c..e9b2bda59e2 100644 --- a/docs-2.0-zh/5.configurations-and-logs/1.configurations/1.configurations.md +++ b/docs-2.0-zh/5.configurations-and-logs/1.configurations/1.configurations.md @@ -1,12 +1,12 @@ # 配置管理 -{{nebula.name}}基于 [gflags](https://gflags.github.io/gflags/) 库打造了系统配置,多数配置项都是其中的 flags。{{nebula.name}}服务启动时,默认会从[配置文件](#_4)中获取配置信息。对于文件中没有的配置项,系统使用默认值。 + {{nebula.name}} 基于 [gflags](https://gflags.github.io/gflags/) 库打造了系统配置,多数配置项都是其中的 flags。 {{nebula.name}} 服务启动时,默认会从[配置文件](#_4)中获取配置信息。对于文件中没有的配置项,系统使用默认值。 !!! note - * 由于配置项多且可能随着{{nebula.name}}的开发发生变化,文档不会介绍所有配置项。按下文说明可在命令行获取配置项的详细说明。 + * 由于配置项多且可能随着 {{nebula.name}} 的开发发生变化,文档不会介绍所有配置项。按下文说明可在命令行获取配置项的详细说明。 * 不建议修改文档未介绍的配置项,除非已经熟悉源代码并完全了解配置项的作用。 !!! compatibility "历史版本兼容性" @@ -34,11 +34,11 @@ $ /usr/local/nebula/bin/nebula-graphd --help $ /usr/local/nebula/bin/nebula-storaged --help ``` -以上示例使用了二进制文件的默认存储路径`/usr/local/nebula/bin/`。如果修改了{{nebula.name}}安装路径,使用实际路径查询配置项信息。 +以上示例使用了二进制文件的默认存储路径`/usr/local/nebula/bin/`。如果修改了 {{nebula.name}} 安装路径,使用实际路径查询配置项信息。 ## 查看运行配置 -使用`curl`命令获取运行中的配置项的值,即{{nebula.name}}的运行配置。 +使用`curl`命令获取运行中的配置项的值,即 {{nebula.name}} 的运行配置。 -## misc 配置 - -!!! caution - - 下表中的`snapshot`与{{nebula.name}}快照是不同的概念,这里的`snapshot`指 Raft 同步过程中 leader 上的存量数据。 - -| 名称 | 预设值 | 说明 |是否支持运行时动态修改| -| :-- | :----- | :--- | :--- | -| `query_concurrently` | `true` | 是否开启多线程查询。开启后可以提高单个查询的时延性能,但大压力下会降低整体的吞吐量。 |支持| -| `auto_remove_invalid_space` | `true` | 在执行`DROP SPACE`后,会删除指定图空间,该参数设置是否同时删除指定图空间内的所有数据。当值为`true`时,同时删除指定图空间内的所有数据。 |支持| -| `num_io_threads` | `16` | 网络 I/O 线程的数量,用于发送 RPC 请求和接收响应。 |不支持| -|`num_max_connections` |`0` |所有网络线程的最大活动连接数,`0`表示没有限制。
每个网络线程的最大连接数=`num_max_connections`/`num_netio_threads`。|不支持| -| `num_worker_threads` | `32` | Storage 的 RPC 服务的工作线程数量。 |不支持| -| `max_concurrent_subtasks` | `10` | TaskManager 并发执行子任务的最大个数。 |不支持| -| `snapshot_part_rate_limit` | `10485760` | Raft leader 向 Raft group 中其它成员同步存量数据时的限速。单位:字节/秒。 |支持| -| `snapshot_batch_size` | `1048576` | Raft leader 向 Raft group 中其它成员同步存量数据时每批发送的数据量。单位:字节。 |支持| -| `rebuild_index_part_rate_limit` | `4194304` | 重建索引过程中,Raft leader 向 Raft group 中其它成员同步索引数据时的限速。单位:字节/秒。 |支持| -| `rebuild_index_batch_size` | `1048576` | 重建索引过程中,Raft leader 向 Raft group 中其它成员同步索引数据时每批发送的数据量。单位:字节。 |支持| ## rocksdb options 配置 @@ -178,6 +160,24 @@ rocksdb options 配置的格式为`{"":""}`,多个 参数的详细说明请参见 [RocksDB 官方文档](https://rocksdb.org/)。 +## misc 配置 + +!!! caution + + 下表中的`snapshot`与 {{nebula.name}} 快照是不同的概念,这里的`snapshot`指 Raft 同步过程中 leader 上的存量数据。 + +| 名称 | 预设值 | 说明 |是否支持运行时动态修改| +| :-- | :----- | :--- | :--- | +| `query_concurrently` | `true` | 是否开启多线程查询。开启后可以提高单个查询的时延性能,但大压力下会降低整体的吞吐量。 |支持| +| `auto_remove_invalid_space` | `true` | 在执行`DROP SPACE`后,会删除指定图空间,该参数设置是否同时删除指定图空间内的所有数据。当值为`true`时,同时删除指定图空间内的所有数据。 |支持| +| `num_io_threads` | `16` | 网络 I/O 线程的数量,用于发送 RPC 请求和接收响应。 |不支持| +|`num_max_connections` |`0` |所有网络线程的最大活动连接数,`0`表示没有限制。
每个网络线程的最大连接数=`num_max_connections`/`num_netio_threads`。|不支持| +| `num_worker_threads` | `32` | Storage 的 RPC 服务的工作线程数量。 |不支持| +| `max_concurrent_subtasks` | `10` | TaskManager 并发执行子任务的最大个数。 |不支持| +| `snapshot_part_rate_limit` | `10485760` | Raft leader 向 Raft group 中其它成员同步存量数据时的限速。单位:字节/秒。 |支持| +| `snapshot_batch_size` | `1048576` | Raft leader 向 Raft group 中其它成员同步存量数据时每批发送的数据量。单位:字节。 |支持| +| `rebuild_index_part_rate_limit` | `4194304` | 重建索引过程中,Raft leader 向 Raft group 中其它成员同步索引数据时的限速。单位:字节/秒。 |支持| +| `rebuild_index_batch_size` | `1048576` | 重建索引过程中,Raft leader 向 Raft group 中其它成员同步索引数据时每批发送的数据量。单位:字节。 |支持| ## memory tracker 配置 @@ -186,7 +186,7 @@ rocksdb options 配置的格式为`{"":""}`,多个 | 名称 | 预设值 | 说明 |是否支持运行时动态修改| | :------------------- | :------------------------ | :------------------------------------------ |:----------------------- | -|`memory_tracker_limit_ratio` |`0.8` |取值可设置为:`(0, 1]`、`2`、`3`。
`(0, 1]`:可用内存的百分比,当可用内存低于该值时,{{nebula.name}}会停止接受查询。
计算公式:可用内存/(总内存 - 保留内存)。
**注意**:对于混合部署的集群,需要根据实际情况**调小**该参数。例如,当预期 Graphd 只占用 50% 的内存时,该参数的值可设置为小于`0.5`。
`2`:动态自适应模式(Dynamic Self Adaptive),Memory Tracker 会根据系统当前的可用内存,动态调整可用内存。
**注意**:此功能为实验性功能,由于动态自适应不能做到实时监控操作系统内存使用情况,在一些大内存分配的场景,还是会存在 OOM 可能。
`3`:关掉 Memory Tracker,Memory Tracker 将只记录内存使用情况,即使超过限额,也不会干预执行。|支持| +|`memory_tracker_limit_ratio` |`0.8` |取值可设置为:`(0, 1]`、`2`、`3`。
`(0, 1]`:可用内存的百分比。计算公式:可用内存的百分比 = 可用内存 / (总内存 - 保留内存)。
当正在进行的查询导致内存使用超过配置的内存限制时,该查询会失败,并在失败后释放内存。
**注意**:对于云上和本地节点混合部署的集群,需要根据实际情况**调小**该参数。例如,当预期 Graphd 只占用 50% 的内存时,该参数的值可设置为小于`0.5`。
`2`:动态自适应模式(Dynamic Self Adaptive),Memory Tracker 会根据系统当前的可用内存,动态调整可用内存。
**注意**:此功能为实验性功能,由于动态自适应不能做到实时监控操作系统内存使用情况,在一些大内存分配的场景,还是会存在 OOM 可能。
`3`:关掉 Memory Tracker,Memory Tracker 将只记录内存使用情况,即使超过限额,也不会干预执行。|支持| |`memory_tracker_untracked_reserved_memory_mb` |`50`|保留内存的大小,单位:MB。|支持| |`memory_tracker_detail_log` |`false` | 是否定期生成较详细的内存跟踪日志。当值为`true`时,会定期生成内存跟踪日志。|支持| |`memory_tracker_detail_log_interval_ms` |`60000`|内存跟踪日志的生成时间间隔,单位:毫秒。仅当`memory_tracker_detail_log`为`true`时,该参数生效。|支持| diff --git a/docs-2.0-zh/5.configurations-and-logs/1.configurations/6.kernel-config.md b/docs-2.0-zh/5.configurations-and-logs/1.configurations/6.kernel-config.md index 74113469ca2..2d8294e9b93 100644 --- a/docs-2.0-zh/5.configurations-and-logs/1.configurations/6.kernel-config.md +++ b/docs-2.0-zh/5.configurations-and-logs/1.configurations/6.kernel-config.md @@ -1,35 +1,33 @@ # Linux 内核配置 -本文介绍与{{nebula.name}}相关的 Linux 内核配置,并介绍如何修改配置。 +本文介绍与 {{nebula.name}} 相关的 Linux 内核配置,并介绍如何修改配置。 ## 资源控制 -### ulimit 注意事项 - -命令`ulimit`用于为当前 shell 会话设置资源阈值,注意事项如下: - -- `ulimit`所做的更改仅对当前会话或子进程生效。 - -- 资源的阈值(软阈值)不能超过硬阈值。 - -- 普通用户不能使用命令调整硬阈值,即使使用`sudo`也不能调整。 - -- 修改系统级别或调整硬性阈值,请编辑文件`/etc/security/limits.conf`。这种方式需要重新登录才生效。 -### ulimit -c - -`ulimit -c`用于限制 core 文件的大小,建议设置为`unlimited`,命令如下: +虽然可以用`ulimit`进行资源控制,但是所做的更改仅对当前会话或子进程生效。如果需要永久生效,请编辑文件`/etc/security/limits.conf`。配置如下: ```bash -ulimit -c unlimited +# +* soft core unlimited +* hard core unlimited +* soft nofile 130000 +* hard nofile 130000 ``` -### ulimit -n +!!! note -`ulimit -n`用于限制打开文件的数量,建议设置为超过 10 万,例如: + 配置修改后会对新的会话生效。 -```bash -ulimit -n 130000 -``` +参数说明如下。 + +|参数|说明| +|:--|:--| +|`domain`|控制域。可以是用户名称、用户组名称(以`@`开头),或者用`*`表示所有用户。| +|`type`|控制类型。可以是`soft`或`hard`。`soft`表示资源的软阈值(默认阈值),`hard`表示用户可以设置的最大值。可以使用`ulimit`命令提高`soft`,但不能超过`hard`。| +|`item`|资源类型。例如`core`限制核心转储文件的大小,`nofile`限制一个进程可以打开的最大文件描述符数量。| +|`value`|资源限制值。可以是一个数字,或者 unlimited 表示没有限制。| + +可以执行`man limits.conf`查看更多帮助信息。 ## 内存 @@ -49,16 +47,50 @@ ulimit -n 130000 `vm.dirty_*`是一系列控制系统脏数据缓存的参数。对于写密集型场景,用户可以根据需要进行调整(吞吐量优先或延迟优先),建议使用系统默认值。 -### Transparent huge page +### 透明大页 -为了降低延迟,用户必须关闭 THP(transparent huge page)。命令如下: +透明大页(Transparent Huge Pages, THP)是一种 Linux 内核的内存管理特性,可以提高系统使用大页的能力。在多数数据库系统中,透明大页会降低性能,建议关闭。 -```bash -root# echo never > /sys/kernel/mm/transparent_hugepage/enabled -root# echo never > /sys/kernel/mm/transparent_hugepage/defrag -root# swapoff -a && swapon -a -``` -为了防止系统重启后该配置失效,可以在GRUB配置文件或`/etc/rc.local`中添加相关配置,使系统启动时自动关闭 THP。 +操作如下: + +1. 编辑 GRUB 配置文件`/etc/default/grub`。 + + ```bash + sudo vi /etc/default/grub + ``` + +2. 在`GRUB_CMDLINE_LINUX`选项中添加`transparent_hugepage=never`,然后保存并退出。 + + ```bash + GRUB_CMDLINE_LINUX="... transparent_hugepage=never" + ``` + +3. 更新 GRUB 配置。 + + - CentOS + + ```bash + sudo grub2-mkconfig -o /boot/grub2/grub.cfg + ``` + + - Ubuntu + + ```bash + sudo update-grub + ``` + +4. 重启操作系统。 + + ```bash + sudo reboot + ``` + + 如果不重启可临时关闭透明大页,直到下次重启。 + + ```bash + echo 'never' > /sys/kernel/mm/transparent_hugepage/enabled + echo 'never' > /sys/kernel/mm/transparent_hugepage/defrag + ``` ## 网络 diff --git a/docs-2.0-zh/5.configurations-and-logs/2.log-management/logs.md b/docs-2.0-zh/5.configurations-and-logs/2.log-management/logs.md index ffe99098a28..ee21363dd8c 100644 --- a/docs-2.0-zh/5.configurations-and-logs/2.log-management/logs.md +++ b/docs-2.0-zh/5.configurations-and-logs/2.log-management/logs.md @@ -2,17 +2,17 @@ 运行日志通常提供给 DBA 或开发人员查看,当系统出现故障,DBA 或开发人员可以根据运行日志定位问题。 -{{nebula.name}}默认使用 [glog](https://github.com/google/glog) 打印运行日志,使用 [gflags](https://gflags.github.io/gflags/) 控制日志级别,并在运行时通过 HTTP 接口动态修改日志级别,方便跟踪问题。 + {{nebula.name}} 默认使用 [glog](https://github.com/google/glog) 打印运行日志,使用 [gflags](https://gflags.github.io/gflags/) 控制日志级别,并在运行时通过 HTTP 接口动态修改日志级别,方便跟踪问题。 ## 运行日志目录 运行日志的默认目录为`/usr/local/nebula/logs/`。 -如果在{{nebula.name}}运行过程中删除运行日志目录,日志不会继续打印,但是不会影响业务。重启服务可以恢复正常。 +如果在 {{nebula.name}} 运行过程中删除运行日志目录,日志不会继续打印,但是不会影响业务。重启服务可以恢复正常。 ## 配置说明 -- `minloglevel`:最小日志级别,即不会记录低于这个级别的日志。可选值为`0`(INFO)、`1`(WARNING)、`2`(ERROR)、`3`(FATAL)。建议在调试时设置为`0`,生产环境中设置为`1`。如果设置为`4`,{{nebula.name}}不会记录任何日志。 +- `minloglevel`:最小日志级别,即不会记录低于这个级别的日志。可选值为`0`(INFO)、`1`(WARNING)、`2`(ERROR)、`3`(FATAL)。建议在调试时设置为`0`,生产环境中设置为`1`。如果设置为`4`,{{nebula.name}} 不会记录任何日志。 - `v`:日志详细级别,值越大,日志记录越详细。可选值为`0`、`1`、`2`、`3`。 @@ -69,7 +69,7 @@ $ curl -X PUT -H "Content-Type: application/json" -d '{"minloglevel":0,"v":3}' " ``` -如果在{{nebula.name}}运行时修改了运行日志级别,重启服务后会恢复为配置文件中设置的级别,如果需要永久修改,请修改[配置文件](../1.configurations/1.configurations.md)。 +如果在{{nebula.name}}运行时修改了运行日志级别,重启服务后会恢复为配置文件中设置的级别,如果需要永久修改,请修改[配置文件](../1.configurations/1.configurations.md)并重启服务。 ## RocksDB 运行日志 @@ -77,4 +77,158 @@ RocksDB 的运行日志通常在 `/usr/local/nebula/data/storage/nebula/$id/data ## 回收日志 -运行日志文件过大时如何回收日志,请参见[常见问题](../../20.appendix/0.FAQ.md)。 +glog 本身不支持回收日志,如果需要回收日志,可以使用 Linux 系统中[定时任务(Cron Jobs)](https://man7.org/linux/man-pages/man1/crontab.1.html)来定期删除旧的日志文件。或者,使用日志管理工具 [logrotate](https://github.com/logrotate/logrotate) 来轮转日志以定期归档和删除日志。 + +### 使用定时任务回收日志 + +本文以回收 Graph 服务的运行日志为例,说明如何使用定时任务来定期删除旧的日志文件。操作步骤如下: + +1. 在 [Graph 服务配置文件](../1.configurations/3.graph-config.md)中,进行如下配置,然后重启服务。 + + ```bash + timestamp_in_logfile_name = true + max_log_size = 500 + ``` + + - 设置`timestamp_in_logfile_name`为`true`,这样日志文件名中会包含时间戳,以定期删除旧的日志文件。 + - 添加`max_log_size`参数,设置单个日志文件的最大大小,例如`500`。超过这个大小后,会自动创建新的日志文件,单位 MB,默认值为`1800`。 + +2. 在 Linux 系统中,使用如下命令编辑定时任务: + + ```bash + crontab -e + ``` + +3. 在定时任务中添加命令,以定期删除旧的日志文件。 + + ```bash + * * * * * find -name "" -mtime +7 -delete + ``` + + !!! caution + + 以上命令中的`find`命令需要使用 root 用户或者具有 sudo 权限的用户来执行。 + + - `* * * * *`:定时任务的时间字段,五个星号表示这个任务每分钟都会执行。其他设置,参见[Cron Expression](https://crontab.cronhub.io/)。 + - ``:服务运行日志文件的路径,例如`/usr/local/nebula/logs`。 + - ``:日志文件名,例如`nebula-graphd.*`。 + - `-mtime +7`:表示删除更新时间超过 7 天的日志文件。也可以使用`-mmin +n`,表示删除更新时间超过 n 分钟的日志文件。详情参见 [find 命令](https://man7.org/linux/man-pages/man1/find.1.html)。 + - `-delete`:表示删除满足条件的日志文件。 + + 例如,每天凌晨 3 点自动删除更新时间超过 7 天的 Graph 服务运行日志文件的命令: + + ```bash + 0 3 * * * find /usr/local/nebula/logs -name nebula-graphd.* -mtime +7 -delete + ``` + +4. 保存定时任务。 + + +### 使用 logrotate 回收日志 + +用户可以使用 logrotate 工具对指定的日志文件进行轮转,以达到归档和回收日志的目的。 + +!!! note + + 需要使用 root 用户或者具有 sudo 权限的用户来安装 logrotate 或者运行 logrotate。 + +本文以回收 Graph 服务`INFO`级别的日志文件(`/usr/local/nebula/logs/nebula-graphd.INFO.impl`)为例说明如何使用 logrotate 工具。操作步骤如下: + +1. 在 [Graph 服务配置文件](../1.configurations/3.graph-config.md)中,将`timestamp_in_logfile_name`设置为`false`,以便 logrotate 工具可以识别日志文件名。然后重启服务。 + + ```bash + timestamp_in_logfile_name = false + ``` + +2. 安装 logrotate。 + + - Debian/Ubuntu: + + ```bash + sudo apt-get install logrotate + ``` + + - CentOS/RHEL: + + ```bash + sudo yum install logrotate + ``` + +3. 创建 logrotate 配置文件,添加日志轮转规则,然后保存配置文件。 + + 在`/etc/logrotate.d`目录下,创建一个新的 logrotate 配置文件`nebula-graphd.INFO` + + ```bash + sudo vim /etc/logrotate.d/nebula-graphd.INFO + ``` + + 添加以下内容: + + ```bash + # 需配置日志文件的绝对路径 + # 并且文件名不能为软链接文件,如不能为`nebula-graph.INFO` + /usr/local/nebula/logs/nebula-graphd.INFO.impl { + daily + rotate 2 + copytruncate + nocompress + missingok + notifempty + create 644 root root + dateext + dateformat .%Y-%m-%d-%s + maxsize 1k + } + ``` + + |参数|说明| + |:--|:--| + |`daily`| 每天轮转日志。可用的时间单位有:`hourly`、`daily`、`weekly`、`monthly`、`yearly`。| + |`rotate 2`| 在删除前日志文件前,其被轮转的次数。即保留最近生成的 2 个日志文件。| + |`copytruncate`| 将当前日志文件复制一份,然后清空当前日志文件。| + |`nocompress`| 不压缩旧的日志文件。| + |`missingok`| 如果日志文件丢失,不报告错误。| + |`notifempty`| 如果日志文件为空,不进行轮转。| + |`create 644 root root`| 创建新的日志文件,并设置适当的权限和所有者。| + |`dateext`| 在日志文件名中添加日期后缀。
默认是当前日期。默认是`-%Y%m%d`的后缀。可用`dateformat`选项扩展配置。| + |`dateformat .%Y-%m-%d-%s`| 必须配合`dateext`使用,紧跟在下一行出现,定义文件切割后的文件名。
在V3.9.0 之前,只支持`%Y`、`%m`、`%d`、`%s`参数。在 V3.9.0 及之后,支持 %H 参数。| + |`maxsize 1k`| 当日志文件大小超过`1`千字节(`1024`字节)或者超过设定的周期(如`daily`)时,进行日志轮转。可用的大小单位有:`k`、`M`,默认单位为字节。| + + 用户可以根据实际需求修改配置文件中的参数。更多关于参数的配置及解释,参见 [logrotate](https://man7.org/linux/man-pages/man8/logrotate.8.html)。 + +4. 测试 logrotate 配置。 + + 为了验证 logrotate 的配置是否正确,可以使用以下命令来进行测试: + + ```bash + sudo logrotate --debug /etc/logrotate.d/nebula-graphd.INFO + ``` + +5. 运行 logrotate。 + + 尽管`logrotate`通常由定时作业自动执行,但也可以手动执行以下命令,以立即进行日志轮转: + + ```bash + sudo logrotate -fv /etc/logrotate.d/nebula-graphd.INFO + ``` + + `-fv`:`f`表示强制执行,`v`表示打印详细信息。 + +6. 查看日志轮转结果。 + + 日志轮转后,会在`/usr/local/nebula/logs`目录下看到新的日志文件,例如`nebula-graphd.INFO.impl.2024-01-04-1704338204`。原始日志内容会被清空,但文件会被保留,新日志继续写入。当日志文件数量超过`rotate`设置的值时,会删除最旧的日志文件。 + + 例如,`rotate 2`表示保留最近生成的 2 个日志文件,当日志文件数量超过 2 个时,会删除最旧的日志文件。 + + ```bash + [test@test logs]$ ll + -rw-r--r-- 1 root root 0 Jan 4 11:18 nebula-graphd.INFO.impl + -rw-r--r-- 1 root root 6894 Jan 4 11:16 nebula-graphd.INFO.impl.2024-01-04-1704338204 # 当新的日志文件生成时,此文件被删除 + -rw-r--r-- 1 root root 222 Jan 4 11:18 nebula-graphd.INFO.impl.2024-01-04-1704338287 + [test@test logs]$ ll + -rw-r--r-- 1 root root 0 Jan 4 11:18 nebula-graphd.INFO.impl + -rw-r--r-- 1 root root 222 Jan 4 11:18 nebula-graphd.INFO.impl.2024-01-04-1704338287 + -rw-r--r-- 1 root root 222 Jan 4 11:18 nebula-graphd.INFO.impl.2024-01-04-1704338339 # 新生成的日志文件 + ``` + +如果用户需要对多个日志文件进行轮转,可以在`/etc/logrotate.d`目录下创建多个配置文件,每个配置文件对应一个日志文件。例如,用户需要对 Meta 服务的`INFO`级别日志文件和`WARNING`级别日志文件进行轮转,可以创建两个配置文件`nebula-metad.INFO`和`nebula-metad.WARNING`,并在其中分别添加日志轮转规则。 diff --git a/docs-2.0-zh/6.monitor-and-metrics/1.query-performance-metrics.md b/docs-2.0-zh/6.monitor-and-metrics/1.query-performance-metrics.md index 6c5259523eb..6a3cf8697f8 100644 --- a/docs-2.0-zh/6.monitor-and-metrics/1.query-performance-metrics.md +++ b/docs-2.0-zh/6.monitor-and-metrics/1.query-performance-metrics.md @@ -1,10 +1,10 @@ -# 查询{{nebula.name}}监控指标 +# 查询 {{nebula.name}} 监控指标 -{{nebula.name}}支持多种方式查询服务的监控指标,本文将介绍最基础的方式,即通过 HTTP 端口查询。 + {{nebula.name}} 支持多种方式查询服务的监控指标,本文将介绍最基础的方式,即通过 HTTP 端口查询。 ## 监控指标结构说明 -{{nebula.name}}的每个监控指标都由三个部分组成,中间用英文句号(.)隔开,例如`num_queries.sum.600`。不同的{{nebula.name}}服务支持查询的监控指标也不同。指标结构的说明如下。 + {{nebula.name}} 的每个监控指标都由三个部分组成,中间用英文句号(.)隔开,例如`num_queries.sum.600`。不同的 {{nebula.name}} 服务支持查询的监控指标也不同。指标结构的说明如下。 |类别|示例|说明| |:---|:---|:---| @@ -17,19 +17,19 @@ ### 语法 ```bash -curl -G "http://:/stats?stats= [&format=json]" +curl -G "http://:/stats?stats= [&format=json]" ``` |选项|说明| |:---|:---| -|`ip`|服务器的 IP 地址,可以在安装目录内查看配置文件获取。| +|`host`|服务器的 IP 或主机名,可以在安装目录内查看配置文件获取。| |`port`|服务器的 HTTP 端口,可以在安装目录内查看配置文件获取。默认情况下,Meta 服务端口为 19559,Graph 服务端口为 19669,Storage 服务端口为 19779。| |`metric_name_list`|监控指标名称,多个监控指标用英文逗号(,)隔开。| |`&format=json`|将结果以 JSON 格式返回。| !!! note - 如果{{nebula.name}}服务部署在容器中,需要执行`docker-compose ps`命令查看映射到容器外部的端口,然后通过该端口查询。 + 如果 {{nebula.name}} 服务部署在容器中,需要执行`docker-compose ps`命令查看映射到容器外部的端口,然后通过该端口查询。 ### 查询单个监控指标 @@ -100,7 +100,7 @@ Graph 服务支持一系列基于图空间的监控指标,对不同图空间 !!! caution - 如需开启图空间监控指标,先在 Graph 服务的配置文件中将`enable_space_level_metrics`参数的值修改为`true`,再启动{{nebula.name}}。修改配置的详细方式参见[配置管理](../5.configurations-and-logs/1.configurations/1.configurations.md)。 + 如需开启图空间监控指标,先在 Graph 服务的配置文件中将`enable_space_level_metrics`参数的值修改为`true`,再启动 {{nebula.name}} 。修改配置的详细方式参见[配置管理](../5.configurations-and-logs/1.configurations/1.configurations.md)。 ## 监控指标说明 diff --git a/docs-2.0-zh/6.monitor-and-metrics/2.rocksdb-statistics.md b/docs-2.0-zh/6.monitor-and-metrics/2.rocksdb-statistics.md index e6da20cb1ac..457f04e3f59 100644 --- a/docs-2.0-zh/6.monitor-and-metrics/2.rocksdb-statistics.md +++ b/docs-2.0-zh/6.monitor-and-metrics/2.rocksdb-statistics.md @@ -1,6 +1,6 @@ # RocksDB 统计数据 -{{nebula.name}}使用 RocksDB 作为底层存储,本文介绍如何收集和展示{{nebula.name}}的 RocksDB 统计信息。 + {{nebula.name}} 使用 RocksDB 作为底层存储,本文介绍如何收集和展示 {{nebula.name}} 的 RocksDB 统计信息。 ## 启用 RocksDB diff --git a/docs-2.0-zh/7.data-security/1.authentication/1.authentication.md b/docs-2.0-zh/7.data-security/1.authentication/1.authentication.md index 6a8bf080f32..1e262ff1e54 100644 --- a/docs-2.0-zh/7.data-security/1.authentication/1.authentication.md +++ b/docs-2.0-zh/7.data-security/1.authentication/1.authentication.md @@ -2,13 +2,13 @@ 身份验证用于将会话映射到特定用户,从而实现访问控制。 -当客户端连接到{{nebula.name}}时,{{nebula.name}}会创建一个会话,会话中存储连接的各种信息,如果开启了身份验证,就会将会话映射到对应的用户。 +当客户端连接到 {{nebula.name}} 时,{{nebula.name}} 会创建一个会话,会话中存储连接的各种信息,如果开启了身份验证,就会将会话映射到对应的用户。 ## 本地身份验证 -本地身份验证是指在服务器本地存储用户名、加密密码,当用户尝试访问{{nebula.name}}时,将进行身份验证。 +本地身份验证是指在服务器本地存储用户名、加密密码,当用户尝试访问 {{nebula.name}} 时,将进行身份验证。 ### 启用本地身份验证 @@ -18,7 +18,7 @@ !!! note - - 默认情况下,身份验证功能是关闭的,用户可以使用`root`用户名和任意密码连接到{{nebula.name}}。 + - 默认情况下,身份验证功能是关闭的,用户可以使用`root`用户名和任意密码连接到 {{nebula.name}} 。 - 开启身份验证后,默认的 God 角色账号为`root`,密码为`nebula`。角色详情请参见[内置角色权限](3.role-list.md)。 @@ -26,7 +26,7 @@ - `--password_lock_time_in_secs`:可选项,需要手动添加该参数。多次输入错误密码后,账户被锁定的时间。单位:秒。 -2. 重启{{nebula.name}}服务。 +2. 重启 {{nebula.name}} 服务。 diff --git a/docs-2.0-zh/7.data-security/1.authentication/2.management-user.md b/docs-2.0-zh/7.data-security/1.authentication/2.management-user.md index f9561d3ae4b..76d296043ac 100644 --- a/docs-2.0-zh/7.data-security/1.authentication/2.management-user.md +++ b/docs-2.0-zh/7.data-security/1.authentication/2.management-user.md @@ -1,17 +1,17 @@ # 用户管理 -用户管理是{{nebula.name}}访问控制中不可或缺的组成部分,本文将介绍用户管理的相关语法。 +用户管理是 {{nebula.name}} 访问控制中不可或缺的组成部分,本文将介绍用户管理的相关语法。 -开启[身份验证](1.authentication.md)后,用户需要使用已创建的用户才能连接{{nebula.name}},而且连接后可以进行的操作也取决于该用户拥有的[角色权限](3.role-list.md)。 +开启[身份验证](1.authentication.md)后,用户需要使用已创建的用户才能连接 {{nebula.name}},而且连接后可以进行的操作也取决于该用户拥有的[角色权限](3.role-list.md)。 !!! note - * 默认情况下,身份验证功能是关闭的,用户可以使用 root 用户名和任意密码连接到{{nebula.name}}。 + * 默认情况下,身份验证功能是关闭的,用户可以使用 root 用户名和任意密码连接到 {{nebula.name}} 。 * 修改权限后,对应的用户需要重新登录才能生效。 ## 创建用户(`CREATE USER`) -执行`CREATE USER`语句可以创建新的{{nebula.name}}用户。当前仅** God **角色用户(即`root`用户)能够执行`CREATE USER`语句。 +执行`CREATE USER`语句可以创建新的 {{nebula.name}} 用户。当前仅** God **角色用户(即`root`用户)能够执行`CREATE USER`语句。 - 语法 diff --git a/docs-2.0-zh/7.data-security/1.authentication/3.role-list.md b/docs-2.0-zh/7.data-security/1.authentication/3.role-list.md index c75c5e441c6..546b05b1d55 100644 --- a/docs-2.0-zh/7.data-security/1.authentication/3.role-list.md +++ b/docs-2.0-zh/7.data-security/1.authentication/3.role-list.md @@ -4,7 +4,7 @@ ## 内置角色 -{{nebula.name}}内置了多种角色,说明如下: + {{nebula.name}} 内置了多种角色,说明如下: - God diff --git a/docs-2.0-zh/7.data-security/4.ssl.md b/docs-2.0-zh/7.data-security/4.ssl.md index 5305cfda34a..725a60ae82f 100644 --- a/docs-2.0-zh/7.data-security/4.ssl.md +++ b/docs-2.0-zh/7.data-security/4.ssl.md @@ -3,7 +3,7 @@ -{{nebula.name}}支持在客户端、Graph 服务、Meta 服务和 Storage 服务之间进行 SSL 加密传输,本文介绍如何设置 SSL 加密。 + {{nebula.name}} 支持在客户端、Graph 服务、Meta 服务和 Storage 服务之间进行 SSL 加密传输,本文介绍如何设置 SSL 加密。 ## 注意事项 @@ -23,7 +23,7 @@ ## 证书模式 -为了使用 SSL 加密,必须有 SSL 证书。{{nebula.name}}支持两种证书模式: +为了使用 SSL 加密,必须有 SSL 证书。 {{nebula.name}} 支持两种证书模式: - 自签名证书模式 @@ -35,7 +35,7 @@ ## 加密策略 -{{nebula.name}}支持三种加密策略。加密涉及的具体进程请参见[详细说明](https://github.com/vesoft-inc/nebula/blob/a67d166b284cae1b534bf8d19c936ee38bf12e29/docs/rfcs/0001-ssl-transportation.md#usage-explanation)。 + {{nebula.name}} 支持三种加密策略。 - 对客户端、Graph 服务、Meta 服务和 Storage 服务之间的传输数据加密。 diff --git a/docs-2.0-zh/8.service-tuning/2.graph-modeling.md b/docs-2.0-zh/8.service-tuning/2.graph-modeling.md index a35af1cd679..74c9f927ea5 100644 --- a/docs-2.0-zh/8.service-tuning/2.graph-modeling.md +++ b/docs-2.0-zh/8.service-tuning/2.graph-modeling.md @@ -1,6 +1,6 @@ # 图建模设计 -本文介绍在{{nebula.name}}项目中成功应用的一些图建模和系统设计的通用建议。 +本文介绍在 {{nebula.name}} 项目中成功应用的一些图建模和系统设计的通用建议。 !!! note @@ -8,7 +8,7 @@ ## 以性能为第一目标进行建模 -目前{{nebula.name}}没有完美的建模方法,如何建模取决于想从数据中挖掘的内容。分析数据并根据业务模型创建方便直观的数据模型,测试模型并优化,逐渐适应业务。为了更好的性能,用户可以多次更改或重新设计模型。 +目前 {{nebula.name}} 没有完美的建模方法,如何建模取决于想从数据中挖掘的内容。分析数据并根据业务模型创建方便直观的数据模型,测试模型并优化,逐渐适应业务。为了更好的性能,用户可以多次更改或重新设计模型。 ### 设计和评估最重要的查询语句 @@ -16,11 +16,11 @@ ### 避免全量扫描 -通过属性索引或者 VID 来先定位到某个(些)点或者边,然后开始图遍历;对于有些查询,它们只给定了一个子图或者路径的(正则)模式,但无法通过属性索引或者 VID 定位到遍历起始的点边,而期望找到库中全部满足该模式的子图,这样的查询是通过全量扫描实现的,这样的性能会很差。{{nebula.name}}没有实现对于子图或者路径的图结构的索引。 +通过属性索引或者 VID 来先定位到某个(些)点或者边,然后开始图遍历;对于有些查询,它们只给定了一个子图或者路径的(正则)模式,但无法通过属性索引或者 VID 定位到遍历起始的点边,而期望找到库中全部满足该模式的子图,这样的查询是通过全量扫描实现的,这样的性能会很差。 {{nebula.name}} 没有实现对于子图或者路径的图结构的索引。 ### Tag 与 Edge type 之间没有绑定关系 -任何 Tag 可以与任何 Edge type 相关联,完全交由应用程序控制。不需要在{{nebula.name}}中预先定义,也没有命令获取哪些 Tag 与哪些 Edge type 相关联。 +任何 Tag 可以与任何 Edge type 相关联,完全交由应用程序控制。不需要在 {{nebula.name}} 中预先定义,也没有命令获取哪些 Tag 与哪些 Edge type 相关联。 ### Tag/Edge type 预先定义了一组属性 @@ -32,7 +32,7 @@ 一些图数据库产品是 schema-free 的设计,所以在数据模型上,不论是图拓扑结构还是属性,都可以非常自由。属性可以建模转变为图拓扑,反之亦然。这类系统通常对于图拓扑的访问有特别的优化。 -而{{nebula.name}} {{ nebula.release }} 是强 Schema 的(行存型)系统,这意味着业务数据模型中的部分是“不应该经常改变的”,例如属性 Schema 应该避免改变。类似于 MySQL 中 ALTER TABLE 是应该尽量避免的操作。 +而 {{nebula.name}} {{ nebula.release }} 是强 Schema 的(行存型)系统,这意味着业务数据模型中的部分是“不应该经常改变的”,例如属性 Schema 应该避免改变。类似于 MySQL 中 ALTER TABLE 是应该尽量避免的操作。 而点及邻边可以非常低成本的增删,因此可以将业务模型中“经常改变的部分”建模成点或边(关系),而不是属性 Schema。 @@ -40,7 +40,7 @@ ### 自环 -{{nebula.name}}是强 Schema 类型系统,使用`ALTER TAG`的开销很大,而且也不支持List类型属性,当用户需要为点添加一些临时属性或者List类型的属性时,可以先创建包含所需属性的边类型,然后为点插入一条或多条指向自身的边。查询时只需要查询指向自己的边属性。如下图所示。 + {{nebula.name}} 是强 Schema 类型系统,使用`ALTER TAG`的开销很大,而且也不支持List类型属性,当用户需要为点添加一些临时属性或者List类型的属性时,可以先创建包含所需属性的边类型,然后为点插入一条或多条指向自身的边。查询时只需要查询指向自己的边属性。如下图所示。 ![loop property](https://docs-cdn.nebula-graph.com.cn/figures/loop-property.png) @@ -76,20 +76,20 @@ nebula> MATCH (v1:player)-[e:temp]->() return collect(e.tmp); 对于自环的操作没有封装任何的语法糖,操作方式与普通的边无异。 -* [{{nebula.name}}自环小科普](https://www.bilibili.com/video/BV1E5411S7t2)(2 分 54 秒) - +* [{{nebula.name}} 自环小科普](https://www.bilibili.com/video/BV1E5411S7t2)(2 分 54 秒) + ### 悬挂边 悬挂边 (Dangling edge) 是指一条起点或者终点不存在于数据库中的边。 -在{{nebula.name}} {{ nebula.release }}中,有两种情况可能会出现悬挂边。 +在 {{nebula.name}} {{ nebula.release }}中,有两种情况可能会出现悬挂边。 第一种情况:在起点和终点插入之前,用 [INSERT EDGE](../3.ngql-guide/13.edge-statements/1.insert-edge.md) 语句插入一条边。 第二种情况:使用 [DELETE VERTEX](../3.ngql-guide/12.vertex-statements/4.delete-vertex.md) 语句删除点的时候,没有使用`WITH EDGE`选项。此时系统默认不删除该点关联的出边和入边,这些边将变成悬挂边。 -{{nebula.name}} {{ nebula.release }} 的数据模型中,由于设计允许图中存在“悬挂边”;没有 openCypher 中的 MERGE 语句。对于悬挂边的保证完全依赖应用层面。用户可以使用 [GO](../3.ngql-guide/7.general-query-statements/3.go.md) 和 [LOOKUP](../3.ngql-guide/7.general-query-statements/5.lookup.md) 语句查询到悬挂边,但无法使用 [MATCH](../3.ngql-guide/7.general-query-statements/2.match.md) 语句查询到悬挂边。 + {{nebula.name}} {{ nebula.release }} 的数据模型中,由于设计允许图中存在“悬挂边”;没有 openCypher 中的 MERGE 语句。对于悬挂边的保证完全依赖应用层面。用户可以使用 [GO](../3.ngql-guide/7.general-query-statements/3.go.md) 和 [LOOKUP](../3.ngql-guide/7.general-query-statements/5.lookup.md) 语句查询到悬挂边,但无法使用 [MATCH](../3.ngql-guide/7.general-query-statements/2.match.md) 语句查询到悬挂边。 示例: ```bash @@ -122,14 +122,14 @@ nebula> MATCH ()-[e:e1]->() RETURN e; Empty set (time spent 3153/3573 us) ``` -* [{{nebula.name}}的悬挂边小科普](https://www.bilibili.com/video/BV1GR4y1F7ko)(2 分 28 秒) - +* [{{nebula.name}} 的悬挂边小科普](https://www.bilibili.com/video/BV1GR4y1F7ko)(2 分 28 秒) + ### 广度优先大于深度优先 -- {{nebula.name}}基于图拓扑结构进行深度图遍历的性能较低,广度优先遍历以及获取属性的性能较好。例如,模型 a 包括姓名、年龄、眼睛颜色三种属性,建议创建一个 Tag`person`,然后为它添加姓名、年龄、眼睛颜色的属性。如果创建一个包含眼睛颜色的 Tag 和一个 Edge type`has`,然后创建一个边用来表示人拥有的眼睛颜色,这种建模方法会降低遍历性能。 +- {{nebula.name}} 基于图拓扑结构进行深度图遍历的性能较低,广度优先遍历以及获取属性的性能较好。例如,模型 a 包括姓名、年龄、眼睛颜色三种属性,建议创建一个 Tag`person`,然后为它添加姓名、年龄、眼睛颜色的属性。如果创建一个包含眼睛颜色的 Tag 和一个 Edge type`has`,然后创建一个边用来表示人拥有的眼睛颜色,这种建模方法会降低遍历性能。 -- “通过边属性获取边”的性能与“通过点属性获取点”的性能是接近的。在一些数据库中,会建议将边上的属性重新建模为中间节点的属性:例如 `(src)-[edge {P1, P2}]->(dst)`,`edge` 上有属性 `P1, P2`,会建议建模为 `(src)-[edge1]->(i_node {P1, P2})-[edge2]->(dst)`。在{{nebula.name}} {{ nebula.release }} 中可以直接使用 `(src)-[edge {P1, P2}]->(dst)`,减少遍历深度有助于性能。 +- “通过边属性获取边”的性能与“通过点属性获取点”的性能是接近的。在一些数据库中,会建议将边上的属性重新建模为中间节点的属性:例如 `(src)-[edge {P1, P2}]->(dst)`,`edge` 上有属性 `P1, P2`,会建议建模为 `(src)-[edge1]->(i_node {P1, P2})-[edge2]->(dst)`。在 {{nebula.name}} {{ nebula.release }} 中可以直接使用 `(src)-[edge {P1, P2}]->(dst)`,减少遍历深度有助于性能。 ### 边的方向 @@ -157,13 +157,13 @@ Empty set (time spent 3153/3573 us) ### 长文本 -为边创建属性时请勿使用长文本:这些属性会被[存储 2 份](../1.introduction/3.nebula-graph-architecture/4.storage-service.md),导致写入放大问题(write amplification)。此时建议将长文本放在 HBase/ES 中,将其地址存放在{{nebula.name}}中。 +为边创建属性时请勿使用长文本:这些属性会被[存储 2 份](../1.introduction/3.nebula-graph-architecture/4.storage-service.md),导致写入放大问题(write amplification)。此时建议将长文本放在 HBase/ES 中,将其地址存放在 {{nebula.name}} 中。 ## 关于支持动态图(时序图) 在某些场景下,图需要同时带有时序信息,以描述整个图的结构随着时间变化的情况 [^twitter]。 -{{nebula.name}} {{ nebula.release }} 的边可以使用 Rank 字段存放时间信息 (int64),但是点上没有字段可以存放时间信息(存放在属性会被新写入覆盖)。一个折中的办法是在点上设计自己指向自己的自环,并将时间信息放置在自环的 Rank 上。 + {{nebula.name}} {{ nebula.release }} 的边可以使用 Rank 字段存放时间信息 (int64),但是点上没有字段可以存放时间信息(存放在属性会被新写入覆盖)。一个折中的办法是在点上设计自己指向自己的自环,并将时间信息放置在自环的 Rank 上。 ![image](https://docs-cdn.nebula-graph.com.cn/figures/sequence.png) diff --git a/docs-2.0-zh/8.service-tuning/3.system-design.md b/docs-2.0-zh/8.service-tuning/3.system-design.md index fdbf104d9fd..ca5f8301315 100644 --- a/docs-2.0-zh/8.service-tuning/3.system-design.md +++ b/docs-2.0-zh/8.service-tuning/3.system-design.md @@ -8,7 +8,7 @@ ## 数据传输与优化 -- 读写平衡。{{nebula.name}}适合读写平衡性的在线场景,也即 OLTP 型的的“并发的发生写入与读取”;而非数仓 OLAP 型的“一次写入多次读取”。 +- 读写平衡。 {{nebula.name}} 适合读写平衡性的在线场景,也即 OLTP 型的的“并发的发生写入与读取”;而非数仓 OLAP 型的“一次写入多次读取”。 - 选择不同的写入方式。大批量的数据写入可以使用 sst 加载的方式;小批量的写入使用`INSERT`语句。 - 选择合适的时间运行 COMPACTION 和 BALANCE,来分别优化数据格式和存储分布。 - {{nebula.name}} {{ nebula.release }} 不支持关系型数据库意义上的事务和隔离性,更接近 NoSQL。 diff --git a/docs-2.0-zh/8.service-tuning/4.plan.md b/docs-2.0-zh/8.service-tuning/4.plan.md index 84c951c52bc..c62c2d10dd7 100644 --- a/docs-2.0-zh/8.service-tuning/4.plan.md +++ b/docs-2.0-zh/8.service-tuning/4.plan.md @@ -1,5 +1,5 @@ # 执行计划 -{{nebula.name}} {{ nebula.release }} 实现了基于规则的执行计划。用户无法改变执行计划,无法进行查询的预编译(及相应的计划缓存),无法通过指定索引来加速查询。 + {{nebula.name}} {{ nebula.release }} 实现了基于规则的执行计划。用户无法改变执行计划,无法进行查询的预编译(及相应的计划缓存),无法通过指定索引来加速查询。 要查看执行计划及执行概要,请参考 [EXPLAIN 和 PROFILE](../3.ngql-guide/17.query-tuning-statements/1.explain-and-profile.md)。 diff --git a/docs-2.0-zh/8.service-tuning/compaction.md b/docs-2.0-zh/8.service-tuning/compaction.md index c3064b36c2e..856be1a55e6 100644 --- a/docs-2.0-zh/8.service-tuning/compaction.md +++ b/docs-2.0-zh/8.service-tuning/compaction.md @@ -2,15 +2,15 @@ 本文介绍 Compaction 的相关信息。 -{{nebula.name}}中,`Compaction`是最重要的后台操作,对性能有极其重要的影响。 + {{nebula.name}} 中,`Compaction`是最重要的后台操作,对性能有极其重要的影响。 -`Compaction`操作会读取硬盘上的数据,然后重组数据结构和索引,然后再写回硬盘,可以成倍提升读取性能。将大量数据写入{{nebula.name}}后,为了提高读取性能,需要手动触发`Compaction`操作(全量`Compaction`)。 +`Compaction`操作会读取硬盘上的数据,然后重组数据结构和索引,然后再写回硬盘,可以成倍提升读取性能。将大量数据写入 {{nebula.name}} 后,为了提高读取性能,需要手动触发`Compaction`操作(全量`Compaction`)。 !!! note `Compaction`操作会长时间占用硬盘的 IO,建议在业务低峰期(例如凌晨)执行该操作。 -{{nebula.name}}有两种类型的`Compaction`操作:自动`Compaction`和全量`Compaction`。 + {{nebula.name}} 有两种类型的`Compaction`操作:自动`Compaction`和全量`Compaction`。 ## 自动`Compaction` @@ -74,7 +74,7 @@ nebula> SHOW JOB ; ## 操作建议 -为保证{{nebula.name}}的性能,请参考如下操作建议: +为保证 {{nebula.name}} 的性能,请参考如下操作建议: diff --git a/docs-2.0-zh/backup-and-restore/nebula-br/1.what-is-br.md b/docs-2.0-zh/backup-and-restore/nebula-br/1.what-is-br.md index b43b2468d74..0565ca5a707 100644 --- a/docs-2.0-zh/backup-and-restore/nebula-br/1.what-is-br.md +++ b/docs-2.0-zh/backup-and-restore/nebula-br/1.what-is-br.md @@ -1,6 +1,6 @@ # 什么是 Backup&Restore -Backup&Restore(简称 BR)是一款命令行界面(CLI)工具,可以帮助备份{{nebula.name}}的图空间数据,或者通过备份文件恢复数据。 +Backup&Restore(简称 BR)是一款命令行界面(CLI)工具,可以帮助备份 {{nebula.name}} 的图空间数据,或者通过备份文件恢复数据。 ## 功能 @@ -8,19 +8,19 @@ Backup&Restore(简称 BR)是一款命令行界面(CLI)工具,可以帮 - 支持基于以下备份文件恢复数据: - 本地磁盘(SSD 或 HDD),建议仅在测试环境使用。 - 兼容亚马逊对象存储(Amazon S3)云存储服务接口,例如:阿里云对象存储(Alibaba Cloud OSS)、MinIO、Ceph RGW 等。 -- 支持备份并恢复整个{{nebula.name}}集群。 +- 支持备份并恢复整个 {{nebula.name}} 集群。 - (实验性功能)支持备份指定图空间数据。 ## 限制 -- {{nebula.name}}版本需要为 v3.x。 +- {{nebula.name}} 版本需要为 v3.x。 - 数据备份仅支持全量备份,不支持增量备份。 - Listener 暂时不支持备份,且全文索引也不支持备份。 - 如果备份数据到本地磁盘,备份的文件将会放置在每个服务器的本地路径中。也可以在本地挂载 NFS 文件系统,以便将备份数据还原到不同的主机上。 - 备份图空间只能恢复到原集群,不能跨集群恢复,并且集群的 Storage 主机数量及 IP 需一致。还原指定图空间时将清除集群中其余所有图空间。 - 数据备份过程中,所有图空间中的 DDL 和 DML 语句将会阻塞,我们建议在业务低峰期进行操作,例如凌晨 2 点至 5 点。 - 数据恢复期间有一段时间服务会被停止。 -- 不支持在容器部署的{{nebula.name}}集群中使用 BR。 +- 不支持在容器部署的 {{nebula.name}} 集群中使用 BR。 + - 从 [GitHub 发布页](https://github.com/vesoft-inc/nebula-console/releases "the nebula-console Releases page")下载二进制文件。 @@ -18,9 +18,9 @@ NebulaGraph Console 的获取方式如下: ## 功能说明 -### 连接{{nebula.name}} +### 连接 {{nebula.name}} -运行二进制文件 `nebula-console` 连接{{nebula.name}}的命令语法如下: +运行二进制文件 `nebula-console` 连接 {{nebula.name}} 的命令语法如下: ```bash -addr -port -u -p @@ -31,7 +31,7 @@ NebulaGraph Console 的获取方式如下: 示例如下: -- 直接连接{{nebula.name}} +- 直接连接 {{nebula.name}} ```bash ./nebula-console -addr 192.168.8.100 -port 9669 -u root -p nebula @@ -48,14 +48,14 @@ NebulaGraph Console 的获取方式如下: | 参数 | 说明 | | - | - | | `-h/-help` | 显示帮助菜单。 | -| `-addr/-address` | 设置要连接的 Graph 服务的 IP 地址。默认地址为 127.0.0.1。 | +| `-addr/-address` | 设置要连接的 Graph 服务的 IP 或主机名。默认地址为 127.0.0.1。 | | `-P/-port` | 设置要连接的 Graph 服务的端口。默认端口为 9669。| -| `-u/-user` | 设置{{nebula.name}}账号的用户名。未启用身份认证时,可以使用任意已存在的用户名(默认为`root`)。 | +| `-u/-user` | 设置 {{nebula.name}} 账号的用户名。未启用身份认证时,可以使用任意已存在的用户名(默认为`root`)。 | | `-p/-password` | 设置用户名对应的密码。未启用身份认证时,密码可以填写任意字符。 | | `-t/-timeout` | 设置整数类型的连接超时时间。单位为毫秒,默认值为 120。 | | `-e/-eval` | 设置字符串类型的 nGQL 语句。连接成功后会执行一次该语句并返回结果,然后自动断开连接。 | | `-f/-file` | 设置存储 nGQL 语句的文件的路径。连接成功后会执行该文件内的 nGQL 语句并返回结果,执行完毕后自动断开连接。 | -| `-enable_ssl` | 连接{{nebula.name}}时使用 SSL 加密双向认证。 | +| `-enable_ssl` | 连接 {{nebula.name}} 时使用 SSL 加密双向认证。 | | `-ssl_root_ca_path` | 指定 CA 根证书的存储路径。 | | `-ssl_cert_path` | 指定 SSL 公钥证书的存储路径。 | | `-ssl_private_key_path` | 指定 SSL 密钥的存储路径。 | @@ -243,7 +243,7 @@ nebula> :sleep N; ### 断开连接 -用户可以使用`:EXIT`或者`:QUIT`从{{nebula.name}}断开连接。为方便使用,NebulaGraph Console 支持使用不带冒号(:)的小写命令,例如`quit`。 +用户可以使用`:EXIT`或者`:QUIT`从 {{nebula.name}} 断开连接。为方便使用,NebulaGraph Console 支持使用不带冒号(:)的小写命令,例如`quit`。 示例: diff --git a/docs-2.0-zh/nebula-dashboard/1.what-is-dashboard.md b/docs-2.0-zh/nebula-dashboard/1.what-is-dashboard.md index e1ad061e85d..36dc4e4d8f4 100644 --- a/docs-2.0-zh/nebula-dashboard/1.what-is-dashboard.md +++ b/docs-2.0-zh/nebula-dashboard/1.what-is-dashboard.md @@ -1,6 +1,6 @@ # 什么是 NebulaGraph Dashboard(社区版) -NebulaGraph Dashboard(简称 Dashboard)是一款用于监控{{nebula.name}}集群中机器和服务状态的可视化工具。 +NebulaGraph Dashboard(简称 Dashboard)是一款用于监控 {{nebula.name}} 集群中机器和服务状态的可视化工具。 !!! enterpriseonly @@ -36,9 +36,9 @@ NebulaGraph Dashboard(简称 Dashboard)是一款用于监控{{nebula.name}} ## 版本兼容性 -{{nebula.name}}的版本和 Dashboard 社区版的版本对应关系如下。 + {{nebula.name}} 的版本和 Dashboard 社区版的版本对应关系如下。 -|{{nebula.name}}版本|Dashboard 版本| +| {{nebula.name}} 版本|Dashboard 版本| |:---|:---| |3.6.0 |3.4.0| |3.5.x |3.4.0| diff --git a/docs-2.0-zh/nebula-dashboard/2.deploy-dashboard.md b/docs-2.0-zh/nebula-dashboard/2.deploy-dashboard.md index 8997ccf20d4..5ffa4627152 100644 --- a/docs-2.0-zh/nebula-dashboard/2.deploy-dashboard.md +++ b/docs-2.0-zh/nebula-dashboard/2.deploy-dashboard.md @@ -8,7 +8,7 @@ 在部署 Dashboard 之前,用户需要确认以下信息: -- {{nebula.name}}服务已经部署并启动。详细信息参考 [{{nebula.name}}安装部署](../4.deployment-and-installation/1.resource-preparations.md "点击前往 {{nebula.name}} 安装部署")。 +- {{nebula.name}} 服务已经部署并启动。详细信息参考 [{{nebula.name}} 安装部署](../4.deployment-and-installation/1.resource-preparations.md "点击前往 {{nebula.name}} 安装部署")。 - 确保以下端口未被使用: @@ -36,7 +36,7 @@ |服务名称|默认端口号|说明| |:---|:---|:---| - |nebula-http-gateway | 8090| 为集群服务提供 HTTP 接口,执行 nGQL 语句与{{nebula.name}}进行交互。| + |nebula-http-gateway | 8090| 为集群服务提供 HTTP 接口,执行 nGQL 语句与 {{nebula.name}} 进行交互。| |nebula-stats-exporter | 9200| 收集集群的性能指标,包括服务 IP 地址、版本和监控指标(例如查询数量、查询延迟、心跳延迟 等)。| |node-exporter | 9100| 收集集群中机器的资源信息,包括 CPU、内存、负载、磁盘和流量。| |prometheus | 9090| 存储监控数据的时间序列数据库。| @@ -55,7 +55,7 @@ nebulaPort: 9200 https: false # 是否为 HTTPS 端口。 node-exporter: - - ip: nebulaHostIP_1 # 部署{{nebula.name}}的机器 IP。 + - ip: nebulaHostIP_1 # 部署 {{nebula.name}} 的机器 IP。 port: 9100 https: false # 是否为 HTTPS 端口。 # - ip: nebulaHostIP_2 diff --git a/docs-2.0-zh/nebula-dashboard/3.connect-dashboard.md b/docs-2.0-zh/nebula-dashboard/3.connect-dashboard.md index 425a61084b5..e8d6ae91825 100644 --- a/docs-2.0-zh/nebula-dashboard/3.connect-dashboard.md +++ b/docs-2.0-zh/nebula-dashboard/3.connect-dashboard.md @@ -12,11 +12,11 @@ Dashboard 部署完成后,可以通过浏览器登录使用 Dashboard。 1. 确认 Dashboard 服务所在机器的 IP 地址,在浏览器中输入`:7003`打开登录页面。 -2. 输入{{nebula.name}}数据库的账号和密码。 +2. 输入 {{nebula.name}} 数据库的账号和密码。 - - 如果{{nebula.name}}已经启用身份验证,用户可以使用已创建的账号连接 Dashboard。 + - 如果 {{nebula.name}} 已经启用身份验证,用户可以使用已创建的账号连接 Dashboard。 - - 如果{{nebula.name}}未启用身份验证,用户只能使用默认用户`root`和任意密码连接 Dashboard。 + - 如果 {{nebula.name}} 未启用身份验证,用户只能使用默认用户`root`和任意密码连接 Dashboard。 有关如何启用身份验证请参见[身份验证](../7.data-security/1.authentication/1.authentication.md)。 diff --git a/docs-2.0-zh/nebula-dashboard/4.use-dashboard.md b/docs-2.0-zh/nebula-dashboard/4.use-dashboard.md index 241f8d6086c..4b41bf9ff2c 100644 --- a/docs-2.0-zh/nebula-dashboard/4.use-dashboard.md +++ b/docs-2.0-zh/nebula-dashboard/4.use-dashboard.md @@ -67,7 +67,7 @@ Dashboard 支持的图空间指标,参见[图空间级别监控指标](6.monit ### 信息总览 -用户可以在**信息总览**页面查看{{nebula.name}}内核相关信息,包括 Storage 服务信息、Storage Leader 分布、{{nebula.name}}各个服务的版本信息及所在节点信息、分片的分布情况及详细信息。 +用户可以在**信息总览**页面查看 {{nebula.name}} 内核相关信息,包括 Storage 服务信息、Storage Leader 分布、 {{nebula.name}} 各个服务的版本信息及所在节点信息、分片的分布情况及详细信息。 Dashboard 集群信息截屏 @@ -75,13 +75,13 @@ Dashboard 支持的图空间指标,参见[图空间级别监控指标](6.monit 显示 Leader 数量及 Leader 的分布。 -- 单击右上角的 **Balance Leader** 按钮可以快速在{{nebula.name}}集群中均衡分布 Leader。关于 Leader 的详细信息,参见 [Storage 服务](../1.introduction/3.nebula-graph-architecture/4.storage-service.md)。 +- 单击右上角的 **Balance Leader** 按钮可以快速在 {{nebula.name}} 集群中均衡分布 Leader。关于 Leader 的详细信息,参见 [Storage 服务](../1.introduction/3.nebula-graph-architecture/4.storage-service.md)。 - 单击右上角的**详情**,查看 Leader 分布的详细信息。 #### 版本 -显示{{nebula.name}}所有服务版本及服务地址。单击右上角的**详情**,查看更多信息。 +显示 {{nebula.name}} 所有服务版本及服务地址。单击右上角的**详情**,查看更多信息。 #### 服务信息 diff --git a/docs-2.0-zh/nebula-dashboard/6.monitor-parameter.md b/docs-2.0-zh/nebula-dashboard/6.monitor-parameter.md index 77b02605271..f4b5a23746b 100644 --- a/docs-2.0-zh/nebula-dashboard/6.monitor-parameter.md +++ b/docs-2.0-zh/nebula-dashboard/6.monitor-parameter.md @@ -1,6 +1,6 @@ # 监控指标说明 -本文介绍 Dashboard 中展示的{{nebula.name}}监控指标。 +本文介绍 Dashboard 中展示的 {{nebula.name}} 监控指标。 ## 机器 @@ -17,8 +17,8 @@ |`cpu_utilization`| CPU 已使用百分比| |`cpu_idle`| CPU 空闲百分比| |`cpu_wait`| 等待 IO 操作的 CPU 百分比| -|`cpu_user`| 用户空间(非{{nebula.name}}图空间)占用的 CPU 百分比| -|`cpu_system`| 内核空间(非{{nebula.name}}内核空间)占用的 CPU 百分比| +|`cpu_user`| 用户空间(非 {{nebula.name}} 图空间)占用的 CPU 百分比| +|`cpu_system`| 内核空间(非 {{nebula.name}} 内核空间)占用的 CPU 百分比| ### 内存 diff --git a/docs-2.0-zh/nebula-operator/11.rolling-update-strategy.md b/docs-2.0-zh/nebula-operator/11.rolling-update-strategy.md deleted file mode 100644 index 7db867fa6c1..00000000000 --- a/docs-2.0-zh/nebula-operator/11.rolling-update-strategy.md +++ /dev/null @@ -1,38 +0,0 @@ -# {{nebula.name}}集群的滚动更新策略 - -{{nebula.name}}集群使用分布式架构将数据分成多个逻辑分片,这些分片通常均分在不同的节点上。分布式系统中,同一份数据通常会有多个副本。为了保证多个副本数据的一致性,{{nebula.name}}集群使用 Raft 协议实现了多分片副本同步。Raft 协议中,每个分片都会选举出一个 Leader 副本,Leader 副本负责处理写请求,Follower 副本负责处理读请求。 - -通过 Operator 创建的{{nebula.name}}集群在滚动更新过程中,一个存储节点会暂时停止提供服务以进行更新。关于滚动更新的概述,参见[执行滚动更新](https://kubernetes.io/zh-cn/docs/tutorials/kubernetes-basics/update/update-intro/)。如果 Leader 副本所在的节点停止提供服务,会导致该分片的读写不可用。为了避免这种情况,Operator 会在{{nebula.name}}集群滚动更新过程中,默认将 Leader 副本迁移到其他未受影响节点上。这样,当一个存储节点处于更新状态时,其他节点上的 Leader 副本能够继续处理客户端请求,以保证集群的读写可用性。 - -一个存储节点上的所有 Leader 副本全部迁移到其他节点的这个过程可能会持续较长时间。为了更好地控制滚动更新的时间,Operator 提供了一个名为`enableForceUpdate`参数。当确定没有外部访问流量时,可将该参数设置为`true`,这样,Leader 副本将不会被迁移到其他节点上,从而加快滚动更新的速度。 - -## 滚动更新触发条件 - -Operator 会在以下情况下触发{{nebula.name}}集群的滚动更新: - -- {{nebula.name}} 集群的版本发生变化。 -- {{nebula.name}} 集群的配置发生变化。 - -## 配置滚动更新策略 - -在创建集群实例的 YAML 文件中,添加`spec.storaged.enableForceUpdate`参数,设置为`true`或`false`,以控制滚动更新的速度。 - -当`enableForceUpdate`为`true`时,表示不迁移分片 Leader 副本,从而加快滚动更新的速度;反之,表示迁移分片 Leader 副本,以保证集群的读写可用性。默认值为`false`。 - -!!! warning - - 设置`enableForceUpdate`为`true`时,确保没有流量进入集群进行读写操作。因为该设置会强制重建集群 Pod,此过程会发生数据丢失或客户端请求失败的情况。 - - -配置示例: - -```yaml -... -spec: -... - storaged: - enableForceUpdate: true // 设置为 true 时,加快滚动更新的速度。 - ... -``` - - diff --git a/docs-2.0-zh/nebula-operator/2.deploy-nebula-operator.md b/docs-2.0-zh/nebula-operator/2.deploy-nebula-operator.md deleted file mode 100644 index 78d30380be3..00000000000 --- a/docs-2.0-zh/nebula-operator/2.deploy-nebula-operator.md +++ /dev/null @@ -1,290 +0,0 @@ -# 部署 NebulaGraph Operator - -用户可使用 [Helm](https://helm.sh/) 工具部署 NebulaGraph Operator。 - -## 背景信息 - -[NebulaGraph Operator](1.introduction-to-nebula-operator.md) 为用户管理{{nebula.name}}集群,使用户无需在生产环境中手动安装、扩展、升级和卸载 NebulaGraph,减轻用户管理不同应用版本的负担。 - -## 前提条件 - -安装 NebulaGraph Operator 前,用户需要安装以下软件并确保安装版本的正确性。 - -| 软件 | 版本要求 | -| ------------------------------------------------------------ | --------- | -| [Kubernetes](https://kubernetes.io) | \>= 1.16 | -| [Helm](https://helm.sh) | \>= 3.2.0 | -| [CoreDNS](https://github.com/coredns/coredns) | \>= 1.6.0 | - -!!! note - - - 如果使用基于角色的访问控制的策略,用户需开启 [RBAC](https://kubernetes.io/docs/reference/access-authn-authz/rbac/)(可选)。 - - [CoreDNS](https://coredns.io/) 是一个灵活的、可扩展的 DNS 服务器,被[安装](https://github.com/coredns/helm)在集群内作为集群内 Pods 的 DNS 服务器。{{nebula.name}}集群中的每个组件通过 DNS 解析类似`x.default.svc.cluster.local`这样的域名相互通信。 - -## 操作步骤 - -### 安装 NebulaGraph Operator - -1. 添加 NebulaGraph Operator Helm 仓库。 - - ```bash - helm repo add nebula-operator https://vesoft-inc.github.io/nebula-operator/charts - ``` - -2. 拉取最新的 Operator Helm 仓库。 - - ```bash - helm repo update - ``` - - 参考 [Helm 仓库](https://helm.sh/docs/helm/helm_repo/)获取更多`helm repo`相关信息。 - -3. 创建命名空间用于安装 NebulaGraph Operator。 - - ```bash - kubectl create namespace - ``` - - 例如,创建`nebula-operator-system`命名空间。 - - ```bash - kubectl create namespace nebula-operator-system - ``` - nebula-operator chart 中的所有资源都会安装在该命名空间下。 - -4. 安装 NebulaGraph Operator。 - - ```bash - helm install nebula-operator nebula-operator/nebula-operator --namespace= --version=${chart_version} - ``` - - 例如,安装{{operator.release}}版的 Operator 命令如下。 - - ```bash - helm install nebula-operator nebula-operator/nebula-operator --namespace=nebula-operator-system --version={{operator.release}} - ``` - - - `{{operator.release}}`为 nebula-operator chart 的版本,不指定`--version`时默认使用最新版的 chart。执行`helm search repo -l nebula-operator`查看 chart 版本。 - - - 用户可在执行安装 NebulaGraph Operator chart 命令时自定义 Operator 的配置。更多信息,查看下文**自定义配置 Chart**。 - -### 自定义配置 Chart - -执行`helm install [NAME] [CHART] [flags]`命令安装 Chart 时,可指定 Chart 配置。更多信息,参考[安装前自定义 Chart](https://helm.sh/docs/intro/using_helm/#customizing-the-chart-before-installing)。 - -在 [nebula-operator chart](https://github.com/vesoft-inc/nebula-operator/blob/v{{operator.release}}/charts/nebula-operator/values.yaml) 配置文件中查看相关的配置选项。 - -或者通过命令`helm show values nebula-operator/nebula-operator`查看可配置的选项,如下所示。 - -```yaml -[abby@master ~]$ helm show values nebula-operator/nebula-operator -image: - nebulaOperator: - image: vesoft/nebula-operator:{{operator.tag}} - imagePullPolicy: Always - kubeRBACProxy: - image: bitnami/kube-rbac-proxy:0.14.2 - imagePullPolicy: Always - kubeScheduler: - image: registry.k8s.io/kube-scheduler:v1.24.11 - imagePullPolicy: Always - -imagePullSecrets: [] -kubernetesClusterDomain: "" - -controllerManager: - create: true - replicas: 2 - env: [] - resources: - limits: - cpu: 200m - memory: 200Mi - requests: - cpu: 100m - memory: 100Mi - -admissionWebhook: - create: false - -scheduler: - create: true - schedulerName: nebula-scheduler - replicas: 2 - env: [] - resources: - limits: - cpu: 200m - memory: 200Mi - requests: - cpu: 100m - memory: 100Mi -... -``` - -部分参数描述如下: - -| 参数 | 默认值 | 描述 | -| :------------------------------------- | :------------------------------ | :----------------------------------------- | -| `image.nebulaOperator.image` | `vesoft/nebula-operator:{{operator.tag}}` | NebulaGraph Operator 的镜像,版本为{{operator.release}}。 | -| `image.nebulaOperator.imagePullPolicy` | `IfNotPresent` | 镜像拉取策略。 | -| `imagePullSecrets` | - | 镜像拉取密钥。 | -| `kubernetesClusterDomain` | `cluster.local` | 集群域名。 | -| `controllerManager.create` | `true` | 是否启用 controller-manager。 | -| `controllerManager.replicas` | `2` | controller-manager 副本数。 | -| `admissionWebhook.create` | `false` | 是否启用 Admission Webhook。默认关闭,如需开启,需设置为`true`并且需要安装 [cert-manager](https://cert-manager.io/docs/installation/helm/)。 | -| `shceduler.create` | `true` | 是否启用 Scheduler。 | -| `shceduler.schedulerName` | `nebula-scheduler` | 调度器名称。 | -| `shceduler.replicas` | `2` | nebula-scheduler 副本数。 | - - -以下示例为在安装 NebulaGraph Operator 时,指定 NebulaGraph Operator 的 AdmissionWebhook 机制为开启状态(默认关闭 AdmissionWebhook): - -```bash -helm install nebula-operator nebula-operator/nebula-operator --namespace= --set admissionWebhook.create=true -``` - -### 更新 NebulaGraph Operator - -1. 拉取最新的 Helm 仓库。 - - ```bash - helm repo update - ``` - -2. 通过`--set`传递配置参数,更新 NebulaGraph Operator。 - - - `--set`:通过命令行的方式新增或覆盖指定项。有关可以更新的配置项,查看上文**自定义配置 Chart**。 - - 例如,更新 NebulaGraph Operator 的 AdmissionWebhook 机制为开启状态。 - - ```bash - helm upgrade nebula-operator nebula-operator/nebula-operator --namespace=nebula-operator-system --version={{operator.release}} --set admissionWebhook.create=true - ``` - - 更多信息,参考 [Helm 升级](https://helm.sh/docs/helm/helm_upgrade/)。 - - -### 升级 NebulaGraph Operator - -!!! compatibility "历史版本兼容性" - - - 不支持升级 0.9.0 及以下版本的 NebulaGraph Operator 至 1.x 版本。 - - 1.x 版本的 NebulaGraph Operator 不兼容 3.x 以下版本的 NebulaGraph。 - -1. 拉取最新的 Helm 仓库。 - - ```bash - helm repo update - ``` - -2. 升级 NebulaGraph Operator 至 {{operator.release}} 版本。 - - ```bash - helm upgrade nebula-operator nebula-operator/nebula-operator --namespace= --version={{operator.release}} - ``` - - 示例: - - ```bash - helm upgrade nebula-operator nebula-operator/nebula-operator --namespace=nebula-operator-system --version={{operator.release}} - ``` - - 输出: - - ```bash - Release "nebula-operator" has been upgraded. Happy Helming! - NAME: nebula-operator - LAST DEPLOYED: Tue Nov 16 02:21:08 2021 - NAMESPACE: nebula-operator-system - STATUS: deployed - REVISION: 3 - TEST SUITE: None - NOTES: - NebulaGraph Operator installed! - ``` - -3. 拉取最新的 CRD 配置文件。 - - - !!! note - - 升级 Operator 后,需要同时升级相应的 CRD 配置,否则{{nebula.name}}集群创建会失败。有关 CRD 的配置,参见 [apps.nebula-graph.io_nebulaclusters.yaml](https://github.com/vesoft-inc/nebula-operator/blob/{{operator.tag}}/config/crd/bases/apps.nebula-graph.io_nebulaclusters.yaml)。 - - 1. 下载 NebulaGraph Operator chart 至本地。 - - ```bash - helm pull nebula-operator/nebula-operator --version={{operator.release}} - ``` - - - `--version`: 升级版本号。如不指定,则默认为最新版本。 - - 2. 执行`tar -zxvf`解压安装包。 - - 例如:解压 {{operator.release}} chart 包至`/tmp`路径下。 - - ```bash - tar -zxvf nebula-operator-{{operator.release}}.tgz -C /tmp - ``` - - - `-C /tmp`: 如不指定,则默认解压至当前路径。 - - -4. 在`nebula-operator`目录下升级 CRD 配置文件。 - - ```bash - kubectl apply -f crds/nebulacluster.yaml - ``` - - 输出: - - ```bash - customresourcedefinition.apiextensions.k8s.io/nebulaclusters.apps.nebula-graph.io configured - ``` - - - -### 卸载 NebulaGraph Operator - -1. 卸载 NebulaGraph Operator chart。 - - ```bash - helm uninstall nebula-operator --namespace= - ``` - -2. 删除 CRD。 - - ```bash - kubectl delete crd nebulaclusters.apps.nebula-graph.io - ``` - -## 后续操作 - - - -- 使用 NebulaGraph Operator 自动化部署{{nebula.name}}集群。更多信息,请参考[使用 Kubectl 部署{{nebula.name}}集群](3.deploy-nebula-graph-cluster/3.1create-cluster-with-kubectl.md)或者[使用 Helm 部署{{nebula.name}}集群](3.deploy-nebula-graph-cluster/3.2create-cluster-with-helm.md)。 - - diff --git a/docs-2.0-zh/nebula-operator/3.deploy-nebula-graph-cluster/3.1create-cluster-with-kubectl.md b/docs-2.0-zh/nebula-operator/3.deploy-nebula-graph-cluster/3.1create-cluster-with-kubectl.md deleted file mode 100644 index f9d694216a6..00000000000 --- a/docs-2.0-zh/nebula-operator/3.deploy-nebula-graph-cluster/3.1create-cluster-with-kubectl.md +++ /dev/null @@ -1,108 +0,0 @@ -# 使用 Kubectl 部署{{nebula.name}}集群 - -!!! compatibility "历史版本兼容性" - - 1.x 版本的 NebulaGraph Operator 不兼容 3.x 以下版本的{{nebula.name}}。 - -## 前提条件 - -- [安装 NebulaGraph Operator](../2.deploy-nebula-operator.md) -- [已创建 StorageClass](https://kubernetes.io/docs/concepts/storage/storage-classes/) - - -## 创建集群 - -本文以创建名为`nebula`的集群为例,说明如何部署{{nebula.name}}集群。 - -1. 创建命名空间,例如`nebula`。如果不指定命名空间,默认使用`default`命名空间。 - - ```bash - kubectl create namespace nebula - ``` - - - -2. 创建集群配置文件。 - - - 创建名为`apps_v1alpha1_nebulacluster.yaml`的文件。文件内容参见[示例配置](https://github.com/vesoft-inc/nebula-operator/blob/v{{operator.release}}/config/samples/nebulacluster.yaml)。 - - - - 示例配置的参数描述如下: - - | 参数 | 默认值 | 描述 | - | :---- | :--- | :--- | - | `metadata.name` | - | 创建的{{nebula.name}}集群名称。 | - |`spec.console`|-| 启动 Console 容器用于连接 Graph 服务。配置详情,参见 [nebula-console](https://github.com/vesoft-inc/nebula-operator/blob/v{{operator.release}}/doc/user/nebula_console.md#nebula-console).| - | `spec.graphd.replicas` | `1` | Graphd 服务的副本数。 | - | `spec.graphd.image` | `vesoft/nebula-graphd` | Graphd 服务的容器镜像。 | - | `spec.graphd.version` | `{{nebula.tag}}` | Graphd 服务的版本号。 | - | `spec.graphd.service` | | 访问 Graphd 服务的 Service 配置。 | - | `spec.graphd.logVolumeClaim.storageClassName` | - | Graphd 服务的日志盘存储卷的存储类名称。使用示例配置时需要将其替换为事先创建的存储类名称,参见 [Storage Classes](https://kubernetes.io/docs/concepts/storage/storage-classes/) 查看创建存储类详情。 | - | `spec.metad.replicas` | `1` | Metad 服务的副本数。 | - | `spec.metad.image` | `vesoft/nebula-metad` | Metad 服务的容器镜像。 | - | `spec.metad.version` | `{{nebula.tag}}` | Metad 服务的版本号。 | - | `spec.metad.dataVolumeClaim.storageClassName` | - | Metad 服务的数据盘存储配置。使用示例配置时需要将其替换为事先创建的存储类名称,参见 [Storage Classes](https://kubernetes.io/docs/concepts/storage/storage-classes/) 查看创建存储类详情。 | - | `spec.metad.logVolumeClaim.storageClassName`|-|Metad 服务的日志盘存储配置。使用示例配置时需要将其替换为事先创建的存储类名称,参见 [Storage Classes](https://kubernetes.io/docs/concepts/storage/storage-classes/) 查看创建存储类详情。 | - | `spec.storaged.replicas` | `3` | Storaged 服务的副本数。 | - | `spec.storaged.image` | `vesoft/nebula-storaged` | Storaged 服务的容器镜像。 | - | `spec.storaged.version` | `{{nebula.tag}}` | Storaged 服务的版本号。 | - | `spec.storaged.dataVolumeClaims.resources.requests.storage` | - | Storaged 服务的数据盘存储大小,可指定多块数据盘存储数据。当指定多块数据盘时,路径为:`/usr/local/nebula/data1`、`/usr/local/nebula/data2`等。 | - | `spec.storaged.dataVolumeClaims.resources.storageClassName` | - | Storaged 服务的数据盘存储配置。使用示例配置时需要将其替换为事先创建的存储类名称,参见 [Storage Classes](https://kubernetes.io/docs/concepts/storage/storage-classes/) 查看创建存储类详情。 | - | `spec.storaged.logVolumeClaim.storageClassName`|-|Storaged 服务的日志盘存储配置。使用示例配置时需要将其替换为事先创建的存储类名称,参见 [Storage Classes](https://kubernetes.io/docs/concepts/storage/storage-classes/) 查看创建存储类详情。 | - |`spec..securityContext`|`{}`|定义集群容器的权限和访问控制,以控制访问和执行容器的操作。详情参见 [SecurityContext](https://github.com/vesoft-inc/nebula-operator/blob/{{operator.branch}}/doc/user/security_context.md)。 | - |`spec.agent`|`{}`| Agent 服务的配置。用于备份和恢复及日志清理功能,如果不自定义该配置,将使用默认配置。| - | `spec.reference.name` | - | 依赖的控制器名称。 | - | `spec.schedulerName` | - | 调度器名称。 | - | `spec.imagePullPolicy` | {{nebula.name}}镜像的拉取策略。关于拉取策略详情,请参考 [Image pull policy](https://kubernetes.io/docs/concepts/containers/images/#image-pull-policy)。 | 镜像拉取策略。 | - |`spec.logRotate`| - |日志轮转配置。详情参见[管理集群日志](../8.custom-cluster-configurations/8.4.manage-running-logs.md)。| - |`spec.enablePVReclaim`|`false`|定义是否在删除集群后自动删除 PVC 以释放数据。详情参见[回收 PV](../8.custom-cluster-configurations/8.2.pv-reclaim.md)。| - - - -3. 创建{{nebula.name}}集群。 - - ```bash - kubectl create -f apps_v1alpha1_nebulacluster.yaml - ``` - - 返回: - - ```bash - nebulacluster.apps.nebula-graph.io/nebula created - ``` - - -4. 查看{{nebula.name}}集群状态。 - - ```bash - kubectl get nebulaclusters nebula - ``` - - 返回: - - ```bash - NAME GRAPHD-DESIRED GRAPHD-READY METAD-DESIRED METAD-READY STORAGED-DESIRED STORAGED-READY AGE - nebula 1 1 1 1 3 3 86s - ``` - - -## 扩缩容集群 - - -不支持扩缩容社区版的{{nebula.name}}集群。 - - -## 删除集群 - -使用 Kubectl 删除{{nebula.name}}集群的命令如下: - -```bash -kubectl delete -f apps_v1alpha1_nebulacluster.yaml -``` - -## 后续操作 - -[连接{{nebula.name}}数据库](../4.connect-to-nebula-graph-service.md) - diff --git a/docs-2.0-zh/nebula-operator/3.deploy-nebula-graph-cluster/3.2create-cluster-with-helm.md b/docs-2.0-zh/nebula-operator/3.deploy-nebula-graph-cluster/3.2create-cluster-with-helm.md deleted file mode 100644 index 4fdfdded4f8..00000000000 --- a/docs-2.0-zh/nebula-operator/3.deploy-nebula-graph-cluster/3.2create-cluster-with-helm.md +++ /dev/null @@ -1,99 +0,0 @@ -# 使用 Helm 部署{{nebula.name}}集群 - -!!! compatibility "历史版本兼容性" - - 1.x 版本的 NebulaGraph Operator 不兼容 3.x 以下版本的{{nebula.name}}。 - -## 前提条件 - -- [安装 NebulaGraph Operator](../2.deploy-nebula-operator.md) -- [已创建 StorageClass](https://kubernetes.io/docs/concepts/storage/storage-classes/) - - -## 创建{{nebula.name}}集群 - -1. 添加 NebulaGraph Operator Helm 仓库 - - ```bash - helm repo add nebula-operator https://vesoft-inc.github.io/nebula-operator/charts - ``` - -2. 更新 Helm 仓库,拉取最新仓库资源。 - - ```bash - helm repo update - ``` - -3. 为安装集群所需的配置参数设置环境变量。 - - ```bash - export NEBULA_CLUSTER_NAME=nebula #{{nebula.name}}集群的名字。 - export NEBULA_CLUSTER_NAMESPACE=nebula #{{nebula.name}}集群所处的命名空间的名字。 - export STORAGE_CLASS_NAME=fast-disks #{{nebula.name}}集群的 StorageClass。 - ``` - -4. 为{{nebula.name}}集群创建命名空间(如已创建,略过此步)。 - - ```bash - kubectl create namespace "${NEBULA_CLUSTER_NAMESPACE}" - ``` - - - -6. 创建{{nebula.name}}集群。 - - ```bash - helm install "${NEBULA_CLUSTER_NAME}" nebula-operator/nebula-cluster \ - - --set nameOverride=${NEBULA_CLUSTER_NAME} \ - --set nebula.storageClassName="${STORAGE_CLASS_NAME}" \ - # 指定{{nebula.name}}集群的版本。 - --set nebula.version=v{{nebula.release}} \ - # 指定集群 chart 的版本,不指定则默认安装最新版本 chart。 - # 执行 helm search repo nebula-operator/nebula-cluster 命令可查看所有 chart 版本。 - --version={{operator.release}} \ - --namespace="${NEBULA_CLUSTER_NAMESPACE}" \ - ``` - - - - 执行`helm show values nebula-operator/nebula-cluster`命令,或者单击 [nebula-cluster/values.yaml -](https://github.com/vesoft-inc/nebula-operator/blob/{{operator.branch}}/charts/nebula-cluster/values.yaml) 可查看{{nebula.name}}集群的所有配置参数。 - - 单击 [Chart parameters](https://github.com/vesoft-inc/nebula-operator/blob/{{operator.branch}}/doc/user/nebula_cluster_helm_guide.md#optional-chart-parameters) 查看可配置的集群参数的描述及默认值。 - - 通过`--set`参数设置{{nebula.name}}集群的配置参数,例如,`--set nebula.storaged.replicas=3`可设置{{nebula.name}}集群中 Storage 服务的副本数为 3。 - - -7. 查看{{nebula.name}}集群创建状态。 - - ```bash - kubectl -n "${NEBULA_CLUSTER_NAMESPACE}" get pod -l "app.kubernetes.io/cluster=${NEBULA_CLUSTER_NAME}" - ``` - -## 扩缩容集群 - - -不支持扩缩容社区版的{{nebula.name}}集群。 - - - - -## 删除集群 - -使用 Helm 删除集群的命令如下: - -```bash -helm uninstall "${NEBULA_CLUSTER_NAME}" --namespace="${NEBULA_CLUSTER_NAMESPACE}" -``` - -或者使用真实值删除集群,例如: - -```bash -helm uninstall nebula --namespace=nebula -``` - -## 后续操作 - -[连接{{nebula.name}}](../4.connect-to-nebula-graph-service.md) - diff --git a/docs-2.0-zh/nebula-operator/6.get-started-with-operator.md b/docs-2.0-zh/nebula-operator/6.get-started-with-operator.md deleted file mode 100644 index 1a2695c519a..00000000000 --- a/docs-2.0-zh/nebula-operator/6.get-started-with-operator.md +++ /dev/null @@ -1,10 +0,0 @@ -# 使用流程 - -使用 NebulaGraph Operator 访问{{nebula.name}}集群服务的流程如下: - -1. [安装 NebulaGraph Operator](2.deploy-nebula-operator.md)。 -2. 创建{{nebula.name}}集群。 - - 具体步骤参考[使用 Kubectl 部署{{nebula.name}}集群](3.deploy-nebula-graph-cluster/3.1create-cluster-with-kubectl.md)或者[使用 Helm 部署{{nebula.name}}集群](3.deploy-nebula-graph-cluster/3.2create-cluster-with-helm.md)。 - -3. [连接{{nebula.name}}服务](4.connect-to-nebula-graph-service.md)。 diff --git a/docs-2.0-zh/nebula-operator/8.custom-cluster-configurations/8.1.custom-conf-parameter.md b/docs-2.0-zh/nebula-operator/8.custom-cluster-configurations/8.1.custom-conf-parameter.md deleted file mode 100644 index 2c83dbc0683..00000000000 --- a/docs-2.0-zh/nebula-operator/8.custom-cluster-configurations/8.1.custom-conf-parameter.md +++ /dev/null @@ -1,170 +0,0 @@ -# 自定义{{nebula.name}}集群的配置参数 - -{{nebula.name}}集群中 Meta、Storage、Graph 服务都有各自的配置,其在用户创建的{{nebula.name}}集群实例的 YAML 文件中被定义为`config`。`config`中的设置会被映射并加载到对应服务的 ConfigMap 中。各个服务在启动时会挂载 ConfigMap 中的配置到`/usr/local/nebula/etc/`目录下。 - -!!! note - - 暂不支持通过 Helm 自定义{{nebula.name}}集群的配置参数。 - -`config`结构如下: - -```go -Config map[string]string `json:"config,omitempty"` -``` - -## 前提条件 - -已使用 K8s 创建一个集群。具体步骤,参见[使用 Kubectl 创建{{nebula.name}}集群](../3.deploy-nebula-graph-cluster/3.1create-cluster-with-kubectl.md)。 - -## 操作步骤 - -以下示例使用名为`nebula`的集群、名为`nebula_cluster.yaml`的 YAML 配置文件,说明如何为集群的 Graph 服务配置`config`: - -1. 执行以下命令进入`nebula`集群的编辑页面。 - - ```bash - kubectl edit nebulaclusters.apps.nebula-graph.io nebula - ``` - -2. 在 YAML 文件的`spec.graphd.config`配置项中,添加需要修改的参数。下文以 `enable_authorize`和`auth_type`为例。 - - ```yaml - apiVersion: apps.nebula-graph.io/v1alpha1 - kind: NebulaCluster - metadata: - name: nebula - namespace: default - spec: - graphd: - resources: - requests: - cpu: "500m" - memory: "500Mi" - limits: - cpu: "1" - memory: "1Gi" - replicas: 1 - image: vesoft/nebula-graphd - version: {{nebula.tag}} - storageClaim: - resources: - requests: - storage: 2Gi - storageClassName: fast-disks - config: //为 Graph 服务自定义参数。 - "enable_authorize": "true" - "auth_type": "password" - ... - ``` - 在`config`字段下可配置的参数详情,请分别参见 [Meta 服务配置参数](../../5.configurations-and-logs/1.configurations/2.meta-config.md)、[Storage 服务配置参数](../../5.configurations-and-logs/1.configurations/4.storage-config.md)、[Graph 服务配置参数](../../5.configurations-and-logs/1.configurations/3.graph-config.md)。 - - !!! note - - * 若要在集群运行时动态修改参数配置且不触发 Pod 重启,请确保当前修改的参数全部支持运行时动态修改。参数是否支持运行时动态修改,请查看上述参数详情页各个表格中**是否支持运行时动态修改**一列。 - * 若本次修改的参数包含一个或多个不支持运行时动态修改的参数,则会触发 Pod 重启。 - - 如果需要为 Meta 服务和 Storage 服务配置`config`,则在`spec.metad.config`和`spec.storaged.config`中添加对应的配置项。 - -3. 执行`kubectl apply -f nebula_cluster.yaml`使上述更新生效。 - - 在修改参数值后,Graph 服务对应的 ConfigMap(`nebula-graphd`)中的配置将被覆盖。 - -### 配置自定义端口 - -您可以在`config`字段中添加`port`和`ws_http_port`参数,从而配置自定义的端口。这两个参数的详细信息,请参见[Meta 服务配置参数](../../5.configurations-and-logs/1.configurations/2.meta-config.md)、[Storage 服务配置参数](../../5.configurations-and-logs/1.configurations/4.storage-config.md)、[Graph 服务配置参数](../../5.configurations-and-logs/1.configurations/3.graph-config.md)的 networking 配置一节。 - -!!! note - - * 自定义`port`和`ws_http_port`参数配置后,会触发 Pod 重启,并在重启后生效。 - * 在集群启动后,不建议修改`port`参数。 - -1. 修改集群配置文件。 - - ```yaml - apiVersion: apps.nebula-graph.io/v1alpha1 - kind: NebulaCluster - metadata: - name: nebula - namespace: default - spec: - graphd: - config: - port: "3669" - ws_http_port: "8080" - resources: - requests: - cpu: "200m" - memory: "500Mi" - limits: - cpu: "1" - memory: "1Gi" - replicas: 1 - image: vesoft/nebula-graphd - version: {{nebula.tag}} - metad: - config: - ws_http_port: 8081 - resources: - requests: - cpu: "300m" - memory: "500Mi" - limits: - cpu: "1" - memory: "1Gi" - replicas: 1 - image: vesoft/nebula-metad - version: {{nebula.tag}} - dataVolumeClaim: - resources: - requests: - storage: 2Gi - storageClassName: local-path - storaged: - config: - ws_http_port: 8082 - resources: - requests: - cpu: "300m" - memory: "500Mi" - limits: - cpu: "1" - memory: "1Gi" - replicas: 1 - image: vesoft/nebula-storaged - version: {{nebula.tag}} - dataVolumeClaims: - - resources: - requests: - storage: 2Gi - storageClassName: local-path - enableAutoBalance: true - reference: - name: statefulsets.apps - version: v1 - schedulerName: default-scheduler - imagePullPolicy: IfNotPresent - imagePullSecrets: - - name: nebula-image - enablePVReclaim: true - topologySpreadConstraints: - - topologyKey: kubernetes.io/hostname - whenUnsatisfiable: "ScheduleAnyway" - ``` - -2. 执行`kubectl apply -f nebula_cluster.yaml`使上述更新生效。 - -3. 验证配置已经生效。 - - ```bash - kubectl get svc - ``` - - 返回示例: - - ``` - NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE - nebula-graphd-headless ClusterIP None 3669/TCP,8080/TCP 10m - nebula-graphd-svc ClusterIP 10.102.13.115 3669/TCP,8080/TCP 10m - nebula-metad-headless ClusterIP None 9559/TCP,8081/TCP 11m - nebula-storaged-headless ClusterIP None 9779/TCP,8082/TCP,9778/TCP 11m - ``` \ No newline at end of file diff --git a/docs-2.0-zh/nebula-operator/9.upgrade-nebula-cluster.md b/docs-2.0-zh/nebula-operator/9.upgrade-nebula-cluster.md deleted file mode 100644 index 387c2b30bf0..00000000000 --- a/docs-2.0-zh/nebula-operator/9.upgrade-nebula-cluster.md +++ /dev/null @@ -1,205 +0,0 @@ -# 升级{{nebula.name}}集群 - -本文介绍如何升级通过 NebulaGraph Operator 创建的{{nebula.name}}集群。 - - -!!! compatibility "历史版本兼容性" - - 1.x 版本的 NebulaGraph Operator 不兼容 3.x 以下版本的 NebulaGraph。 - -## 使用限制 - -- 只支持升级使用 NebulaGraph Operator 创建的{{nebula.name}}集群。 - -- 只支持升级 {{nebula.name}} {{operator.upgrade_from}} 至 {{operator.upgrade_to}} 版本。 - - -## 使用 Kubectl 升级{{nebula.name}}集群 - -### 前提条件 - -已创建{{nebula.name}}集群。具体步骤,参见[使用 Kubectl 创建{{nebula.name}}集群](3.deploy-nebula-graph-cluster/3.1create-cluster-with-kubectl.md)。 - -本文示例中待升级的{{nebula.name}}版本为 {{operator.upgrade_from}},其 YAML 文件名为`apps_v1alpha1_nebulacluster.yaml`。 - -### 操作步骤 - -1. 查看集群中服务的镜像版本。 - - ```bash - kubectl get pods -l app.kubernetes.io/cluster=nebula -o jsonpath="{.items[*].spec.containers[*].image}" |tr -s '[[:space:]]' '\n' |sort |uniq -c - ``` - - 返回: - - ```bash - 1 vesoft/nebula-graphd:v{{operator.upgrade_from}} - 1 vesoft/nebula-metad:v{{operator.upgrade_from}} - 3 vesoft/nebula-storaged:v{{operator.upgrade_from}} - ``` - -2. 编辑`apps_v1alpha1_nebulacluster.yaml`并将所有`version`的值从 {{operator.upgrade_from}} 修改至 {{nebula.tag}}。 - - 修改后的 YAML 文件内容如下: - - ```yaml - apiVersion: apps.nebula-graph.io/v1alpha1 - kind: NebulaCluster - metadata: - name: nebula - spec: - graphd: - resources: - requests: - cpu: "500m" - memory: "500Mi" - limits: - cpu: "1" - memory: "1Gi" - replicas: 1 - image: vesoft/nebula-graphd - version: {{nebula.tag}} //将值从 {{operator.upgrade_from}} 修改至 {{nebula.tag}}。 - service: - type: NodePort - externalTrafficPolicy: Local - logVolumeClaim: - resources: - requests: - storage: 2Gi - storageClassName: fast-disks - metad: - resources: - requests: - cpu: "500m" - memory: "500Mi" - limits: - cpu: "1" - memory: "1Gi" - replicas: 1 - image: vesoft/nebula-metad - version: {{nebula.tag}} //将值从 {{operator.upgrade_from}} 修改至 {{nebula.tag}}。 - dataVolumeClaim: - resources: - requests: - storage: 2Gi - storageClassName: fast-disks - logVolumeClaim: - resources: - requests: - storage: 2Gi - storageClassName: fast-disks - storaged: - resources: - requests: - cpu: "500m" - memory: "500Mi" - limits: - cpu: "1" - memory: "1Gi" - replicas: 3 - image: vesoft/nebula-storaged - version: {{nebula.tag}} //将值从 {{operator.upgrade_from}} 修改至 {{nebula.tag}}。 - dataVolumeClaims: - - resources: - requests: - storage: 2Gi - storageClassName: fast-disks - - resources: - requests: - storage: 2Gi - storageClassName: fast-disks - logVolumeClaim: - resources: - requests: - storage: 2Gi - storageClassName: fast-disks - reference: - name: statefulsets.apps - version: v1 - schedulerName: default-scheduler - imagePullPolicy: Always - ``` - -3. 执行以下命令将版本升级的更新应用于集群 CR 中。 - - ```bash - kubectl apply -f apps_v1alpha1_nebulacluster.yaml - ``` - -4. 等待约 2 分钟后,执行以下命令可查看到服务的镜像版本变更为 {{nebula.tag}}。 - - ```bash - kubectl get pods -l app.kubernetes.io/cluster=nebula -o jsonpath="{.items[*].spec.containers[*].image}" |tr -s '[[:space:]]' '\n' |sort |uniq -c - ``` - - 返回: - - ```bash - 1 vesoft/nebula-graphd:{{nebula.tag}} - 1 vesoft/nebula-metad:{{nebula.tag}} - 3 vesoft/nebula-storaged:{{nebula.tag}} - ``` - -## 使用 Helm 升级{{nebula.name}}集群 - -### 前提条件 - -已创建{{nebula.name}}集群。具体步骤,参见[使用 Helm 创建{{nebula.name}}集群](3.deploy-nebula-graph-cluster/3.2create-cluster-with-helm.md)。 - -### 操作步骤 - -1. 更新 Helm 仓库,拉取最新的仓库资源。 - - ```bash - helm repo update - ``` - -2. 配置 Helm 的环境变量。 - - ```bash - export NEBULA_CLUSTER_NAME=nebula #{{nebula.name}}集群的名字。 - export NEBULA_CLUSTER_NAMESPACE=nebula #{{nebula.name}}集群所处的命名空间的名字。 - ``` - -3. 升级{{nebula.name}}集群。 - - 例如升级至 {{nebula.tag}}{{nebula.name}}集群的命令如下。 - - ```bash - helm upgrade "${NEBULA_CLUSTER_NAME}" nebula-operator/nebula-cluster \ - --namespace="${NEBULA_CLUSTER_NAMESPACE}" \ - --set nameOverride=${NEBULA_CLUSTER_NAME} \ - --set nebula.version={{nebula.tag}} - ``` - - `--set nebula.version`的值指需要升级集群的目标版本号。 - -4. 执行以下命令查看集群状态及集群版本。 - - 查看集群状态: - - ```bash - $ kubectl -n "${NEBULA_CLUSTER_NAMESPACE}" get pod -l "app.kubernetes.io/cluster=${NEBULA_CLUSTER_NAME}" - NAME READY STATUS RESTARTS AGE - nebula-graphd-0 1/1 Running 0 2m - nebula-graphd-1 1/1 Running 0 2m - nebula-metad-0 1/1 Running 0 2m - nebula-metad-1 1/1 Running 0 2m - nebula-metad-2 1/1 Running 0 2m - nebula-storaged-0 1/1 Running 0 2m - nebula-storaged-1 1/1 Running 0 2m - nebula-storaged-2 1/1 Running 0 2m - ``` - - 查看集群版本: - - ```bash - $ kubectl get pods -l app.kubernetes.io/cluster=nebula -o jsonpath="{.items[*].spec.containers[*].image}" |tr -s '[[:space:]]' '\n' |sort |uniq -c - 1 vesoft/nebula-graphd:{{nebula.tag}} - 1 vesoft/nebula-metad:{{nebula.tag}} - 3 vesoft/nebula-storaged:{{nebula.tag}} - ``` - -## 加速升级过程 - -集群的升级过程是一个滚动更新的过程也是耗时的过程,因为 Storage 服务的 Leader 分片副本会进行状态转移。用户可在集群实例的 YAML 文件中配置`enableForceUpdate`参数,来略过 Leader 分片副本转移操作,以达到加速升级的过程。详情参见[配置滚动更新策略](11.rolling-update-strategy.md)。 \ No newline at end of file diff --git a/docs-2.0-zh/nebula-studio/about-studio/st-ug-what-is-graph-studio.md b/docs-2.0-zh/nebula-studio/about-studio/st-ug-what-is-graph-studio.md index 4e37ad99675..fe6420afe09 100644 --- a/docs-2.0-zh/nebula-studio/about-studio/st-ug-what-is-graph-studio.md +++ b/docs-2.0-zh/nebula-studio/about-studio/st-ug-what-is-graph-studio.md @@ -1,6 +1,6 @@ # 什么是 NebulaGraph Studio -NebulaGraph Studio(简称 Studio)是一款可以通过 Web 访问的开源图数据库可视化工具,搭配 [{{nebula.name}}](../../README.md) 内核使用,提供构图、数据导入、编写 nGQL 查询等一站式服务。用户可以在{{nebula.name}} GitHub 仓库中查看最新源码,详情参见 [nebula-studio](https://github.com/vesoft-inc/nebula-studio)。 +NebulaGraph Studio(简称 Studio)是一款可以通过 Web 访问的开源图数据库可视化工具,搭配 [{{nebula.name}} ](../../README.md) 内核使用,提供构图、数据导入、编写 nGQL 查询等一站式服务。用户可以在 {{nebula.name}} GitHub 仓库中查看最新源码,详情参见 [nebula-studio](https://github.com/vesoft-inc/nebula-studio)。 !!! note @@ -14,9 +14,9 @@ NebulaGraph Studio(简称 Studio)是一款可以通过 Web 访问的开源 ## 产品功能 -Studio 可以方便管理{{nebula.name}}数据,具备以下功能: +Studio 可以方便管理 {{nebula.name}} 数据,具备以下功能: -- 使用 **Schema** 管理功能,用户可以使用图形界面完成图空间、Tag(标签)、Edge Type(边类型)、索引的创建,查看图空间的统计数据,快速上手{{nebula.name}}。 +- 使用 **Schema** 管理功能,用户可以使用图形界面完成图空间、Tag(标签)、Edge Type(边类型)、索引的创建,查看图空间的统计数据,快速上手 {{nebula.name}} 。 - 使用**导入**功能,通过简单的配置,用户即能批量导入点和边数据,并能实时查看数据导入日志。 @@ -26,23 +26,23 @@ Studio 可以方便管理{{nebula.name}}数据,具备以下功能: 如果有以下任一需求,都可以使用 Studio: -- 已经安装部署了{{nebula.name}},想使用 GUI 工具创建 Schema、导入数据、执行 nGQL 语句查询。 +- 已经安装部署了 {{nebula.name}},想使用 GUI 工具创建 Schema、导入数据、执行 nGQL 语句查询。 - 刚开始学习 nGQL(NebulaGraph Query Language),但是不习惯用命令行工具,更希望使用 GUI 工具查看语句输出的结果。 ## 身份验证 -因为{{nebula.name}}默认不启用身份验证,所以用户可以使用 `root` 账号和任意密码登录 Studio。 +因为 {{nebula.name}} 默认不启用身份验证,所以用户可以使用 `root` 账号和任意密码登录 Studio。 -当{{nebula.name}}启用了身份验证后,用户只能使用指定的账号和密码登录 Studio。关于{{nebula.name}}的身份验证功能,参考 [身份验证](../../7.data-security/1.authentication/1.authentication.md "点击前往{{nebula.name}}官网")。 +当 {{nebula.name}} 启用了身份验证后,用户只能使用指定的账号和密码登录 Studio。关于 {{nebula.name}} 的身份验证功能,参考 [身份验证](../../7.data-security/1.authentication/1.authentication.md "点击前往 {{nebula.name}} 官网")。 ## 版本兼容性 !!! note - Studio 版本发布节奏独立于{{nebula.name}}内核,其命名方式也不参照内核命名规则,两者兼容对应关系如下表。 + Studio 版本发布节奏独立于 {{nebula.name}} 内核,其命名方式也不参照内核命名规则,两者兼容对应关系如下表。 -|{{nebula.name}}版本 | Studio 版本 | +| {{nebula.name}} 版本 | Studio 版本 | | --- | --- | | 3.6.0 | 3.8.0、3.7.0 | | 3.5.x | 3.7.0 | diff --git a/docs-2.0-zh/nebula-studio/deploy-connect/st-ug-connect.md b/docs-2.0-zh/nebula-studio/deploy-connect/st-ug-connect.md index ed0d69903d9..d91c0c1d40d 100644 --- a/docs-2.0-zh/nebula-studio/deploy-connect/st-ug-connect.md +++ b/docs-2.0-zh/nebula-studio/deploy-connect/st-ug-connect.md @@ -1,20 +1,20 @@ # 连接数据库 -在成功启动 Studio 后,用户需要配置连接{{nebula.name}}。本文主要描述 Studio 如何连接{{nebula.name}}。 +在成功启动 Studio 后,用户需要配置连接 {{nebula.name}} 。本文主要描述 Studio 如何连接 {{nebula.name}} 。 ## 前提条件 -在连接{{nebula.name}}数据库前,用户需要确认以下信息: +在连接 {{nebula.name}} 数据库前,用户需要确认以下信息: - Studio 已经启动。详细信息参考[部署 Studio](st-ug-deploy.md)。 -- {{nebula.name}}的 Graph 服务本机 IP 地址以及服务所用端口。默认端口为 `9669`。 +- {{nebula.name}} 的 Graph 服务本机 IP 地址以及服务所用端口。默认端口为 `9669`。 -- {{nebula.name}}登录账号信息,包括用户名和密码。 +- {{nebula.name}} 登录账号信息,包括用户名和密码。 ## 操作步骤 -按以下步骤连接{{nebula.name}}: +按以下步骤连接 {{nebula.name}} : 1. 在浏览器地址栏输入 `http://:7001`。 @@ -24,16 +24,16 @@ 2. 在 Studio 的 **配置数据库** 页面上,输入以下信息: - - **Graphd IP 地址**:填写{{nebula.name}}的 Graph 服务本机 IP 地址。例如`192.168.10.100`。 + - **Graphd IP 地址**:填写 {{nebula.name}} 的 Graph 服务本机 IP 地址。例如`192.168.10.100`。 !!! note - - 即使{{nebula.name}}与 Studio 部署在同一台机器上,用户也必须填写这台机器的本机 IP 地址,而不是 `127.0.0.1` 或者 `localhost`。 - - 在新的标签页连接另一个{{nebula.name}}时,会覆盖旧标签页的会话。如果需要同时登录多个{{nebula.name}},可以用不同的浏览器或者无痕模式。 + - 即使 {{nebula.name}} 与 Studio 部署在同一台机器上,用户也必须填写这台机器的本机 IP 地址,而不是 `127.0.0.1` 或者 `localhost`。 + - 在新的标签页连接另一个 {{nebula.name}} 时,会覆盖旧标签页的会话。如果需要同时登录多个 {{nebula.name}},可以用不同的浏览器或者无痕模式。 - **Port**:Graphd 服务的端口。默认为`9669`。 - - **用户名** 和 **密码**:根据{{nebula.name}}的身份验证设置填写登录账号和密码。 + - **用户名** 和 **密码**:根据 {{nebula.name}} 的身份验证设置填写登录账号和密码。 - 如果未启用身份验证,可以填写默认用户名 `root` 和任意密码。 - 如果已启用身份验证,但是未创建账号信息,用户只能以 GOD 角色登录,必须填写 `root` 及对应的密码 `nebula`。 - 如果已启用身份验证,同时又创建了不同的用户并分配了角色,不同角色的用户使用自己的账号和密码登录。 @@ -50,7 +50,7 @@ ## 后续操作 -成功连接{{nebula.name}}后,用户可以执行以下操作: +成功连接 {{nebula.name}} 后,用户可以执行以下操作: - 使用[**控制台**](../quick-start/st-ug-create-schema.md)或者 [**Schema**](../manage-schema/st-ug-crud-space.md) 页面管理 Schema。 - [批量导入数据](../quick-start/st-ug-import-data.md)。 @@ -64,6 +64,6 @@ ### 登出 -如果需要重新连接{{nebula.name}},可以登出后重新配置数据库。 +如果需要重新连接 {{nebula.name}},可以登出后重新配置数据库。 在页面右上角单击用户头像,单击 **登出**。 diff --git a/docs-2.0-zh/nebula-studio/deploy-connect/st-ug-deploy.md b/docs-2.0-zh/nebula-studio/deploy-connect/st-ug-deploy.md index 1d28b1a49e3..d131b11a792 100644 --- a/docs-2.0-zh/nebula-studio/deploy-connect/st-ug-deploy.md +++ b/docs-2.0-zh/nebula-studio/deploy-connect/st-ug-deploy.md @@ -8,7 +8,7 @@ 在部署 RPM 版 Studio 之前,用户需要确认以下信息: -- {{nebula.name}}服务已经部署并启动。详细信息,参考 [{{nebula.name}}安装部署](../../4.deployment-and-installation/1.resource-preparations.md "点击前往{{nebula.name}}安装部署")。 +- {{nebula.name}} 服务已经部署并启动。详细信息,参考 [{{nebula.name}} 安装部署](../../4.deployment-and-installation/1.resource-preparations.md "点击前往 {{nebula.name}} 安装部署")。 - 使用的 Linux 发行版为 CentOS ,已安装 lsof。 @@ -22,7 +22,7 @@ 1. 根据需要选择并下载 RPM 包,建议选择最新版本。常用下载链接如下: - | 安装包 | 检验和 | 适用{{nebula.name}}版本 | + | 安装包 | 检验和 | 适用 {{nebula.name}} 版本 | | ----- | ----- | ----- | | [nebula-graph-studio-{{studio.release}}.x86_64.rpm](https://oss-cdn.nebula-graph.com.cn/nebula-graph-studio/{{studio.release}}/nebula-graph-studio-{{studio.release}}.x86_64.rpm) | [nebula-graph-studio-{{studio.release}}.x86_64.rpm.sha256](https://oss-cdn.nebula-graph.com.cn/nebula-graph-studio/{{studio.release}}/nebula-graph-studio-{{studio.release}}.x86_64.rpm.sha256) | {{ nebula.release }} | @@ -102,7 +102,7 @@ $ systemctl restart nebula-graph-studio.service 在通过 DEB 部署安装 Studio 之前,用户需要确认以下信息: -- {{nebula.name}}服务已经部署并启动。详细信息,参考 [{{nebula.name}}安装部署](../../4.deployment-and-installation/1.resource-preparations.md "点击前往{{nebula.name}}安装部署")。 +- {{nebula.name}} 服务已经部署并启动。详细信息,参考 [{{nebula.name}} 安装部署](../../4.deployment-and-installation/1.resource-preparations.md "点击前往 {{nebula.name}} 安装部署")。 - 使用的 Linux 发行版为 Ubuntu。 @@ -118,7 +118,7 @@ $ systemctl restart nebula-graph-studio.service 1. 根据需要选择并下载 DEB 包,建议选择最新版本。常用下载链接如下: - | 安装包 | 检验和 | 适用{{nebula.name}}版本 | + | 安装包 | 检验和 | 适用 {{nebula.name}} 版本 | | ----- | ----- | ----- | | [nebula-graph-studio-{{studio.release}}.x86_64.deb](https://oss-cdn.nebula-graph.com.cn/nebula-graph-studio/{{studio.release}}/nebula-graph-studio-{{studio.release}}.x86_64.deb) | [nebula-graph-studio-{{studio.release}}.x86_64.deb.sha256](https://oss-cdn.nebula-graph.com.cn/nebula-graph-studio/{{studio.release}}/nebula-graph-studio-{{studio.release}}.x86_64.deb.sha256) | {{ nebula.release }} | @@ -150,7 +150,7 @@ $ sudo dpkg -r nebula-graph-studio 在部署 tar 包安装的 Studio 之前,用户需要确认以下信息: -- {{nebula.name}}服务已经部署并启动。详细信息,参考 [{{nebula.name}}安装部署](../../4.deployment-and-installation/1.resource-preparations.md "点击前往{{nebula.name}}安装部署")。 +- {{nebula.name}} 服务已经部署并启动。详细信息,参考 [{{nebula.name}} 安装部署](../../4.deployment-and-installation/1.resource-preparations.md "点击前往 {{nebula.name}} 安装部署")。 - 确保以下端口未被占用。 @@ -162,7 +162,7 @@ $ sudo dpkg -r nebula-graph-studio 1. 根据需要下载 tar 包,建议选择最新版本。 - | 安装包 | Studio 版本 |适用{{nebula.name}}版本 | + | 安装包 | Studio 版本 |适用 {{nebula.name}} 版本 | | --- | --- |---| | [nebula-graph-studio-{{studio.release}}.x86_64.tar.gz](https://oss-cdn.nebula-graph.com.cn/nebula-graph-studio/{{studio.release}}/nebula-graph-studio-{{studio.release}}.x86_64.tar.gz) | {{studio.release}} | {{ nebula.release }} | @@ -197,7 +197,7 @@ $ kill $(lsof -t -i :7001) # stop nebula-graph-studio 在部署 Docker 版 Studio 之前,用户需要确认以下信息: -- {{nebula.name}}服务已经部署并启动。详细信息,参考 [{{nebula.name}}安装部署](../../4.deployment-and-installation/1.resource-preparations.md "点击前往{{nebula.name}}安装部署")。 +- {{nebula.name}} 服务已经部署并启动。详细信息,参考 [{{nebula.name}} 安装部署](../../4.deployment-and-installation/1.resource-preparations.md "点击前往 {{nebula.name}} 安装部署")。 - 在即将运行 Docker 版 Studio 的机器上安装并启动 Docker Compose。详细信息参考 [Docker Compose 文档](https://docs.docker.com/compose/install/ "点击前往 Docker 文档中心")。 - 确保以下端口未被占用。 @@ -222,11 +222,11 @@ $ kill $(lsof -t -i :7001) # stop nebula-graph-studio ### 操作步骤 -在命令行工具中按以下步骤依次运行命令,部署并启动 Docker 版 Studio,这里我们用{{nebula.name}}版本为 {{nebula.release}} 的进行演示: +在命令行工具中按以下步骤依次运行命令,部署并启动 Docker 版 Studio,这里我们用 {{nebula.name}} 版本为 {{nebula.release}} 的进行演示: 1. 下载 Studio 的部署配置文件。 - | 安装包 | 适用{{nebula.name}}版本 | + | 安装包 | 适用 {{nebula.name}} 版本 | | ----- | ----- | | [nebula-graph-studio-{{studio.release}}.tar.gz](https://oss-cdn.nebula-graph.com.cn/nebula-graph-studio/{{studio.release}}/nebula-graph-studio-{{studio.release}}.tar.gz) | {{nebula.release}} | @@ -330,4 +330,4 @@ $ helm uninstall my-studio ## 后续操作 -进入 Studio 登录界面后,用户需要连接{{nebula.name}}。详细信息,参考[连接数据库](st-ug-connect.md)。 +进入 Studio 登录界面后,用户需要连接 {{nebula.name}} 。详细信息,参考[连接数据库](st-ug-connect.md)。 diff --git a/docs-2.0-zh/nebula-studio/manage-schema/st-ug-crud-edge-type.md b/docs-2.0-zh/nebula-studio/manage-schema/st-ug-crud-edge-type.md index 1ef8494b5cf..f63bded9c23 100644 --- a/docs-2.0-zh/nebula-studio/manage-schema/st-ug-crud-edge-type.md +++ b/docs-2.0-zh/nebula-studio/manage-schema/st-ug-crud-edge-type.md @@ -1,12 +1,12 @@ # 操作 Edge type -在{{nebula.name}}中创建图空间后,用户可能需要创建 Edge type(边类型)。用户可以选择使用 **控制台** 或者 **Schema** 操作 Edge type。本文仅说明如何使用 **Schema** 操作 Edge type。 +在 {{nebula.name}} 中创建图空间后,用户可能需要创建 Edge type(边类型)。用户可以选择使用 **控制台** 或者 **Schema** 操作 Edge type。本文仅说明如何使用 **Schema** 操作 Edge type。 ## 前提条件 在 Studio 上操作 Edge type 之前,用户必须确认以下信息: -- Studio 已经连接到{{nebula.name}}。 +- Studio 已经连接到 {{nebula.name}} 。 - 图空间已经创建。 @@ -36,7 +36,7 @@ - (可选)输入默认值。 - (可选)输入属性备注。 - 4. **设置TTL(存活时间)**(可选):Edge type 未设置索引时,用户可以设置 TTL。勾选**设置TTL(存活时间)**,设置`TTL_COL`和`TTL_DURATION`(单位:秒)。详情参考 [TTL 配置](../../3.ngql-guide/8.clauses-and-options/ttl-options.md "点击前往{{nebula.name}}网站")。 + 4. **设置TTL(存活时间)**(可选):Edge type 未设置索引时,用户可以设置 TTL。勾选**设置TTL(存活时间)**,设置`TTL_COL`和`TTL_DURATION`(单位:秒)。详情参考 [TTL 配置](../../3.ngql-guide/8.clauses-and-options/ttl-options.md "点击前往 {{nebula.name}} 网站")。 6. 完成设置后,在 **对应的 nGQL 语句** 面板上,用户能看到与上述配置等价的 nGQL 语句。 @@ -64,9 +64,9 @@ - 如果要修改属性:在 **定义属性** 区域,找到需要修改的属性,在右侧点击 **编辑**,修改后点击 **确认**。 - 如果要删除属性:在 **定义属性** 区域,找到需要删除的属性,在右侧点击 **删除**,然后点击 **确认**。 - 如果要添加属性:在 **定义属性** 区域,点击 **+ 添加属性**,设置属性信息,点击 **确认**。详细说明参考[创建边类型](#_2) 。 - - 如果要修改 TTL 信息:在 **设置 TTL** 区域,点击 **编辑**,修改后点击 **确认**。详情参考 [TTL 配置](../../3.ngql-guide/8.clauses-and-options/ttl-options.md "点击前往{{nebula.name}}网站")。 + - 如果要修改 TTL 信息:在 **设置 TTL** 区域,点击 **编辑**,修改后点击 **确认**。详情参考 [TTL 配置](../../3.ngql-guide/8.clauses-and-options/ttl-options.md "点击前往 {{nebula.name}} 网站")。 - 如果要删除已经配置的 TTL 信息:在 **设置 TTL** 区域,取消勾选 **设置TTL(存活时间)**,然后点击 **确定**。 - - 如果要配置 TTL 信息:在 **设置 TTL** 区域,勾选 **设置TTL(存活时间)**,设置`TTL_COL`和`TTL_DURATION`(单位:秒),点击 **确认**。详情参考 [TTL 配置](../../3.ngql-guide/8.clauses-and-options/ttl-options.md "点击前往{{nebula.name}}网站")。 + - 如果要配置 TTL 信息:在 **设置 TTL** 区域,勾选 **设置TTL(存活时间)**,设置`TTL_COL`和`TTL_DURATION`(单位:秒),点击 **确认**。详情参考 [TTL 配置](../../3.ngql-guide/8.clauses-and-options/ttl-options.md "点击前往 {{nebula.name}} 网站")。 !!! note diff --git a/docs-2.0-zh/nebula-studio/manage-schema/st-ug-crud-index.md b/docs-2.0-zh/nebula-studio/manage-schema/st-ug-crud-index.md index 5950e0ed900..bc566cdcf72 100644 --- a/docs-2.0-zh/nebula-studio/manage-schema/st-ug-crud-index.md +++ b/docs-2.0-zh/nebula-studio/manage-schema/st-ug-crud-index.md @@ -4,13 +4,13 @@ !!! note - 一般在创建了 Tag 或者 Edge type 之后即可创建索引,但是,索引会影响写性能,所以,建议先导入数据,再批量重建索引。关于索引的详细信息,参考 [索引介绍](../../3.ngql-guide/14.native-index-statements/README.md "点击前往{{nebula.name}}网站")。 + 一般在创建了 Tag 或者 Edge type 之后即可创建索引,但是,索引会影响写性能,所以,建议先导入数据,再批量重建索引。关于索引的详细信息,参考 [索引介绍](../../3.ngql-guide/14.native-index-statements/README.md "点击前往 {{nebula.name}} 网站")。 ## 前提条件 在 Studio 上操作索引之前,用户必须确认以下信息: -- Studio 已经连接到{{nebula.name}}。 +- Studio 已经连接到 {{nebula.name}} 。 - 图空间、Tag 和 Edge type 已经创建。 - 当前登录的账号拥有 GOD、ADMIN 或者 DBA 的权限。 @@ -34,7 +34,7 @@ !!! note - 索引属性的顺序会影响 `LOOKUP` 语句的查询结果。详细信息,参考 [LOOKUP](../../3.ngql-guide/7.general-query-statements/5.lookup.md "点击前往{{nebula.name}}网站")。 + 索引属性的顺序会影响 `LOOKUP` 语句的查询结果。详细信息,参考 [LOOKUP](../../3.ngql-guide/7.general-query-statements/5.lookup.md "点击前往 {{nebula.name}} 网站")。 6. 完成设置后,在 **对应的 nGQL** 面板,用户能看到与上述配置等价的 nGQL 语句。 diff --git a/docs-2.0-zh/nebula-studio/manage-schema/st-ug-crud-space.md b/docs-2.0-zh/nebula-studio/manage-schema/st-ug-crud-space.md index ee7d60ab2e9..0d3a8ba02c2 100644 --- a/docs-2.0-zh/nebula-studio/manage-schema/st-ug-crud-space.md +++ b/docs-2.0-zh/nebula-studio/manage-schema/st-ug-crud-space.md @@ -1,15 +1,15 @@ # 操作图空间 -Studio 连接到{{nebula.name}}后,用户可以创建或删除图空间。用户可以使用 **控制台** 或者 **Schema** 操作图空间。本文仅说明如何使用 **Schema** 操作图空间。 +Studio 连接到 {{nebula.name}} 后,用户可以创建或删除图空间。用户可以使用 **控制台** 或者 **Schema** 操作图空间。本文仅说明如何使用 **Schema** 操作图空间。 ## 前提条件 操作图空间之前,用户需要确保以下信息: -- Studio 已经连接到{{nebula.name}}。 +- Studio 已经连接到 {{nebula.name}} 。 - 当前登录的账号拥有创建或删除图空间的权限,即: - - 如果{{nebula.name}}未开启身份验证,用户以默认用户名 `user` 账号和任意密码登录。 - - 如果{{nebula.name}}已开启身份验证,用户以 `root` 账号及其密码登录。 + - 如果 {{nebula.name}} 未开启身份验证,用户以默认用户名 `user` 账号和任意密码登录。 + - 如果 {{nebula.name}} 已开启身份验证,用户以 `root` 账号及其密码登录。 ## 创建图空间 diff --git a/docs-2.0-zh/nebula-studio/manage-schema/st-ug-crud-tag.md b/docs-2.0-zh/nebula-studio/manage-schema/st-ug-crud-tag.md index df26168fb17..692878cb588 100644 --- a/docs-2.0-zh/nebula-studio/manage-schema/st-ug-crud-tag.md +++ b/docs-2.0-zh/nebula-studio/manage-schema/st-ug-crud-tag.md @@ -1,12 +1,12 @@ # 操作 Tag(点类型) -在{{nebula.name}}中创建图空间后,用户需要创建 Tag(点类型)。用户可以选择使用 **控制台** 或者 **Schema** 管理功能操作 Tag。本文仅说明如何使用 **Schema** 管理功能操作 Tag。 +在 {{nebula.name}} 中创建图空间后,用户需要创建 Tag(点类型)。用户可以选择使用 **控制台** 或者 **Schema** 管理功能操作 Tag。本文仅说明如何使用 **Schema** 管理功能操作 Tag。 ## 前提条件 在 Studio 上操作 Tag 之前,用户必须确认以下信息: -- Studio 已经连接到{{nebula.name}}。 +- Studio 已经连接到 {{nebula.name}} 。 - 图空间已经创建。 - 当前登录的账号拥有 GOD、ADMIN 或者 DBA 的权限。 @@ -38,7 +38,7 @@ - (可选)输入属性备注。 - 4. **设置TTL(存活时间)**(可选):Tag 未设置索引时,用户可以设置 TTL。勾选**设置TTL(存活时间)**,设置`TTL_COL`和`TTL_DURATION`(单位:秒)。详情参考 [TTL 配置](../../3.ngql-guide/8.clauses-and-options/ttl-options.md "点击前往{{nebula.name}}网站")。 + 4. **设置TTL(存活时间)**(可选):Tag 未设置索引时,用户可以设置 TTL。勾选**设置TTL(存活时间)**,设置`TTL_COL`和`TTL_DURATION`(单位:秒)。详情参考 [TTL 配置](../../3.ngql-guide/8.clauses-and-options/ttl-options.md "点击前往 {{nebula.name}} 网站")。 6. 完成设置后,在 **对应的nGQL语句** 面板,用户能看到与上述配置等价的 nGQL 语句。 @@ -64,9 +64,9 @@ - 如果要修改属性:在 **定义属性** 区域,找到需要修改的属性,在右侧点击 **编辑**,修改后点击 **确认**。 - 如果要删除属性:在 **定义属性** 区域,找到需要删除的属性,在右侧点击 **删除**,然后点击 **确认**。 - 如果要添加属性:在 **定义属性** 区域,点击 **+ 添加属性**,设置属性信息,点击 **确认**。详细说明参考[创建 Tag](#tag_1) 。 - - 如果要修改 TTL 信息:在 **设置 TTL** 区域,点击 **编辑**,修改后点击 **确认**。详情参考 [TTL 配置](../../3.ngql-guide/8.clauses-and-options/ttl-options.md "点击前往{{nebula.name}}网站")。 + - 如果要修改 TTL 信息:在 **设置 TTL** 区域,点击 **编辑**,修改后点击 **确认**。详情参考 [TTL 配置](../../3.ngql-guide/8.clauses-and-options/ttl-options.md "点击前往 {{nebula.name}} 网站")。 - 如果要删除已经配置的 TTL 信息:在 **设置 TTL** 区域,取消勾选 **设置TTL(存活时间)**,然后点击 **确定**。 - - 如果要配置 TTL 信息:在 **设置 TTL** 区域,勾选 **设置TTL(存活时间)**,设置`TTL_COL`和`TTL_DURATION`(单位:秒),点击 **确认**。详情参考 [TTL 配置](../../3.ngql-guide/8.clauses-and-options/ttl-options.md "点击前往{{nebula.name}}网站")。 + - 如果要配置 TTL 信息:在 **设置 TTL** 区域,勾选 **设置TTL(存活时间)**,设置`TTL_COL`和`TTL_DURATION`(单位:秒),点击 **确认**。详情参考 [TTL 配置](../../3.ngql-guide/8.clauses-and-options/ttl-options.md "点击前往 {{nebula.name}} 网站")。 !!! note diff --git a/docs-2.0-zh/nebula-studio/quick-start/st-ug-create-schema.md b/docs-2.0-zh/nebula-studio/quick-start/st-ug-create-schema.md index c0f6f702b88..423aad380c9 100644 --- a/docs-2.0-zh/nebula-studio/quick-start/st-ug-create-schema.md +++ b/docs-2.0-zh/nebula-studio/quick-start/st-ug-create-schema.md @@ -1,19 +1,19 @@ # 创建 Schema -在{{nebula.name}}中,用户必须先有 Schema,才能向其中写入点数据和边数据。本文描述如何使用{{nebula.name}}的**控制台**或 **Schema** 功能创建 Schema。 +在 {{nebula.name}} 中,用户必须先有 Schema,才能向其中写入点数据和边数据。本文描述如何使用 {{nebula.name}} 的**控制台**或 **Schema** 功能创建 Schema。 !!! note - - 用户可以使用 nebula-console 创建 Schema。详情参见 [{{nebula.name}}使用手册](../../README.md)和 [{{nebula.name}}快速开始](../../2.quick-start/1.quick-start-overview.md)。 + - 用户可以使用 nebula-console 创建 Schema。详情参见 [{{nebula.name}} 使用手册](../../README.md)和 [{{nebula.name}} 快速开始](../../2.quick-start/1.quick-start-overview.md)。 - 用户可以使用 Schema 草图功能图形化设计 Schema。详情参见 [Schema 草图](draft.md)。 ## 前提条件 在 Studio 上创建 Schema 之前,用户需要确认以下信息: -- Studio 已经连接到{{nebula.name}}数据库。 +- Studio 已经连接到 {{nebula.name}} 数据库。 -- 账号拥有 GOD、ADMIN 或 DBA 权限。详细信息,参考 [{{nebula.name}}内置角色](../../7.data-security/1.authentication/3.role-list.md)。 +- 账号拥有 GOD、ADMIN 或 DBA 权限。详细信息,参考 [{{nebula.name}} 内置角色](../../7.data-security/1.authentication/3.role-list.md)。 - 已经规划 Schema 的要素。 diff --git a/docs-2.0-zh/nebula-studio/quick-start/st-ug-import-data.md b/docs-2.0-zh/nebula-studio/quick-start/st-ug-import-data.md index 7b7757f3f7b..11c00ce0335 100644 --- a/docs-2.0-zh/nebula-studio/quick-start/st-ug-import-data.md +++ b/docs-2.0-zh/nebula-studio/quick-start/st-ug-import-data.md @@ -1,16 +1,16 @@ # 导入数据 -Studio 支持界面化地将 CSV 格式数据导入至{{nebula.name}}中。 +Studio 支持界面化地将 CSV 格式数据导入至 {{nebula.name}} 中。 ## 前提条件 导入数据之前,需要确认以下信息: -- {{nebula.name}}里已经创建 Schema。 +- {{nebula.name}} 里已经创建 Schema。 - CSV 文件符合 Schema 要求。 -- 账号拥有 GOD、ADMIN 或 DBA 权限。详情参见 [{{nebula.name}}内置角色](../../7.data-security/1.authentication/3.role-list.md)。 +- 账号拥有 GOD、ADMIN 或 DBA 权限。详情参见 [{{nebula.name}} 内置角色](../../7.data-security/1.authentication/3.role-list.md)。 ## 入口 @@ -58,7 +58,7 @@ Studio 支持界面化地将 CSV 格式数据导入至{{nebula.name}}中。 Studio 导入数据截屏 -2. 完成设置后,单击**导入**,输入{{nebula.name}}账号的密码并确认。 +2. 完成设置后,单击**导入**,输入 {{nebula.name}} 账号的密码并确认。 导入任务创建后,可以在**导入数据**页签内查看导入任务的进度,支持根据图空间筛选任务、编辑任务、查看日志、下载日志、重新导入、下载配置文件、删除任务等操作。 diff --git a/docs-2.0-zh/nebula-studio/quick-start/st-ug-plan-schema.md b/docs-2.0-zh/nebula-studio/quick-start/st-ug-plan-schema.md index fb9a52798b1..177100544fe 100644 --- a/docs-2.0-zh/nebula-studio/quick-start/st-ug-plan-schema.md +++ b/docs-2.0-zh/nebula-studio/quick-start/st-ug-plan-schema.md @@ -1,6 +1,6 @@ # 规划 Schema -在使用 Studio 之前,用户需要先根据{{nebula.name}}的要求规划 Schema(模式)。 +在使用 Studio 之前,用户需要先根据 {{nebula.name}} 的要求规划 Schema(模式)。 Schema 至少要包含以下要素: @@ -8,7 +8,7 @@ * Edge type,以及每种 Edge type 的属性。 -用户可以下载{{nebula.name}}示例数据集 [basketballplayer](https://docs-cdn.nebula-graph.com.cn/dataset/dataset.zip "点击下载") ,本文将通过该示例说明如何规划 Schema。 +用户可以下载 {{nebula.name}} 示例数据集 [basketballplayer](https://docs-cdn.nebula-graph.com.cn/dataset/dataset.zip "点击下载") ,本文将通过该示例说明如何规划 Schema。 下表列出了 Schema 要素。 diff --git a/docs-2.0-zh/nebula-studio/troubleshooting/st-ug-config-server-errors.md b/docs-2.0-zh/nebula-studio/troubleshooting/st-ug-config-server-errors.md index 43a698142e6..539a47820f9 100644 --- a/docs-2.0-zh/nebula-studio/troubleshooting/st-ug-config-server-errors.md +++ b/docs-2.0-zh/nebula-studio/troubleshooting/st-ug-config-server-errors.md @@ -10,34 +10,34 @@ ### 第 1 步。确认 **Host** 字段的格式是否正确 -必须填写{{nebula.name}}图数据库 Graph 服务的 IP 地址(`graph_server_ip`)和端口。如果未做修改,端口默认为 `9669`。即使{{nebula.name}}与 Studio 都部署在当前机器上,用户也必须使用本机 IP 地址,而不能使用 `127.0.0.1`、`localhost` 或者 `0.0.0.0`。 +必须填写 {{nebula.name}} 图数据库 Graph 服务的 IP 地址(`graph_server_ip`)和端口。如果未做修改,端口默认为 `9669`。即使 {{nebula.name}} 与 Studio 都部署在当前机器上,用户也必须使用本机 IP 地址,而不能使用 `127.0.0.1`、`localhost` 或者 `0.0.0.0`。 ### 第 2 步。确认 **用户名** 和 **密码** 是否正确 -如果{{nebula.name}}没有开启身份认证,用户可以填写任意字符串登录。 +如果 {{nebula.name}} 没有开启身份认证,用户可以填写任意字符串登录。 如果已经开启身份认证,用户必须使用分配的账号登录。 -### 第 3 步。确认{{nebula.name}}服务是否正常 +### 第 3 步。确认 {{nebula.name}} 服务是否正常 -检查{{nebula.name}}服务状态。关于查看服务的操作: +检查 {{nebula.name}} 服务状态。关于查看服务的操作: -- 如果在 Linux 服务器上通过编译部署的{{nebula.name}},参考[查看{{nebula.name}}服务](../../4.deployment-and-installation/2.compile-and-install-nebula-graph/deploy-nebula-graph-cluster.md "点击查看{{nebula.name}}内核文档")。 -- 如果使用 Docker Compose 部署和 RPM 部署的{{nebula.name}},参考[查看{{nebula.name}}服务状态和端口](../deploy-connect/st-ug-deploy.md "点击前往 GitHub 网站")。 +- 如果在 Linux 服务器上通过编译部署的 {{nebula.name}},参考[查看 {{nebula.name}} 服务](../../4.deployment-and-installation/2.compile-and-install-nebula-graph/deploy-nebula-graph-cluster.md "点击查看 {{nebula.name}} 内核文档")。 +- 如果使用 Docker Compose 部署和 RPM 部署的 {{nebula.name}},参考[查看 {{nebula.name}} 服务状态和端口](../deploy-connect/st-ug-deploy.md "点击前往 GitHub 网站")。 -如果{{nebula.name}}服务正常,进入第 4 步继续排查问题。否则,请重启{{nebula.name}}服务。 +如果 {{nebula.name}} 服务正常,进入第 4 步继续排查问题。否则,请重启 {{nebula.name}} 服务。 !!! note - 如果之前使用 `docker-compose up -d` 启动{{nebula.name}},必须运行 `docker-compose down` 命令停止{{nebula.name}}。 + 如果之前使用 `docker-compose up -d` 启动 {{nebula.name}},必须运行 `docker-compose down` 命令停止 {{nebula.name}} 。 ### 第 4 步。确认 Graph 服务的网络连接是否正常 -在 Studio 机器上运行命令(例如 `telnet 9669`)确认{{nebula.name}}的 Graph 服务网络连接是否正常。 +在 Studio 机器上运行命令(例如 `telnet 9669`)确认 {{nebula.name}} 的 Graph 服务网络连接是否正常。 如果连接失败,则按以下要求检查: -- 如果 Studio 与{{nebula.name}}在同一台机器上,检查端口是否已暴露。 -- 如果两者不在同一台机器上,检查{{nebula.name}}服务器的网络配置,例如,防火墙、网关以及端口。 +- 如果 Studio 与 {{nebula.name}} 在同一台机器上,检查端口是否已暴露。 +- 如果两者不在同一台机器上,检查 {{nebula.name}} 服务器的网络配置,例如,防火墙、网关以及端口。 -如果按上述步骤排查后仍无法连接{{nebula.name}}服务,请前往 [{{nebula.name}}官方论坛](https://discuss.nebula-graph.com.cn/ "点击前往{{nebula.name}}官方论坛")咨询。 +如果按上述步骤排查后仍无法连接 {{nebula.name}} 服务,请前往 [{{nebula.name}} 官方论坛](https://discuss.nebula-graph.com.cn/ "点击前往 {{nebula.name}} 官方论坛")咨询。 diff --git a/docs-2.0-zh/nebula-studio/troubleshooting/st-ug-connection-errors.md b/docs-2.0-zh/nebula-studio/troubleshooting/st-ug-connection-errors.md index 3a25b7d9e0f..30c7871c789 100644 --- a/docs-2.0-zh/nebula-studio/troubleshooting/st-ug-connection-errors.md +++ b/docs-2.0-zh/nebula-studio/troubleshooting/st-ug-connection-errors.md @@ -52,4 +52,4 @@ - 如果浏览器与 Studio 在同一台机器上,检查端口是否已暴露。 - 如果两者不在同一台机器上,检查 Studio 所在机器的网络配置,例如,防火墙、网关以及端口。 -如果按上述步骤排查后仍无法访问 Studio,请前往 [{{nebula.name}}官方论坛](https://discuss.nebula-graph.com.cn/ "点击前往{{nebula.name}}官方论坛")咨询。 +如果按上述步骤排查后仍无法访问 Studio,请前往 [{{nebula.name}} 官方论坛](https://discuss.nebula-graph.com.cn/ "点击前往 {{nebula.name}} 官方论坛")咨询。 diff --git a/docs-2.0-zh/nebula-studio/troubleshooting/st-ug-faq.md b/docs-2.0-zh/nebula-studio/troubleshooting/st-ug-faq.md index 697183e2d57..634182989b8 100644 --- a/docs-2.0-zh/nebula-studio/troubleshooting/st-ug-faq.md +++ b/docs-2.0-zh/nebula-studio/troubleshooting/st-ug-faq.md @@ -4,7 +4,7 @@ 如果发现无法使用某个功能,建议按以下步骤排除问题: -1. 确认{{nebula.name}}是最新版本。如果使用 Docker Compose 部署{{nebula.name}}数据库,建议运行 `docker-compose pull && docker-compose up -d` 拉取最新的 Docker 镜像,并启动容器。 +1. 确认 {{nebula.name}} 是最新版本。如果使用 Docker Compose 部署 {{nebula.name}} 数据库,建议运行 `docker-compose pull && docker-compose up -d` 拉取最新的 Docker 镜像,并启动容器。 2. 确认 Studio 是最新版本。详细信息参考[版本更新](../../20.appendix/release-notes/studio-release-note.md)。 3. 搜索[论坛](https://discuss.nebula-graph.com.cn/)或 GitHub 的 [nebula](https://github.com/vesoft-inc/nebula) 和 [nebula-web-docker](https://github.com/vesoft-inc/nebula-web-docker/issues) 项目,确认是否已经有类似的问题。 4. 如果上述操作均未解决问题,欢迎在论坛上提交问题。 diff --git a/docs-2.0-zh/overrides/main.html b/docs-2.0-zh/overrides/main.html index cc91493021a..4f831a97fe9 100644 --- a/docs-2.0-zh/overrides/main.html +++ b/docs-2.0-zh/overrides/main.html @@ -3,6 +3,13 @@ {% extends "base.html" %} -{% block announce %} +{% block outdated %} 从3.5.0版本开始的文档仅包含社区版功能。如需查看企业版文档,欢迎联系我们。 +{% endblock %} + +{% block announce %} +让 NebulaGraph 周边工具产品更好用, + + 填写问卷提交反馈,就能抽取现金红包! + {% endblock %} \ No newline at end of file diff --git a/docs-2.0-zh/reuse/source_connect-to-nebula-graph.md b/docs-2.0-zh/reuse/source_connect-to-nebula-graph.md index 817aea9588f..9dd94ea8fea 100644 --- a/docs-2.0-zh/reuse/source_connect-to-nebula-graph.md +++ b/docs-2.0-zh/reuse/source_connect-to-nebula-graph.md @@ -1,24 +1,24 @@ -本文介绍如何使用原生命令行客户端 NebulaGraph Console 连接{{nebula.name}}。 +本文介绍如何使用原生命令行客户端 NebulaGraph Console 连接 {{nebula.name}} 。 !!! caution - 首次连接到{{nebula.name}}后,必须先[注册 Storage 服务](https://docs.nebula-graph.com.cn/{{nebula.release}}/2.quick-start/3.quick-start-on-premise/3.1add-storage-hosts/),才能正常查询数据。 + 首次连接到 {{nebula.name}} 后,必须先[注册 Storage 服务](https://docs.nebula-graph.com.cn/{{nebula.release}}/2.quick-start/3.quick-start-on-premise/3.1add-storage-hosts/),才能正常查询数据。 -{{nebula.name}}支持多种类型的客户端,包括命令行客户端、可视化界面客户端和流行编程语言客户端。详情参见[客户端列表](https://docs.nebula-graph.com.cn/{{nebula.release}}/14.client/1.nebula-client/)。 + {{nebula.name}} 支持多种类型的客户端,包括命令行客户端、可视化界面客户端和流行编程语言客户端。详情参见[客户端列表](https://docs.nebula-graph.com.cn/{{nebula.release}}/14.client/1.nebula-client/)。 ## 前提条件 -- {{nebula.name}}服务已[启动](https://docs.nebula-graph.com.cn/{{nebula.release}}/4.deployment-and-installation/manage-service/)。 +- {{nebula.name}} 服务已[启动](https://docs.nebula-graph.com.cn/{{nebula.release}}/4.deployment-and-installation/manage-service/)。 -- 运行 NebulaGraph Console 的机器和运行{{nebula.name}}的服务器网络互通。 +- 运行 NebulaGraph Console 的机器和运行 {{nebula.name}} 的服务器网络互通。 -- NebulaGraph Console 的版本兼容{{nebula.name}}的版本。 +- NebulaGraph Console 的版本兼容 {{nebula.name}} 的版本。 !!! note - 版本相同的 NebulaGraph Console 和{{nebula.name}}兼容程度最高,版本不同的 NebulaGraph Console 连接{{nebula.name}}时,可能会有兼容问题,或者无法连接并报错`incompatible version between client and server`。 + 版本相同的 NebulaGraph Console 和 {{nebula.name}} 兼容程度最高,版本不同的 NebulaGraph Console 连接 {{nebula.name}} 时,可能会有兼容问题,或者无法连接并报错`incompatible version between client and server`。 ## 操作步骤 @@ -49,7 +49,7 @@ 5. 在命令行界面中,切换工作目录至 nebula-console 文件所在目录。 -6. 执行如下命令连接{{nebula.name}}。 +6. 执行如下命令连接 {{nebula.name}} 。 - Linux 或 macOS @@ -70,14 +70,14 @@ | 参数 | 说明 | | - | - | | `-h/-help` | 显示帮助菜单。 | - | `-addr/-address` | 设置要连接的 Graph 服务的 IP 地址。默认地址为 127.0.0.1。| + | `-addr/-address` | 设置要连接的 Graph 服务的 IP 或主机名。默认地址为 127.0.0.1。| | `-P/-port` | 设置要连接的 Graph 服务的端口。默认端口为 9669。| - | `-u/-user` | 设置{{nebula.name}}账号的用户名。未启用身份认证时,可以使用任意已存在的用户名(默认为`root`)。 | + | `-u/-user` | 设置 {{nebula.name}} 账号的用户名。未启用身份认证时,可以使用任意已存在的用户名(默认为`root`)。 | | `-p/-password` | 设置用户名对应的密码。未启用身份认证时,密码可以填写任意字符。 | | `-t/-timeout` | 设置整数类型的连接超时时间。单位为毫秒,默认值为 120。 | | `-e/-eval` | 设置字符串类型的 nGQL 语句。连接成功后会执行一次该语句并返回结果,然后自动断开连接。 | | `-f/-file` | 设置存储 nGQL 语句的文件的路径。连接成功后会执行该文件内的 nGQL 语句并返回结果,执行完毕后自动断开连接。 | - | `-enable_ssl` | 连接{{nebula.name}}时使用 SSL 加密。 | + | `-enable_ssl` | 连接 {{nebula.name}} 时使用 SSL 加密。 | | `-ssl_root_ca_path` | 指定 CA 证书的存储路径。 | | `-ssl_cert_path` | 指定 CRT 证书的存储路径。 | | `-ssl_private_key_path` | 指定私钥文件的存储路径。 | diff --git a/docs-2.0-zh/reuse/source_create_instance_aliyun.md b/docs-2.0-zh/reuse/source_create_instance_aliyun.md index 4f067568e62..7de1e1d3f28 100644 --- a/docs-2.0-zh/reuse/source_create_instance_aliyun.md +++ b/docs-2.0-zh/reuse/source_create_instance_aliyun.md @@ -18,15 +18,15 @@ NebulaGraph Cloud 阿里云版支持免费试用和付费使用,二者的详 | 云资源归属 | 阿里云官方账号 | 用户账号 | | 云资源费用 | **阿里云承担** | 用户承担 | | 云资源使用时长 | 30 天(不可续期) | 用户创建实例时选择 | -|{{nebula.name}}许可证费用 | **试用期内免费** | 用户承担 | -|{{nebula.name}}服务许可证有效期 | 30 天 | 用户创建实例时选择 | +| {{nebula.name}} 许可证费用 | **试用期内免费** | 用户承担 | +| {{nebula.name}} 服务许可证有效期 | 30 天 | 用户创建实例时选择 | | 许可证过期后数据是否保留 | 否(因云资源会同时到期) | 是 | | 云资源到期后数据是否保留 | 否 | 否 | | 数据盘快照费用 | **阿里云承担** | 用户承担(可关闭功能) | ## 数据备份 -在创建服务实例时,系统会默认开启数据盘自动快照备份,用于周期性备份{{nebula.name}}数据。 +在创建服务实例时,系统会默认开启数据盘自动快照备份,用于周期性备份 {{nebula.name}} 数据。 创建付费版服务实例前需[开通快照](https://help.aliyun.com/document_detail/108381.html)。免费试用实例使用的是阿里云官方账号下的资源,已开通快照,无需用户手动开通。 @@ -42,7 +42,7 @@ NebulaGraph Cloud 阿里云版支持如下套餐版本。 | 套餐版本 | 说明 | | - | - | -| 基础版 | 将所有{{nebula.name}}服务节点部署在 1 台 ECS 服务器上。 | +| 基础版 | 将所有 {{nebula.name}} 服务节点部署在 1 台 ECS 服务器上。 | | 标准版 | 将 Graph 服务和 Storage 服务分别部署在不同的 ECS 服务器上,每个服务都是单节点(1 台 ECS)。将生态工具混合部署在 1 台 ECS 服务器上。 | | 高可用版 | 将 Graph 服务和 Storage 服务分别部署在不同的 ECS 服务器上,每个服务都包含 3 节点(3 台 ECS)。将生态工具混合部署在 1 台 ECS 服务器上。 | @@ -52,9 +52,9 @@ NebulaGraph Cloud 阿里云版支持如下套餐版本。 1. 登录[阿里云控制台](https://home.console.aliyun.com/home/dashboard/ProductAndService)。 -2. 打开云市场的 [{{nebula.name}}产品页](https://market.aliyun.com/products/56024006/cmgj00059955.html?#sku=yuncode5395500004)。 +2. 打开云市场的 [{{nebula.name}} 产品页](https://market.aliyun.com/products/56024006/cmgj00059955.html?#sku=yuncode5395500004)。 -3. 选择**套餐版本**和**购买时长**(即{{nebula.name}}服务的许可证有效期),并单击**立即购买**。 +3. 选择**套餐版本**和**购买时长**(即 {{nebula.name}} 服务的许可证有效期),并单击**立即购买**。 !!! caution @@ -64,7 +64,7 @@ NebulaGraph Cloud 阿里云版支持如下套餐版本。 !!! note - 改变模板会改变之前选择的套餐版本,软件费用({{nebula.name}}许可证费用)和创建服务实例需要的资源也会改变。 + 改变模板会改变之前选择的套餐版本,软件费用( {{nebula.name}} 许可证费用)和创建服务实例需要的资源也会改变。 5. (可选)设置**服务实例名称**。默认值为服务实例 ID。 @@ -76,7 +76,7 @@ NebulaGraph Cloud 阿里云版支持如下套餐版本。 - **包年包月**:先付费后使用。详情参见[包年包月](https://help.aliyun.com/document_detail/56220.html)。选择包年包月模式需要指定**购买时长周期**和**购买时长**。**购买时长周期**当前仅支持 **Month**,即按月购买。 -8. 在 **{{nebula.name}}配置**区域,完成数据盘和 ECS 服务器密码设置。 +8. 在 ** {{nebula.name}} 配置**区域,完成数据盘和 ECS 服务器密码设置。 9. 在**基础设施配置**区域,完成以下设置。 @@ -119,9 +119,9 @@ NebulaGraph Cloud 阿里云版支持如下套餐版本。 1. 登录阿里云计算巢[推荐服务](http://c.nxw.so/bC0C0 "https://computenest.console.aliyun.com/user/cn-hangzhou/recommendService")页面,搜索 **NebulaGraph**。 -2. 在 **{{nebula.name}}集群版**卡片上,单击**免费试用**。 +2. 在 ** {{nebula.name}} 集群版**卡片上,单击**免费试用**。 -3. 系统会为首次创建{{nebula.name}}服务实例的用户弹出申请对话框。在**申请权限**对话框中填写申请人信息。带有红色星号(*)的为必填项。 +3. 系统会为首次创建 {{nebula.name}} 服务实例的用户弹出申请对话框。在**申请权限**对话框中填写申请人信息。带有红色星号(*)的为必填项。 !!! note @@ -131,7 +131,7 @@ NebulaGraph Cloud 阿里云版支持如下套餐版本。 5. 选择要创建实例的**地域**。 -6. 在 **{{nebula.name}}配置**区域,完成数据盘和 ECS 服务器密码设置。 +6. 在 ** {{nebula.name}} 配置**区域,完成数据盘和 ECS 服务器密码设置。 7. 在**基础设施配置**区域,选择**交换机可用区**。 @@ -155,4 +155,4 @@ Q:服务实例的状态显示为**部署失败**怎么处理? 1. 如果使用 RAM 账号创建的实例,确认为该账号授予了本文前提条件中指定的权限。 2. 如果权限符合要求,[删除](https://help.aliyun.com/document_detail/290837.html)创建失败的实例,尝试重新创建。 -3. 如果仍然创建失败,到 [{{nebula.name}}论坛](https://discuss.nebula-graph.com.cn/)寻求帮助。 +3. 如果仍然创建失败,到 [{{nebula.name}} 论坛](https://discuss.nebula-graph.com.cn/)寻求帮助。 diff --git a/docs-2.0-zh/reuse/source_install-nebula-graph-by-rpm-or-deb.md b/docs-2.0-zh/reuse/source_install-nebula-graph-by-rpm-or-deb.md index e4d45483d2d..c4e2fc791f1 100644 --- a/docs-2.0-zh/reuse/source_install-nebula-graph-by-rpm-or-deb.md +++ b/docs-2.0-zh/reuse/source_install-nebula-graph-by-rpm-or-deb.md @@ -1,8 +1,8 @@ -RPM 和 DEB 是 Linux 系统下常见的两种安装包格式,本文介绍如何使用 RPM 或 DEB 文件在一台机器上快速安装{{nebula.name}}。 +RPM 和 DEB 是 Linux 系统下常见的两种安装包格式,本文介绍如何使用 RPM 或 DEB 文件在一台机器上快速安装 {{nebula.name}} 。 !!! note - 部署{{nebula.name}}集群的方式参见[使用 RPM/DEB 包部署集群](https://docs.nebula-graph.com.cn/{{nebula.release}}/2.quick-start/3.quick-start-on-premise/3.1add-storage-hosts/)。 + 部署 {{nebula.name}} 集群的方式参见[使用 RPM/DEB 包部署集群](https://docs.nebula-graph.com.cn/{{nebula.release}}/2.quick-start/3.quick-start-on-premise/3.1add-storage-hosts/)。 ## 前提条件 @@ -17,9 +17,9 @@ RPM 和 DEB 是 Linux 系统下常见的两种安装包格式,本文介绍如 !!! note - - 当前仅支持在 Linux 系统下安装{{nebula.name}},且仅支持 CentOS 7.x、CentOS 8.x、Ubuntu 16.04、Ubuntu 18.04、Ubuntu 20.04 操作系统。 + - 当前仅支持在 Linux 系统下安装 {{nebula.name}},且仅支持 CentOS 7.x、CentOS 8.x、Ubuntu 16.04、Ubuntu 18.04、Ubuntu 20.04 操作系统。 - - 如果用户使用的是国产化的 Linux 操作系统,请[安装企业版{{nebula.name}}](https://yueshu.com.cn/contact)。 + - 如果用户使用的是国产化的 Linux 操作系统,请[安装企业版 {{nebula.name}} ](https://yueshu.com.cn/contact)。 @@ -101,7 +101,7 @@ RPM 和 DEB 是 Linux 系统下常见的两种安装包格式,本文介绍如 -## 安装{{nebula.name}} +## 安装 {{nebula.name}} - 安装 RPM 包 @@ -109,7 +109,7 @@ RPM 和 DEB 是 Linux 系统下常见的两种安装包格式,本文介绍如 $ sudo rpm -ivh --prefix= ``` - `--prefix`为可选项,用于指定安装路径。如不设置,系统会将{{nebula.name}}安装到默认路径`/usr/local/nebula/`。 + `--prefix`为可选项,用于指定安装路径。如不设置,系统会将 {{nebula.name}} 安装到默认路径`/usr/local/nebula/`。 例如,要在默认路径下安装{{nebula.release}}版本的 RPM 包,运行如下命令: @@ -128,7 +128,7 @@ RPM 和 DEB 是 Linux 系统下常见的两种安装包格式,本文介绍如 ``` !!! note - 使用 DEB 包安装{{nebula.name}}时不支持自定义安装路径。默认安装路径为`/usr/local/nebula/`。 + 使用 DEB 包安装 {{nebula.name}} 时不支持自定义安装路径。默认安装路径为`/usr/local/nebula/`。 例如安装{{nebula.release}}版本的 DEB 包: @@ -136,14 +136,9 @@ RPM 和 DEB 是 Linux 系统下常见的两种安装包格式,本文介绍如 ```bash sudo dpkg -i nebula-graph-{{nebula.release}}.ubuntu1804.amd64.deb ``` - - - - - ## 后续操作 -- [启动{{nebula.name}}](https://docs.nebula-graph.com.cn/{{nebula.release}}/2.quick-start/3.quick-start-on-premise/5.start-stop-service/) -- [连接{{nebula.name}}](https://docs.nebula-graph.com.cn/{{nebula.release}}/2.quick-start/3.quick-start-on-premise/3.connect-to-nebula-graph/) +- [启动 {{nebula.name}} ](https://docs.nebula-graph.com.cn/{{nebula.release}}/2.quick-start/3.quick-start-on-premise/5.start-stop-service/) +- [连接 {{nebula.name}} ](https://docs.nebula-graph.com.cn/{{nebula.release}}/2.quick-start/3.quick-start-on-premise/3.connect-to-nebula-graph/) diff --git a/docs-2.0-zh/reuse/source_manage-service.md b/docs-2.0-zh/reuse/source_manage-service.md index 9ea52cb4208..7d16a88dae2 100644 --- a/docs-2.0-zh/reuse/source_manage-service.md +++ b/docs-2.0-zh/reuse/source_manage-service.md @@ -1,6 +1,6 @@ -{{nebula.name}}支持通过脚本管理服务。 + {{nebula.name}} 支持通过脚本管理服务。 @@ -38,7 +38,7 @@ $ sudo /usr/local/nebula/scripts/nebula.service -## 启动{{nebula.name}}服务 +## 启动 {{nebula.name}} 服务 执行如下命令启动服务: @@ -55,13 +55,13 @@ $ sudo /usr/local/nebula/scripts/nebula.service start all -## 停止{{nebula.name}}服务 +## 停止 {{nebula.name}} 服务 !!! danger 请勿使用`kill -9` 命令强制终止进程,否则可能较小概率出现数据丢失。 -执行如下命令停止{{nebula.name}}服务: +执行如下命令停止 {{nebula.name}} 服务: ```bash $ sudo /usr/local/nebula/scripts/nebula.service stop all @@ -75,15 +75,15 @@ $ sudo /usr/local/nebula/scripts/nebula.service stop all -## 查看{{nebula.name}}服务 +## 查看 {{nebula.name}} 服务 -执行如下命令查看{{nebula.name}}服务状态: +执行如下命令查看 {{nebula.name}} 服务状态: ```bash $ sudo /usr/local/nebula/scripts/nebula.service status all ``` -- 如果返回如下结果,表示{{nebula.name}}服务正常运行。 +- 如果返回如下结果,表示 {{nebula.name}} 服务正常运行。 ```bash [INFO] nebula-metad(33fd35e): Running as 29020, Listening on 9559 @@ -95,10 +95,10 @@ $ sudo /usr/local/nebula/scripts/nebula.service status all !!! note - 正常启动{{nebula.name}}后,`nebula-storaged`进程的端口显示红色。这是因为`nebula-storaged`在启动流程中会等待`nebula-metad`添加当前 Storage 服务,当前 Storage 服务收到 Ready 信号后才会正式启动服务。从 3.0.0 版本开始,在配置文件中添加的 Storage 节点无法直接读写,配置文件的作用仅仅是将 Storage 节点注册至 Meta 服务中。必须使用`ADD HOSTS`命令后,才能正常读写 Storage 节点。更多信息,参见[管理 Storage 主机](https://docs.nebula-graph.com.cn/{{nebula.release}}/4.deployment-and-installation/manage-storage-host/)。 + 正常启动 {{nebula.name}} 后,`nebula-storaged`进程的端口显示红色。这是因为`nebula-storaged`在启动流程中会等待`nebula-metad`添加当前 Storage 服务,当前 Storage 服务收到 Ready 信号后才会正式启动服务。从 3.0.0 版本开始,在配置文件中添加的 Storage 节点无法直接读写,配置文件的作用仅仅是将 Storage 节点注册至 Meta 服务中。必须使用`ADD HOSTS`命令后,才能正常读写 Storage 节点。更多信息,参见[管理 Storage 主机](https://docs.nebula-graph.com.cn/{{nebula.release}}/4.deployment-and-installation/manage-storage-host/)。 -- 如果返回类似如下结果,表示{{nebula.name}}服务异常,可以根据异常服务信息进一步排查,或者在 [{{nebula.name}}社区](https://discuss.nebula-graph.com.cn/)寻求帮助。 +- 如果返回类似如下结果,表示 {{nebula.name}} 服务异常,可以根据异常服务信息进一步排查,或者在 [{{nebula.name}} 社区](https://discuss.nebula-graph.com.cn/)寻求帮助。 ```bash [INFO] nebula-metad: Running as 25600, Listening on 9559 @@ -108,8 +108,8 @@ $ sudo /usr/local/nebula/scripts/nebula.service status all -{{nebula.name}}服务由 Meta 服务、Graph 服务和 Storage 服务共同提供,这三种服务的配置文件都保存在安装目录的`etc`目录内,默认路径为`/usr/local/nebula/etc/`,用户可以检查相应的配置文件排查问题。 + {{nebula.name}} 服务由 Meta 服务、Graph 服务和 Storage 服务共同提供,这三种服务的配置文件都保存在安装目录的`etc`目录内,默认路径为`/usr/local/nebula/etc/`,用户可以检查相应的配置文件排查问题。 ## 下一步 -- [连接{{nebula.name}}](https://docs.nebula-graph.com.cn/{{nebula.release}}/2.quick-start/3.quick-start-on-premise/3.connect-to-nebula-graph/) +- [连接 {{nebula.name}} ](https://docs.nebula-graph.com.cn/{{nebula.release}}/2.quick-start/3.quick-start-on-premise/3.connect-to-nebula-graph/) diff --git a/docs-2.0-zh/reuse/source_ngql_for_quick_start.md b/docs-2.0-zh/reuse/source_ngql_for_quick_start.md index 1c3399bcfe8..7cc4e9b8c4e 100644 --- a/docs-2.0-zh/reuse/source_ngql_for_quick_start.md +++ b/docs-2.0-zh/reuse/source_ngql_for_quick_start.md @@ -2,11 +2,11 @@ ### 图空间和 Schema -一个{{nebula.name}}实例由一个或多个图空间组成。每个图空间都是物理隔离的,用户可以在同一个实例中使用不同的图空间存储不同的数据集。 +一个 {{nebula.name}} 实例由一个或多个图空间组成。每个图空间都是物理隔离的,用户可以在同一个实例中使用不同的图空间存储不同的数据集。 -![{{nebula.name}} and graph spaces](https://docs-cdn.nebula-graph.com.cn/docs-2.0/2.quick-start/nebula-graph-instance-and-graph-spaces.png) +![{{nebula.name}} and graph spaces](https://docs-cdn.nebula-graph.com.cn/docs-2.0/2.quick-start/nebula-graph-instance-and-graph-spaces.png) -为了在图空间中插入数据,需要为图数据库定义一个 Schema。{{nebula.name}}的 Schema 是由如下几部分组成。 +为了在图空间中插入数据,需要为图数据库定义一个 Schema。 {{nebula.name}} 的 Schema 是由如下几部分组成。 | 组成部分 | 说明| | :--- | :--- | @@ -25,7 +25,7 @@ !!! caution - 在{{nebula.name}}中,下列创建和修改操作是异步实现的。要在**下一个**心跳周期之后才能生效,否则访问会报错。为确保数据同步,后续操作能顺利进行,请等待 2 个心跳周期(20 秒)。 + 在 {{nebula.name}} 中,下列创建和修改操作是异步实现的。要在**下一个**心跳周期之后才能生效,否则访问会报错。为确保数据同步,后续操作能顺利进行,请等待 2 个心跳周期(20 秒)。 - `CREATE SPACE` - `CREATE TAG` @@ -68,7 +68,7 @@ nebula> SHOW SPACES; ``` -- 选择数据库 +- 选择已创建的图空间 ```ngql USE ; @@ -230,7 +230,7 @@ nebula> CREATE EDGE serve(start_year int, end_year int); - [LOOKUP](https://docs.nebula-graph.com.cn/{{nebula.release}}/3.ngql-guide/7.general-query-statements/5.lookup/) 语句是基于[索引](#_12)的,和`WHERE`子句一起使用,查找符合特定条件的数据。 -- [MATCH](https://docs.nebula-graph.com.cn/{{nebula.release}}/3.ngql-guide/7.general-query-statements/2.match/) 语句是查询图数据最常用的,可以灵活的描述各种图模式,但是它依赖[索引](#_12)去匹配{{nebula.name}}中的数据模型,性能也还需要调优。 +- [MATCH](https://docs.nebula-graph.com.cn/{{nebula.release}}/3.ngql-guide/7.general-query-statements/2.match/) 语句是查询图数据最常用的,可以灵活的描述各种图模式,但是它依赖[索引](#_12)去匹配 {{nebula.name}} 中的数据模型,性能也还需要调优。 ### nGQL 语法 diff --git a/docs-2.0-zh/stylesheets/extra.css b/docs-2.0-zh/stylesheets/extra.css index 861837cd982..6caf8e684bc 100644 --- a/docs-2.0-zh/stylesheets/extra.css +++ b/docs-2.0-zh/stylesheets/extra.css @@ -9,9 +9,21 @@ div.md-version { /*自定义announce banner的字体和背景颜色*/ aside.md-banner { -color: rgba(0, 0, 0, 0.714); -background-color: rgba(169, 241, 62, 0.541); -} + color: rgba(0, 0, 0, 0.714); + background-color: rgba(146, 228, 24, 0.541); + } + +/* 自定义 annnoucement bar 和 outdate bar的height */ +div.md-banner__inner { + margin: 0.2rem auto; +} + +/* 自定义 outdated bar 的颜色 */ +aside.md-banner--warning { + color: rgba(0, 0, 0, 0.714); + background-color: rgba(146, 228, 24, 0.541); + } + /* 黑夜主题色 */ :root{ diff --git a/docs-2.0-zh/synchronization-and-migration/2.balance-syntax.md b/docs-2.0-zh/synchronization-and-migration/2.balance-syntax.md index 325998c7d4d..90608808675 100644 --- a/docs-2.0-zh/synchronization-and-migration/2.balance-syntax.md +++ b/docs-2.0-zh/synchronization-and-migration/2.balance-syntax.md @@ -1,6 +1,6 @@ # 负载均衡 -我们可以提交任务让{{nebula.name}}的 Storage 服务实现负载均衡。详细示例请参见 [Storage 负载均衡](../8.service-tuning/load-balance.md)。 +我们可以提交任务让 {{nebula.name}} 的 Storage 服务实现负载均衡。详细示例请参见 [Storage 负载均衡](../8.service-tuning/load-balance.md)。 !!! note diff --git a/mkdocs.yml b/mkdocs.yml index 137b144c6ee..84a50aebe5f 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -63,6 +63,7 @@ theme: # enable code actions - content.action.edit - content.code.copy + - announce.dismiss # zh.begin language: 'zh' # zh.end @@ -203,11 +204,11 @@ extra: base220: 2.2.1 base300: 3.0.0 release: 3.8.0 - tag: v3.8.0 + tag: v3.9.0 exchange: - release: 3.6.0 - branch: release-3.6 - tag: v3.6.0 + release: 3.7.0 + branch: release-3.7 + tag: v3.7.0 importer: release: 4.1.0 branch: release-4.1 @@ -265,8 +266,8 @@ extra: branch: release-1.2 tag: v1.2.0 operator: - release: 1.7.1 - tag: v1.7.1 + release: 1.7.5 + tag: v1.7.5 branch: release-1.7 upgrade_from: 3.5.0 upgrade_to: 3.6.0 @@ -329,16 +330,10 @@ nav: - Type conversion: 3.ngql-guide/3.data-types/9.type-conversion.md - Geography: 3.ngql-guide/3.data-types/10.geography.md - - Variables and composite queries: - - Composite queries: 3.ngql-guide/4.variable-and-composite-queries/1.composite-queries.md - - User-defined variables: 3.ngql-guide/4.variable-and-composite-queries/2.user-defined-variables.md - - Property reference: 3.ngql-guide/4.variable-and-composite-queries/3.property-reference.md - - Operators: - Comparison: 3.ngql-guide/5.operators/1.comparison.md - Boolean: 3.ngql-guide/5.operators/2.boolean.md - Pipe: 3.ngql-guide/5.operators/4.pipe.md - - Property reference: 3.ngql-guide/5.operators/5.property-reference.md - Set: 3.ngql-guide/5.operators/6.set.md - String: 3.ngql-guide/5.operators/7.string.md - List: 3.ngql-guide/5.operators/8.list.md @@ -359,6 +354,7 @@ nav: # - User-defined functions: 3.ngql-guide/6.functions-and-expressions/9.user-defined-functions.md - General queries statements: + - Overview: 3.ngql-guide/7.general-query-statements/1.general-query-statements-overview.md - MATCH: 3.ngql-guide/7.general-query-statements/2.match.md - OPTIONAL MATCH: 3.ngql-guide/7.general-query-statements/optional-match.md - LOOKUP: 3.ngql-guide/7.general-query-statements/5.lookup.md @@ -383,6 +379,9 @@ nav: - SHOW SESSIONS: 3.ngql-guide/7.general-query-statements/6.show/17.show-sessions.md - SHOW QUERIES: 3.ngql-guide/7.general-query-statements/6.show/18.show-queries.md - SHOW META LEADER: 3.ngql-guide/7.general-query-statements/6.show/19.show-meta-leader.md + - FIND PATH: 3.ngql-guide/7.general-query-statements/6.find-path.md + - GET SUBGRAPH: 3.ngql-guide/7.general-query-statements/7.get-subgraph.md + - Clauses and options: - GROUP BY: 3.ngql-guide/8.clauses-and-options/group-by.md @@ -395,7 +394,12 @@ nav: - YIELD: 3.ngql-guide/8.clauses-and-options/yield.md - WITH: 3.ngql-guide/8.clauses-and-options/with.md - UNWIND: 3.ngql-guide/8.clauses-and-options/unwind.md -# - INNER JOIN: 3.ngql-guide/8.clauses-and-options/joins.md + - INNER JOIN: 3.ngql-guide/8.clauses-and-options/joins.md + + - Variables and composite queries: + - Composite queries: 3.ngql-guide/4.variable-and-composite-queries/1.composite-queries.md + - User-defined variables: 3.ngql-guide/4.variable-and-composite-queries/2.user-defined-variables.md + - Property references: 3.ngql-guide/4.variable-and-composite-queries/3.property-reference.md - Space statements: - CREATE SPACE: 3.ngql-guide/9.space-statements/1.create-space.md @@ -450,9 +454,6 @@ nav: - Deploy Raft Listener cluster: 4.deployment-and-installation/6.deploy-text-based-index/3.deploy-listener.md - Search with full-text index: 3.ngql-guide/15.full-text-index-statements/1.search-with-text-based-index.md - - Subgraph and path: - - GET SUBGRAPH: 3.ngql-guide/16.subgraph-and-path/1.get-subgraph.md - - FIND PATH: 3.ngql-guide/16.subgraph-and-path/2.find-path.md - Query tuning and terminating statements: - EXPLAIN and PROFILE: 3.ngql-guide/17.query-tuning-statements/1.explain-and-profile.md @@ -539,8 +540,10 @@ nav: - Import data from JDBC: import-export/nebula-exchange/use-exchange/ex-ug-import-from-jdbc.md - Import data from SST files: import-export/nebula-exchange/use-exchange/ex-ug-import-from-sst.md - Exchange FAQ: import-export/nebula-exchange/ex-ug-FAQ.md - - Spark Connector: import-export/nebula-spark-connector.md - - Flink Connector: import-export/nebula-flink-connector.md + + - Connectors: + - NebulaGraph Spark Connector: connector/nebula-spark-connector.md + - NebulaGraph Flink Connector: connector/nebula-flink-connector.md - Best practices: - Compaction: 8.service-tuning/compaction.md @@ -593,24 +596,35 @@ nav: - Monitoring metrics: nebula-dashboard/6.monitor-parameter.md - NebulaGraph Operator: - - What is NebulaGraph Operator: nebula-operator/1.introduction-to-nebula-operator.md - - Overview of using NebulaGraph Operator: nebula-operator/6.get-started-with-operator.md - - Deploy NebulaGraph Operator: nebula-operator/2.deploy-nebula-operator.md - - Deploy clusters: - - Deploy clusters with Kubectl: nebula-operator/3.deploy-nebula-graph-cluster/3.1create-cluster-with-kubectl.md - - Deploy clusters with Helm: nebula-operator/3.deploy-nebula-graph-cluster/3.2create-cluster-with-helm.md - - Connect to NebulaGraph databases: nebula-operator/4.connect-to-nebula-graph-service.md - - Configure clusters: - - Customize parameters for a NebulaGraph cluster: nebula-operator/8.custom-cluster-configurations/8.1.custom-conf-parameter.md - - Storage: - - Dynamically expand persistent volumes: nebula-operator/8.custom-cluster-configurations/storage/8.6.dynamic-expand-pv.md - - Reclaim PVs: nebula-operator/8.custom-cluster-configurations/storage/8.2.pv-reclaim.md - - Manage cluster logs: nebula-operator/8.custom-cluster-configurations/8.4.manage-running-logs.md - - Enable admission control: nebula-operator/8.custom-cluster-configurations/8.6.admission-control.md - - Upgrade NebulaGraph clusters: nebula-operator/9.upgrade-nebula-cluster.md - - Specify a rolling update strategy: nebula-operator/11.rolling-update-strategy.md - - Self-healing: nebula-operator/5.operator-failover.md - - FAQ: nebula-operator/7.operator-faq.md + - What is NebulaGraph Operator: k8s-operator/1.introduction-to-nebula-operator.md + - Getting started: + - Install NebulaGraph Operator: k8s-operator/2.get-started/2.1.install-operator.md + - Create a NebulaGraph cluster: k8s-operator/2.get-started/2.3.create-cluster.md + - Connect to a NebulaGraph cluster: k8s-operator/2.get-started/2.4.connect-to-cluster.md + - NebulaGraph Operator management: + - Customize installation defaults: k8s-operator/3.operator-management/3.1.customize-installation.md + - Update NebulaGraph Operator: k8s-operator/3.operator-management/3.2.update-operator.md + - Upgrade NebulaGraph Operator: k8s-operator/3.operator-management/3.3.upgrade-operator.md + - Uninstall NebulaGraph Operator: k8s-operator/3.operator-management/3.4.unistall-operator.md + - Cluster administration: + - Deployment: + - Install clusters: k8s-operator/4.cluster-administration/4.1.installation/4.1.1.cluster-install.md + - Upgrade clusters: k8s-operator/4.cluster-administration/4.1.installation/4.1.2.cluster-upgrade.md + - Uninstall clusters: k8s-operator/4.cluster-administration/4.1.installation/4.1.3.cluster-uninstall.md + - Customize cluster configurations: k8s-operator/4.cluster-administration/4.2.configuration.md + - Storage management: +# - Use local PV: k8s-operator/4.cluster-administration/4.4.storage-management/4.4.1.use-local-pv.md + - Dynamically expand persistent volumes: k8s-operator/4.cluster-administration/4.4.storage-management/4.4.2.pv-expansion.md + - Configure PV reclaim: k8s-operator/4.cluster-administration/4.4.storage-management/4.4.3.configure-pv-reclaim.md + - Log management: k8s-operator/4.cluster-administration/4.5.logging.md + - Security: + - Enable admission control: k8s-operator/4.cluster-administration/4.7.security/4.7.2.enable-admission-control.md + - HA and balancing: + - Self-healing overview: k8s-operator/4.cluster-administration/4.8.ha-and-balancing/4.8.1.self-healing.md + - Advanced: + - Optimize leader transfer in rolling updates: k8s-operator/4.cluster-administration/4.9.advanced/4.9.1.rolling-update-strategy.md +# - Restart clusters: k8s-operator/4.cluster-administration/4.9.advanced/4.9.2.restart-cluster.md + - FAQ: k8s-operator/5.FAQ.md - Graph computing: - NebulaGraph Algorithm: graph-computing/nebula-algorithm.md @@ -677,16 +691,10 @@ nav: - 类型转换: 3.ngql-guide/3.data-types/9.type-conversion.md - 地理空间: 3.ngql-guide/3.data-types/10.geography.md - - 变量和复合查询: - - 复合查询: 3.ngql-guide/4.variable-and-composite-queries/1.composite-queries.md - - 自定义变量: 3.ngql-guide/4.variable-and-composite-queries/2.user-defined-variables.md - - 引用属性: 3.ngql-guide/4.variable-and-composite-queries/3.property-reference.md - - 运算符: - 比较符: 3.ngql-guide/5.operators/1.comparison.md - 布尔符: 3.ngql-guide/5.operators/2.boolean.md - 管道符: 3.ngql-guide/5.operators/4.pipe.md - - 属性引用符: 3.ngql-guide/5.operators/5.property-reference.md - 集合运算符: 3.ngql-guide/5.operators/6.set.md - 字符串运算符: 3.ngql-guide/5.operators/7.string.md - 列表运算符: 3.ngql-guide/5.operators/8.list.md @@ -706,6 +714,7 @@ nav: - geo 函数: 3.ngql-guide/6.functions-and-expressions/14.geo.md # - 自定义函数: 3.ngql-guide/6.functions-and-expressions/9.user-defined-functions.md - 通用查询语句: + - 查询语句概述: 3.ngql-guide/7.general-query-statements/1.general-query-statements-overview.md - MATCH: 3.ngql-guide/7.general-query-statements/2.match.md - OPTIONAL MATCH: 3.ngql-guide/7.general-query-statements/optional-match.md - LOOKUP: 3.ngql-guide/7.general-query-statements/5.lookup.md @@ -729,6 +738,8 @@ nav: - SHOW SESSIONS: 3.ngql-guide/7.general-query-statements/6.show/17.show-sessions.md - SHOW QUERIES: 3.ngql-guide/7.general-query-statements/6.show/18.show-queries.md - SHOW META LEADER: 3.ngql-guide/7.general-query-statements/6.show/19.show-meta-leader.md + - FIND PATH: 3.ngql-guide/7.general-query-statements/6.find-path.md + - GET SUBGRAPH: 3.ngql-guide/7.general-query-statements/7.get-subgraph.md - 子句和选项: - GROUP BY: 3.ngql-guide/8.clauses-and-options/group-by.md @@ -743,6 +754,11 @@ nav: - UNWIND: 3.ngql-guide/8.clauses-and-options/unwind.md # - INNER JOIN: 3.ngql-guide/8.clauses-and-options/joins.md + - 变量和复合查询: + - 复合查询: 3.ngql-guide/4.variable-and-composite-queries/1.composite-queries.md + - 自定义变量: 3.ngql-guide/4.variable-and-composite-queries/2.user-defined-variables.md + - 引用属性: 3.ngql-guide/4.variable-and-composite-queries/3.property-reference.md + - 图空间语句: - CREATE SPACE: 3.ngql-guide/9.space-statements/1.create-space.md - USE SPACE: 3.ngql-guide/9.space-statements/2.use-space.md @@ -795,10 +811,6 @@ nav: - 部署 Raft listener: 4.deployment-and-installation/6.deploy-text-based-index/3.deploy-listener.md - 全文搜索: 3.ngql-guide/15.full-text-index-statements/1.search-with-text-based-index.md - - 子图和路径: - - GET SUBGRAPH: 3.ngql-guide/16.subgraph-and-path/1.get-subgraph.md - - FIND PATH: 3.ngql-guide/16.subgraph-and-path/2.find-path.md - - 查询调优与终止: - EXPLAIN和PROFILE: 3.ngql-guide/17.query-tuning-statements/1.explain-and-profile.md - 终止查询: 3.ngql-guide/17.query-tuning-statements/6.kill-query.md @@ -884,9 +896,11 @@ nav: - 导入 SST 文件数据: import-export/nebula-exchange/use-exchange/ex-ug-import-from-sst.md - Exchange 常见问题: import-export/nebula-exchange/ex-ug-FAQ.md - - NebulaGraph Spark Connector: import-export/nebula-spark-connector.md - - - NebulaGraph Flink Connector: import-export/nebula-flink-connector.md + - 连接器: + + - NebulaGraph Spark Connector: connector/nebula-spark-connector.md + + - NebulaGraph Flink Connector: connector/nebula-flink-connector.md - 最佳实践: - Compaction: 8.service-tuning/compaction.md @@ -939,24 +953,35 @@ nav: - 监控指标说明: nebula-dashboard/6.monitor-parameter.md - NebulaGraph Operator: - - 什么是 NebulaGraph Operator: nebula-operator/1.introduction-to-nebula-operator.md - - 使用流程: nebula-operator/6.get-started-with-operator.md - - 部署 NebulaGraph Operator: nebula-operator/2.deploy-nebula-operator.md - - 部署 NebulaGraph: - - 使用 Kubectl 部署 NebulaGraph 集群: nebula-operator/3.deploy-nebula-graph-cluster/3.1create-cluster-with-kubectl.md - - 使用 Helm 部署 NebulaGraph 集群: nebula-operator/3.deploy-nebula-graph-cluster/3.2create-cluster-with-helm.md - - 连接 NebulaGraph: nebula-operator/4.connect-to-nebula-graph-service.md - - 配置 NebulaGraph: - - 自定义 NebulaGraph 集群的配置参数: nebula-operator/8.custom-cluster-configurations/8.1.custom-conf-parameter.md - - 存储: - - 动态在线扩容存储卷: nebula-operator/8.custom-cluster-configurations/storage/8.6.dynamic-expand-pv.md - - 回收 PV: nebula-operator/8.custom-cluster-configurations/storage/8.2.pv-reclaim.md - - 管理集群日志: nebula-operator/8.custom-cluster-configurations/8.4.manage-running-logs.md - - 开启准入控制: nebula-operator/8.custom-cluster-configurations/8.6.admission-control.md - - 升级 NebulaGraph: nebula-operator/9.upgrade-nebula-cluster.md - - 配置滚动更新策略: nebula-operator/11.rolling-update-strategy.md - - 故障自愈: nebula-operator/5.operator-failover.md - - 常见问题: nebula-operator/7.operator-faq.md + - 什么是 NebulaGraph Operator: k8s-operator/1.introduction-to-nebula-operator.md + - 快速入门: + - 安装 NebulaGraph Operator: k8s-operator/2.get-started/2.1.install-operator.md + - 快速创建集群: k8s-operator/2.get-started/2.3.create-cluster.md + - 连接集群: k8s-operator/2.get-started/2.4.connect-to-cluster.md + - 管理 NebulaGraph Operator: + - 自定义安装配置: k8s-operator/3.operator-management/3.1.customize-installation.md + - 更新配置: k8s-operator/3.operator-management/3.2.update-operator.md + - 升级版本: k8s-operator/3.operator-management/3.3.upgrade-operator.md + - 卸载: k8s-operator/3.operator-management/3.4.unistall-operator.md + - 管理集群: + - 部署: + - 创建集群: k8s-operator/4.cluster-administration/4.1.installation/4.1.1.cluster-install.md + - 升级集群版本: k8s-operator/4.cluster-administration/4.1.installation/4.1.2.cluster-upgrade.md + - 删除集群: k8s-operator/4.cluster-administration/4.1.installation/4.1.3.cluster-uninstall.md + - 更新配置: k8s-operator/4.cluster-administration/4.2.configuration.md + - 存储管理: +# - 使用本地持久化存储: k8s-operator/4.cluster-administration/4.4.storage-management/4.4.1.use-local-pv.md + - 动态在线扩容存储卷: k8s-operator/4.cluster-administration/4.4.storage-management/4.4.2.pv-expansion.md + - 回收 PV: k8s-operator/4.cluster-administration/4.4.storage-management/4.4.3.configure-pv-reclaim.md + - 日志管理: k8s-operator/4.cluster-administration/4.5.logging.md + - 安全: + - 开启准入控制: k8s-operator/4.cluster-administration/4.7.security/4.7.2.enable-admission-control.md + - 高可用和负载均衡: + - 故障自愈: k8s-operator/4.cluster-administration/4.8.ha-and-balancing/4.8.1.self-healing.md + - 高阶功能: + - 优化滚动更新中的 Leader 分布: k8s-operator/4.cluster-administration/4.9.advanced/4.9.1.rolling-update-strategy.md +# - 重启集群: k8s-operator/4.cluster-administration/4.9.advanced/4.9.2.restart-cluster.md + - 常见问题: k8s-operator/5.FAQ.md - 图计算: - NebulaGraph Algorithm: graph-computing/nebula-algorithm.md @@ -966,7 +991,7 @@ nav: - 常见问题: 20.appendix/0.FAQ.md - 附录: - - Release Note: + - 更新说明: - NebulaGraph 社区版: 20.appendix/release-notes/nebula-comm-release-note.md - NebulaGraph Studio: 20.appendix/release-notes/studio-release-note.md - NebulaGraph Dashboard 社区版: 20.appendix/release-notes/dashboard-comm-release-note.md