diff --git a/docs/admin/clustering/kubernetes.rst b/docs/admin/clustering/kubernetes.rst index 036fa61c..7ad74f0a 100644 --- a/docs/admin/clustering/kubernetes.rst +++ b/docs/admin/clustering/kubernetes.rst @@ -142,8 +142,8 @@ Clustering behavior The ``discovery.zen.minimum_master_nodes`` setting is :ref:`no longer used ` in CrateDB versions 4.x and above. -The `discovery.zen.minimum_master_nodes`_ setting affects `metadata -master`_ election. +The `discovery.zen.minimum_master_nodes`_ setting affects :ref:`metadata +master ` election. This setting can be changed while CrateDB is running, like so: @@ -183,7 +183,8 @@ CrateDB has two settings that depend on cluster size and determine how cluster The values of these settings must be changed via Kubernetes. Unlike with clustering behavior reconfiguration, you cannot change these values using -CrateDB's `runtime configuration`_ capabilities. +CrateDB's :ref:`runtime configuration ` +capabilities. If you are using a controller configuration like the example given in the :ref:`Kubernetes deployment guide `, you can make this @@ -197,33 +198,30 @@ Control`_. .. NOTE:: You can scale a CrateDB cluster without updating these values, but the - `CrateDB Admin UI`_ will display `node check`_ failures. + :ref:`CrateDB Admin UI ` will display + :ref:`node check ` failures. However, you should only do this on a production cluster if you need to scale to handle a load spike quickly. -.. _adjust this number carefully: https://crate.io/docs/crate/reference/en/3.3/config/cluster.html#discovery-zen-minimum-master-nodes +.. _adjust this number carefully: https://cratedb.com/docs/crate/reference/en/3.3/config/cluster.html#discovery-zen-minimum-master-nodes .. _containerization: https://www.docker.com/resources/what-container -.. _CrateDB Admin UI: https://crate.io/docs/crate/admin-ui/en/latest/ .. _CrateDB Docker image: https://hub.docker.com/_/crate/ .. _deleted and recreated: https://kubernetes.io/docs/concepts/cluster-administration/manage-deployment/#disruptive-updates -.. _discovery.zen.minimum_master_nodes: https://crate.io/docs/crate/reference/en/3.3/config/cluster.html#discovery-zen-minimum-master-nodes +.. _discovery.zen.minimum_master_nodes: https://cratedb.com/docs/crate/reference/en/3.3/config/cluster.html#discovery-zen-minimum-master-nodes .. _Docker: https://www.docker.com/ -.. _gateway.expected_data_nodes: https://crate.io/docs/crate/reference/en/latest/admin/system-information.html#recovery-expected-data-nodes -.. _gateway.recover_after_data_nodes: https://crate.io/docs/crate/reference/en/latest/admin/system-information.html#recovery-after-data-nodes +.. _gateway.expected_data_nodes: https://cratedb.com/docs/crate/reference/en/latest/admin/system-information.html#recovery-expected-data-nodes +.. _gateway.recover_after_data_nodes: https://cratedb.com/docs/crate/reference/en/latest/admin/system-information.html#recovery-after-data-nodes .. _horizontally scalable: https://en.wikipedia.org/wiki/Scalability#Horizontal_(scale_out)_and_vertical_scaling_(scale_up) .. _imperative command: https://kubernetes.io/docs/concepts/overview/working-with-objects/object-management/#imperative-commands .. _kubectl: https://kubernetes.io/docs/reference/kubectl/overview/ .. _Kubernetes: https://kubernetes.io/ -.. _metadata master: https://crate.io/docs/crate/reference/en/latest/concepts/shared-nothing.html#cluster-state-management -.. _metadata: https://crate.io/docs/crate/reference/en/latest/config/cluster.html#metadata-gateway +.. _metadata: https://cratedb.com/docs/crate/reference/en/latest/config/cluster.html#metadata .. _namespace: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ -.. _node check: https://crate.io/docs/crate/reference/en/latest/admin/system-information.html#description-of-checked-node-settings .. _persistent volumes: https://kubernetes.io/docs/concepts/storage/persistent-volumes/ .. _pods: https://kubernetes.io/docs/concepts/workloads/pods/ .. _rolling update strategy: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#rolling-updates -.. _runtime configuration: https://crate.io/docs/crate/reference/en/latest/admin/runtime-config.html#administration-runtime-config .. _shared-nothing architecture : https://en.wikipedia.org/wiki/Shared-nothing_architecture .. _split-brain: https://en.wikipedia.org/wiki/Split-brain .. _StatefulSet: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/ diff --git a/docs/admin/clustering/multi-node-setup.rst b/docs/admin/clustering/multi-node-setup.rst index 14dc6279..1e84f89a 100644 --- a/docs/admin/clustering/multi-node-setup.rst +++ b/docs/admin/clustering/multi-node-setup.rst @@ -64,20 +64,21 @@ experimentation purposes, this is probably your best option. a single cluster without the risk of data loss. If you have multiple nodes running on different hosts, you can check - whether they have formed independent clusters by visiting the `admin UI`_ + whether they have formed independent clusters by visiting the + :ref:`Admin UI ` (which runs on every node) and checking the `cluster browser`_. If you end up with multiple independent clusters and instead want to form a single cluster, follow these steps: - 1. `Back up your data`_ - 2. Shut down all the nodes - 3. Completely wipe each node by deleting the contents of the ``data`` - directory under `CRATE_HOME`_ - 4. Follow the instructions in :ref:`manual bootstrapping - `) - 5. Restart all the nodes and verify that they have formed a single cluster - 6. Restore your data + 1. :ref:`Back up your data ` + 2. Shut down all the nodes + 3. Completely wipe each node by deleting the contents of the ``data`` + directory under `CRATE_HOME`_ + 4. Follow the instructions in :ref:`manual bootstrapping + `) + 5. Restart all the nodes and verify that they have formed a single cluster + 6. Restore your data .. _auto-bootstrapping-tarball: @@ -85,7 +86,8 @@ experimentation purposes, this is probably your best option. Tarball installation ^^^^^^^^^^^^^^^^^^^^ -If you are installing CrateDB using the `tarball method`_, you can start a +If you are installing CrateDB using the :ref:`tarball method `, +you can start a single-host three-node cluster with auto-bootstrapping by following these instructions. @@ -104,10 +106,11 @@ instructions. .. NOTE:: - Configuring the `metadata gateway`_ is a safeguarding mechanism that is + Configuring the :ref:`metadata gateway ` is a safeguarding + mechanism that is useful for production clusters. It is not strictly necessary when running - in development. However, the `admin UI`_ will issue warnings if you have - not configured the metadata gateway. + in development. However, the :ref:`Admin UI ` will + issue warnings if you have not configured the metadata gateway. .. SEEALSO:: @@ -146,7 +149,8 @@ instructions. `bin/crate`_, and leave this process running. You should now have multiple concurrent `bin/crate`_ processes. -5. Visit the `admin UI`_ on one of the nodes. Check the `cluster browser`_ to +5. Visit the :ref:`Admin UI ` on one of the nodes. Check the + `cluster browser`_ to verify that the cluster has auto-bootstrapped with three nodes. You should see something like this: @@ -162,8 +166,8 @@ Manual bootstrapping To run a CrateDB cluster across multiple hosts, you must manually configure the bootstrapping process by telling nodes how to: - a. :ref:`Discover other nodes ` - b. :ref:`Elect a master node ` the first time +a. :ref:`Discover other nodes ` +b. :ref:`Elect a master node ` the first time You can also configure the :ref:`metadata gateway ` (as with auto-bootstrapping). @@ -178,8 +182,9 @@ Node discovery Seeding manually """""""""""""""" -With CrateDB 4.x and above, you can configure a list of nodes to `seed the -discovery process`_ with the ``discovery.seed_hosts`` setting in your +With CrateDB 4.x and above, you can configure a list of nodes to :ref:`seed the +discovery process ` with the +``discovery.seed_hosts`` setting in your `configuration`_ file. This setting should contain one identifier per master-eligible node. For example: @@ -220,7 +225,7 @@ you can configure CrateDB to fetch a list of seed hosts from an external source. The currently supported sources are: -1. `DNS`_ +1. :ref:`DNS ` To enable DNS discovery, configure the ``discovery.seed_providers`` setting in your `configuration`_ file to ``srv``: @@ -232,7 +237,7 @@ The currently supported sources are: CrateDB will perform a DNS query using `SRV records`_ and use the results to generate a list of `unicast hosts`_ for node discovery. -2. `Amazon EC2`_ +2. :ref:`Amazon EC2 ` To enable Amazon EC2 discovery, configure the ``discovery.seed_providers`` setting in your `configuration`_ file: @@ -268,7 +273,8 @@ Master node election ^^^^^^^^^^^^^^^^^^^^ The master node is responsible for making changes to the global cluster state. -The cluster `elects the master node`_ from the configured list of +The cluster :ref:`elects the master node ` +from the configured list of master-eligible nodes the first time a cluster is bootstrapped. This is not necessary if nodes are added later or are restarted. @@ -323,7 +329,7 @@ a three-node cluster, you must declare all nodes to be master-eligible. Metadata gateway ^^^^^^^^^^^^^^^^ -When running a multi-node cluster, you can configure the `metadata gateway`_ +When running a multi-node cluster, you can configure the :ref:`metadata gateway ` settings so that CrateDB delays recovery until a certain number of nodes is available. This is useful because if recovery is started when some nodes are down @@ -401,7 +407,7 @@ must specify a list of master-eligible nodes (:ref:`see above hostname, or IP address. By default, CrateDB sets the node name to a random value from the -`sys.summits`_ table. +:ref:`crate-reference:sys-summits` table. You can override this behavior by configuring a custom node name using the `node.name`_ setting in your `configuration`_ file. For example: @@ -462,47 +468,34 @@ Edit the `transport.tcp.port`_ setting in your `configuration`_ file: .. SEEALSO:: - `More information about port settings`_ + :ref:`More information about port settings ` .. _127.0.0.1:4200: http://127.0.0.1:4200/ .. _127.0.0.1:4201: http://127.0.0.1:4201/ -.. _admin UI: https://crate.io/docs/crate/admin-ui/en/latest/ .. _Amazon EC2 API: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Welcome.html -.. _Amazon EC2: https://crate.io/docs/crate/reference/en/latest/config/cluster.html#discovery-on-amazon-ec2 .. _Azure Virtual Machine API: https://docs.microsoft.com/en-us/rest/api/compute/virtualmachines -.. _Back up your data: https://crate.io/a/backing-up-and-restoring-cratedb/ -.. _bin/crate: https://crate.io/docs/crate/reference/en/latest/cli-tools.html#crate -.. _cluster browser: https://crate.io/docs/crate/admin-ui/en/latest/cluster.html -.. _cluster: https://crate.io/docs/crate/reference/en/latest/concepts/shared-nothing.html -.. _cluster.initial_master_nodes: https://crate.io/docs/crate/reference/en/latest/config/cluster.html#cluster-initial-master-nodes -.. _cluster.name: https://crate.io/docs/crate/reference/en/latest/config/node.html#cluster-name -.. _configuration: https://crate.io/docs/crate/reference/en/latest/config/index.html -.. _CRATE_HOME: https://crate.io/docs/crate/reference/en/latest/config/environment.html#conf-env-crate-home +.. _bin/crate: https://cratedb.com/docs/crate/reference/en/latest/cli-tools.html#crate +.. _cluster browser: https://cratedb.com/docs/crate/admin-ui/en/latest/cluster.html +.. _cluster.initial_master_nodes: https://cratedb.com/docs/crate/reference/en/latest/config/cluster.html#cluster-initial-master-nodes +.. _cluster.name: https://cratedb.com/docs/crate/reference/en/latest/config/node.html#cluster-name +.. _configuration: https://cratedb.com/docs/crate/reference/en/latest/config/index.html +.. _CRATE_HOME: https://cratedb.com/docs/crate/reference/en/latest/config/environment.html#conf-env-crate-home .. _daemon: https://en.wikipedia.org/wiki/Daemon_(computing) -.. _discovery.zen.minimum_master_nodes: https://crate.io/docs/crate/reference/en/3.3/config/cluster.html#discovery-zen-minimum-master-nodes -.. _discovery.zen.ping.unicast.hosts: https://crate.io/docs/crate/reference/en/3.3/config/cluster.html#unicast-host-discovery -.. _DNS: https://crate.io/docs/crate/reference/en/latest/config/cluster.html#discovery-via-dns -.. _elects the master node: https://crate.io/docs/crate/reference/en/latest/concepts/shared-nothing.html#master-node-election -.. _full cluster restarts: https://crate.io/docs/crate/howtos/en/latest/admin/full-restart-upgrade.html -.. _gateway.expected_data_nodes: https://crate.io/docs/crate/reference/en/latest/config/cluster.html#gateway-expected-data-nodes -.. _gateway.recover_after_data_nodes: https://crate.io/docs/crate/reference/en/latest/config/cluster.html#gateway-recover-after-data-nodes +.. _discovery.zen.minimum_master_nodes: https://cratedb.com/docs/crate/reference/en/3.3/config/cluster.html#discovery-zen-minimum-master-nodes +.. _discovery.zen.ping.unicast.hosts: https://cratedb.com/docs/crate/reference/en/3.3/config/cluster.html#unicast-host-discovery +.. _gateway.expected_data_nodes: https://cratedb.com/docs/crate/reference/en/latest/config/cluster.html#gateway-expected-data-nodes +.. _gateway.recover_after_data_nodes: https://cratedb.com/docs/crate/reference/en/latest/config/cluster.html#gateway-recover-after-data-nodes .. _hostname: https://en.wikipedia.org/wiki/Hostname -.. _latest: https://crate.io/docs/crate/reference/en/latest/config/cluster.html#discovery -.. _Metadata configuration settings: https://crate.io/docs/crate/reference/en/latest/config/cluster.html#metadata -.. _metadata gateway: https://crate.io/docs/crate/reference/en/latest/config/cluster.html#metadata-gateway -.. _More information about port settings: https://crate.io/docs/crate/reference/en/latest/config/node.html#ports -.. _network.publish_host: https://crate.io/docs/crate/reference/en/latest/config/node.html#network-publish-host -.. _node.master: https://crate.io/docs/crate/reference/en/latest/config/node.html#node-master -.. _node.name: https://crate.io/docs/crate/reference/en/latest/config/node.html#node-name -.. _quorum guide: https://crate.io/docs/crate/howtos/en/latest/architecture/shared-nothing.html#master-node-election -.. _quorum size: https://crate.io/docs/crate/reference/en/latest/concepts/shared-nothing.html#master-node-election +.. _Metadata configuration settings: https://cratedb.com/docs/crate/reference/en/latest/config/cluster.html#metadata +.. _network.publish_host: https://cratedb.com/docs/crate/reference/en/latest/config/node.html#network-publish-host +.. _node.master: https://cratedb.com/docs/crate/reference/en/latest/config/node.html#node-master +.. _node.name: https://cratedb.com/docs/crate/reference/en/latest/config/node.html#node-name +.. _quorum guide: https://cratedb.com/docs/crate/howtos/en/latest/architecture/shared-nothing.html#master-node-election +.. _quorum size: https://cratedb.com/docs/crate/reference/en/latest/concepts/shared-nothing.html#master-node-election .. _quorum: https://en.wikipedia.org/wiki/Quorum_(distributed_computing) -.. _seed the discovery process: https://crate.io/docs/crate/reference/en/latest/config/cluster.html#discovery .. _split-brain: https://en.wikipedia.org/wiki/Split-brain_(computing) .. _SRV records: https://en.wikipedia.org/wiki/SRV_record -.. _sys.summits: https://crate.io/docs/crate/reference/en/latest/admin/system-information.html#summits -.. _tarball method: https://crate.io/docs/crate/tutorials/en/latest/install.html#install-adhoc -.. _transport.publish_port: https://crate.io/docs/crate/reference/en/latest/config/node.html#transport-publish-port -.. _transport.tcp.port: https://crate.io/docs/crate/reference/en/latest/config/node.html#transport-tcp-port -.. _unicast hosts: https://crate.io/docs/crate/reference/en/latest/config/cluster.html#unicast-host-discovery +.. _transport.publish_port: https://cratedb.com/docs/crate/reference/en/latest/config/node.html#transport-publish-port +.. _transport.tcp.port: https://cratedb.com/docs/crate/reference/en/latest/config/node.html#transport-tcp-port +.. _unicast hosts: https://cratedb.com/docs/crate/reference/en/latest/config/cluster.html#unicast-host-discovery diff --git a/docs/admin/clustering/multi-zone-setup.rst b/docs/admin/clustering/multi-zone-setup.rst index 67985c5e..7efa0f1f 100644 --- a/docs/admin/clustering/multi-zone-setup.rst +++ b/docs/admin/clustering/multi-zone-setup.rst @@ -10,8 +10,9 @@ nodes. These factors can have a significant impact on the performance of CrateDB clusters. This is especially true when running clusters in multiple regions. -This is because replicas are written *synchronously* and making a `write -operation`_ wait for all the replicas to write somewhere in a data center +This is because replicas are written *synchronously*, and making a :ref:`write +operation ` wait for all the replicas +to write somewhere in a data center hundreds of miles away can lead to noticeable latency and cause the cluster to slow down. @@ -40,7 +41,8 @@ For a multi-zone setup, CrateDB clusters need to fulfill the following: 3. When querying data, all data should only be collected from shards that are inside the same zone as the initial request. -To achieve these requirements, make use of `shard allocation awareness`_, which +To achieve these requirements, make use of :ref:`shard allocation awareness +`, which allows you to configure `shard`_ and replica allocation. If you are new to setting up a multi-node CrateDB cluster, you should read our :ref:`multi-node setup ` guide first. @@ -53,10 +55,12 @@ Tag assignments Once you have fulfilled the :ref:`multi-zone requirements `, assign a tag containing the name of the zone to -the cluster nodes. This enables `shard allocation awareness`_. +the cluster nodes. This enables :ref:`shard allocation awareness +`. You can assign arbitrary tags to nodes in your `configuration`_ file with -`node custom attributes`_ or via the ``-C`` option at startup. +:ref:`node custom attributes ` or via +the ``-C`` option at startup. .. SEEALSO:: @@ -92,8 +96,8 @@ For example: Allocation awareness ==================== -Once you have assigned zone tags, they can be set as attributes for `shard -allocation awareness`_ with the +Once you have assigned zone tags, they can be set as attributes for +:ref:`shard allocation awareness ` with the ``cluster.routing.allocation.awareness.attributes`` setting. For example, use the ``zone`` tag that you just assigned to your node as an @@ -115,10 +119,11 @@ them accordingly: node.attr.zone: us-west-1 cluster.routing.allocation.awareness.attributes: zone -Now start your cluster and then `create a table`_ with 6 shards and 1 replica. +Now start your cluster and then :ref:`create a table ` +with 6 shards and 1 replica. As an example, you can create such a table by executing a statement like this -in the `CrateDB Shell`_: +in the :ref:`CrateDB Shell `: .. code-block:: sql @@ -134,7 +139,7 @@ each node) and the replicas will be allocated on nodes with a different If this is not possible (i.e. ``num replicas > num zones - 1``), CrateDB will still allocate the replicas on nodes with the same ``zone`` value to avoid -`unassigned shards`_. +:ref:`unassigned shards `. .. NOTE:: @@ -156,7 +161,7 @@ value, it only executes the request on `shards`_ allocated on nodes with the sam This means you need to know the different ``zone`` attribute values to force awareness on nodes. -You can force `awareness`_ on certain attributes with the +You can force awareness on certain attributes with the ``cluster.routing.allocation.awareness.force.*.values`` setting, where ``*`` is a placeholder for the awareness attribute, which can be defined using the ``cluster.routing.allocation.awareness.attributes`` setting. @@ -175,7 +180,7 @@ nodes. .. TIP:: If you have 2 nodes with the ``zone`` attribute set to ``us-east-1`` and you - `create a table`_ with 8 shards and 1 replica, 8 primary shards will be allocated + :ref:`create a table ` with 8 shards and 1 replica, 8 primary shards will be allocated and the 8 replica shards will be left unassigned. Only when you add a new node with the ``zone`` attribute set to ``us-west-1`` will the replica shards be allocated. @@ -189,16 +194,10 @@ them, you should be able to set up a functioning cluster that spans across multiple zones and regions. However, be aware of the drawbacks that a multi-region setup can have, specifically in regards to latency. -.. _awareness: https://crate.io/docs/crate/reference/en/latest/config/cluster.html#routing-allocation -.. _configuration guide: https://crate.io/docs/reference/configuration.html -.. _configuration: https://crate.io/docs/crate/reference/en/latest/config/index.html -.. _CrateDB Shell: https://crate.io/docs/crate/crash/en/latest/ -.. _create a table: https://crate.io/docs/crate/reference/en/latest/general/ddl/create-table.html -.. _node custom attributes: https://crate.io/docs/crate/reference/en/latest/config/node.html#custom-attributes -.. _replica: https://crate.io/docs/crate/reference/en/latest/general/ddl/replication.html -.. _replicas: https://crate.io/docs/crate/reference/en/latest/general/ddl/replication.html -.. _shard allocation awareness: https://crate.io/docs/crate/reference/en/latest/config/cluster.html#routing-allocation -.. _shard: https://crate.io/docs/crate/reference/en/latest/general/ddl/sharding.html -.. _shards: https://crate.io/docs/crate/reference/en/latest/general/ddl/sharding.html -.. _unassigned shards: https://crate.io/docs/crate/howtos/en/latest/performance/sharding.html#under-allocation-is-bad -.. _write operation: https://crate.io/docs/crate/reference/en/latest/concepts/storage-consistency.html#data-storage + +.. _configuration guide: https://cratedb.com/docs/reference/configuration.html +.. _configuration: https://cratedb.com/docs/crate/reference/en/latest/config/index.html +.. _replica: https://cratedb.com/docs/crate/reference/en/latest/general/ddl/replication.html +.. _replicas: https://cratedb.com/docs/crate/reference/en/latest/general/ddl/replication.html +.. _shard: https://cratedb.com/docs/crate/reference/en/latest/general/ddl/sharding.html +.. _shards: https://cratedb.com/docs/crate/reference/en/latest/general/ddl/sharding.html diff --git a/docs/admin/going-into-production.rst b/docs/admin/going-into-production.rst index b0ab222e..2fda5533 100644 --- a/docs/admin/going-into-production.rst +++ b/docs/admin/going-into-production.rst @@ -30,8 +30,10 @@ For improved performance and resiliency, you should run production CrateDB clusters with three or more nodes and one node per host machine. To do this, you must manually configure the bootstrapping process by telling nodes how to: - a. :ref:`Discover other nodes ` - b. :ref:`Elect a master node ` +a. :ref:`Discover other nodes `, more details at + :ref:`node discovery `. +b. :ref:`Elect a master node `, more details at + :ref:`master node election `. This process is known as *manual bootstrapping*. See the :ref:`how-to guide ` for more information about how to bootstrap a cluster @@ -52,8 +54,9 @@ Naming Configure a logical cluster name -------------------------------- -The `cluster.name`_ setting allows you to override the default cluster name of -``crate``. You should use this setting to give a logical name to your cluster. +The :ref:`crate-reference:cluster.name` setting allows you to override the +default cluster name of ``crate``. You should use this setting to give a +logical name to your cluster. For example, add this to your `configuration`_ file: @@ -64,7 +67,8 @@ For example, add this to your `configuration`_ file: The ``acme-prod`` name suggests that this cluster is the production cluster for the *Acme* organization. If *Acme* has a cluster running in a staging environment, you might want to name it ``acme-staging``. This way, you can -differentiate your clusters by name (visible in the `Admin UI`_). +differentiate your clusters by name (visible in the :ref:`Admin UI +`). .. TIP:: @@ -117,7 +121,7 @@ your operating system configuration. .. SEEALSO:: - `Host settings`_ + :ref:`Host settings ` .. _prod-config-node-labels: @@ -340,7 +344,7 @@ container. On a Unix-like system, you might mount an external volume to a path like ``/opt/cratedb``. If you are installing CrateDB by hand, you can then set `CRATE_HOME`_ to ``/opt/cratedb``. Make sure to set ``CRATE_HOME`` before -running `bin/crate`_. +running :ref:`bin/crate `. Then, you could configure your `data paths`_ like this: @@ -400,7 +404,7 @@ there is enough disk space available for heap dumps at this location. .. SEEALSO:: - `JVM environment variables`_ + :ref:`JVM environment variables ` .. _prod-config-gc: @@ -410,7 +414,7 @@ Garbage collection CrateDB logs JVM garbage collection times using the built-in *garbage collection* (GC) logging provided by the JVM. You can configure this process -with the `GC logging environment variables`_. +with the :ref:`GC logging environment variables `. You must ensure that the log directory is on a fast-enough disk and has enough space. When using Docker, use a path on a mounted volume. @@ -431,42 +435,29 @@ Configure wire encryption For security reasons, most production clusters should use wire encryption for network traffic between nodes and clients. Check out the reference manual on -`secured communications`_ for more information. - - -.. _Admin UI: https://crate.io/docs/crate/admin-ui/en/latest/ -.. _bin/crate: https://crate.io/docs/crate/reference/en/latest/cli-tools.html#crate -.. _cluster.name: https://crate.io/docs/crate/reference/en/latest/config/node.html#cluster-name -.. _configuration: https://crate.io/docs/crate/reference/en/latest/config/index.html -.. _configure: https://crate.io/docs/crate/reference/en/latest/config/index.html -.. _CRATE_HEAP_DUMP_PATH: https://crate.io/docs/crate/reference/en/latest/config/environment.html#conf-env-dump-path -.. _CRATE_HEAP_SIZE: https://crate.io/docs/crate/reference/en/latest/config/environment.html#crate-heap-size -.. _CRATE_HOME: https://crate.io/docs/crate/reference/en/latest/config/environment.html#conf-env-crate-home -.. _CRATE_JAVA_OPTS: https://crate.io/docs/crate/reference/en/latest/config/environment.html#conf-env-java-opts -.. _data paths: https://crate.io/docs/crate/reference/en/latest/config/node.html#paths -.. _discovery: https://crate.io/docs/crate/reference/en/latest/concepts/shared-nothing.html#discovery -.. _elect a master node: https://crate.io/docs/crate/reference/en/latest/concepts/shared-nothing.html#master-node-election +:ref:`secured communications ` for more information. + + +.. _configuration: https://cratedb.com/docs/crate/reference/en/latest/config/index.html +.. _configure: https://cratedb.com/docs/crate/reference/en/latest/config/index.html +.. _CRATE_HEAP_DUMP_PATH: https://cratedb.com/docs/crate/reference/en/latest/config/environment.html#conf-env-dump-path +.. _CRATE_HEAP_SIZE: https://cratedb.com/docs/crate/reference/en/latest/config/environment.html#crate-heap-size +.. _CRATE_HOME: https://cratedb.com/docs/crate/reference/en/latest/config/environment.html#conf-env-crate-home +.. _CRATE_JAVA_OPTS: https://cratedb.com/docs/crate/reference/en/latest/config/environment.html#conf-env-java-opts +.. _data paths: https://cratedb.com/docs/crate/reference/en/latest/config/node.html#paths .. _Filesystem Hierarchy Standard: https://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard -.. _GC logging environment variables: https://crate.io/docs/crate/reference/en/latest/config/logging.html#environment-variables -.. _Host settings: https://crate.io/docs/crate/reference/en/latest/config/node.html#hosts .. _IOPS: https://en.wikipedia.org/wiki/IOPS -.. _JVM environment variables: https://crate.io/docs/crate/reference/en/latest/config/environment.html#jvm-variables -.. _limits: https://crate.io/docs/crate/howtos/en/latest/performance/memory.html#limits .. _Linux Filesystem Hierarchy: https://tldp.org/LDP/Linux-Filesystem-Hierarchy/html/index.html .. _localhost: https://en.wikipedia.org/wiki/Localhost -.. _logging: https://crate.io/docs/crate/reference/en/latest/config/logging.html -.. _multiple types of node: https://crate.io/docs/crate/reference/en/latest/config/node.html#node-types -.. _network.host: https://crate.io/docs/crate/reference/en/latest/config/node.html#network-host -.. _node.name: https://crate.io/docs/crate/reference/en/latest/config/node.html#node-name -.. _path settings: https://crate.io/docs/crate/reference/en/latest/config/node.html#paths -.. _path.data: https://crate.io/docs/crate/reference/en/latest/config/node.html#path-data +.. _multiple types of node: https://cratedb.com/docs/crate/reference/en/latest/config/node.html#node-types +.. _network.host: https://cratedb.com/docs/crate/reference/en/latest/config/node.html#network-host +.. _node.name: https://cratedb.com/docs/crate/reference/en/latest/config/node.html#node-name +.. _path settings: https://cratedb.com/docs/crate/reference/en/latest/config/node.html#paths +.. _path.data: https://cratedb.com/docs/crate/reference/en/latest/config/node.html#path-data .. _RAID 0: https://en.wikipedia.org/wiki/Standard_RAID_levels#RAID_0 -.. _runtime: https://crate.io/docs/crate/reference/en/latest/admin/runtime-config.html#administration-runtime-config -.. _secured communications: https://crate.io/docs/crate/reference/en/latest/admin/ssl.html .. _shared-nothing: https://en.wikipedia.org/wiki/Shared-nothing_architecture .. _STDERR: https://en.wikipedia.org/wiki/Standard_streams .. _symbolic links: https://en.wikipedia.org/wiki/Symbolic_link -.. _sys.summits: https://crate.io/docs/crate/reference/en/latest/admin/system-information.html#summits .. _systemd: https://github.com/systemd/systemd -.. _timeout settings: https://crate.io/docs/crate/reference/en/latest/config/node.html#garbage-collection +.. _timeout settings: https://cratedb.com/docs/crate/reference/en/latest/config/node.html#garbage-collection .. _Unix-like: https://en.wikipedia.org/wiki/Unix-like diff --git a/docs/admin/performance/inserts/bulk.rst b/docs/admin/performance/inserts/bulk.rst index 8bd2be55..a749e355 100644 --- a/docs/admin/performance/inserts/bulk.rst +++ b/docs/admin/performance/inserts/bulk.rst @@ -3,7 +3,7 @@ .. _bulk-inserts: ============ -Bulk inserts +Bulk Inserts ============ If you have a lot of pre-existing data that you need to import in bulk, follow @@ -34,8 +34,8 @@ The rest of this document goes into more detail. for this reason. Another way to increase import speed is to add more disks by adding more - nodes. CrateDB is a `distributed database`_, and so, increasing overall - cluster size is generally a good way to improve performance. + nodes. CrateDB is a :ref:`distributed database `, + and so, increasing overall cluster size is generally a good way to improve performance. .. rubric:: Table of contents @@ -46,12 +46,12 @@ The rest of this document goes into more detail. :ref:`Insert performance: Methods ` + :ref:`CrateDB Reference: Import and export ` + :ref:`Best practices: Migrating from MySQL ` :ref:`Best practices: Migrating from MongoDB ` - `CrateDB Reference: Import and export`_ - .. _bulk-configure-tables: @@ -89,12 +89,14 @@ various types. You can create this table with the following statement:: Shards and replicas ------------------- -For each table, if you do not set the number of `shards`_ or the number of -`replicas`_, the default configuration is as follows: +For each table, if you do not set the number of :ref:`shards +` or the number of +:ref:`replicas `, the default configuration +is as follows: **Shards** - Dependent on the number of data-nodes in the cluster (see `CLUSTERED - clause`_) + Dependent on the number of data-nodes in the cluster, see :ref:`CLUSTERED + `. **Replicas** One @@ -112,9 +114,9 @@ scaling needs, but use as few as possible to keep the resource overhead (e.g., file descriptors and memory) as small as possible. When importing data, you should set the number of replicas to a minimum, -ideally zero. If the import fails, you can `drop`_ the table and import -again. When the import succeeds, adjust the number of replicas according to -your `availability`_ requirements. +ideally zero. If the import fails, you can :ref:`drop ` +the table and import again. When the import succeeds, adjust the number of replicas +according to your `availability`_ requirements. For example, the ``CREATE TABLE`` statement we used before could be changed to the following:: @@ -138,14 +140,15 @@ to the following:: Refresh interval ---------------- -Another way to speed up importing is to set the `refresh_interval`_ of the +Another way to speed up importing is to set the :ref:`refresh_interval +` of the table to zero:: cr> ALTER TABLE users SET (refresh_interval = 0); ALTER OK, -1 rows affected (... sec) -This will disable the periodic `refresh`_ of the table which will, in turn, -will minimize processing overhead during import. +This will disable the periodic :ref:`refresh ` +of the table which will, in turn, will minimize processing overhead during import. .. HIDE: @@ -185,7 +188,8 @@ Import the data Once the table is created, you can start importing the data. -When importing, CrateDB has `native support for JSON data`_. Specifically, for +When importing, CrateDB has :ref:`native support for JSON data +`. Specifically, for bulk inserts, you can use a format called `JSON Lines`_. In a JSON Lines file, each line is a JSON string representing a single record. Empty lines are skipped. The keys of the JSON objects are mapped to columns when @@ -199,7 +203,8 @@ For example, a JSON Lines file might look like this: {"id": 2, "name": "bar", "day_joined": 1408312800, "bio": "Lorem ipsum dolor sit amet, consectetuer adipiscing elit.", "address": {"city": "Berlin", "country": "Germany"}} -Use the `COPY FROM`_ statement to import JSON data directly from a file:: +Use the :ref:`COPY FROM ` statement to import +JSON data directly from a file:: cr> COPY users FROM '/tmp/best_practice_data/users.jsonl'; COPY OK, 150 rows affected (... sec) @@ -237,7 +242,8 @@ the cluster to import data from a file called ``users.jsonl``. Additionally, when importing data using ``COPY FROM``, CrateDB does not check whether both the types from the columns and the types from the import - file match. CrateDB does not `cast`_ the imported data types to the the + file match. CrateDB does not :ref:`cast ` the + imported data types to the the target column type. Instead, CrateDB will import the data *as given* in the source file. @@ -247,8 +253,8 @@ the cluster to import data from a file called ``users.jsonl``. Bulk size --------- -You can improve on the example above by configuring the `bulk_size`_ -option, like so:: +You can improve on the example above by configuring the :ref:`bulk size +` option, like so:: cr> COPY users FROM '/tmp/best_practice_data/users.jsonl' ... WITH (bulk_size = 2000); @@ -306,7 +312,8 @@ need to specify ``gzip`` compression, like so:: Split your tables into partitions ================================= -You can split your table into `partitions`_ to improve performance. +You can split your table into :ref:`partitions `, +in order to improve performance. .. HIDE: @@ -332,8 +339,8 @@ Partitions can be created using the ``CREATE TABLE`` statement and a .. NOTE:: - If a `primary key`_ was explicitly declared, the partition column has to be a - component of the primary key. + If a :ref:`primary key ` was explicitly + declared, the partition column has to be a component of the primary key. A value identifying the target partition column *should* be defined in the ``COPY FROM`` statement using the ``PARTITION`` clause:: @@ -364,11 +371,11 @@ from the JSON. You must omit this column if you use the ``PARTITIONED`` clause. .. SEEALSO:: - `CrateDB Reference: Partitioned tables`_ + :ref:`CrateDB Reference: Partitioned tables ` - `CrateDB Reference: PARTITIONED BY`_ + :ref:`CrateDB Reference: PARTITIONED BY ` - `CrateDB Reference: Alter a partitioned table`_ + :ref:`CrateDB Reference: Alter a partitioned table ` .. _bulk-disable-refresh-new-shards: @@ -378,8 +385,9 @@ Disable table refresh for new shards When importing data into a table that already has partitions, you can optimize the insert operation for newly created shards by disabling the -`refresh_interval`_ for those partitions (only) using the `ALTER TABLE ONLY`_ -statement. +:ref:`refresh_interval ` +for those partitions (only) using the :ref:`ALTER TABLE ONLY +` statement. .. SEEALSO:: @@ -391,7 +399,8 @@ statement. Increase the number of shards ----------------------------- -The ``ALTER TABLE`` clause can also be used to `alter the number of shards`_ +The ``ALTER TABLE`` clause can also be used to :ref:`alter the number of shards +` for newly created partitions, which may improve performance over the previous configuration when handling a lot more data than before. @@ -405,27 +414,8 @@ For exmaple:: section about shards ` for more information. -.. _ALTER TABLE ONLY: https://crate.io/docs/crate/reference/en/latest/sql/partitioned_tables.html#alter-table-only -.. _alter the number of shards: https://crate.io/docs/crate/reference/en/latest/general/ddl/partitioned-tables.html#changing-the-number-of-shards .. _availability: https://en.wikipedia.org/wiki/High_availability -.. _bulk_size: https://crate.io/docs/crate/reference/en/latest/sql/statements/copy-from.html#bulk-size -.. _cast: https://crate.io/docs/crate/reference/en/latest/general/ddl/data-types.html#cast -.. _CLUSTERED clause: https://crate.io/docs/crate/reference/en/latest/sql/statements/create-table.html#clustered -.. _COPY FROM: https://crate.io/docs/crate/reference/en/latest/sql/reference/copy_from.html -.. _CrateDB Reference\: Alter a partitioned table: https://crate.io/docs/crate/reference/en/latest/sql/partitioned_tables.html#alter -.. _CrateDB Reference\: Import and export: https://crate.io/docs/crate/reference/en/latest/general/dml.html#import-and-export -.. _CrateDB Reference\: PARTITIONED BY: https://crate.io/docs/crate/reference/en/latest/sql/statements/create-table.html#partitioned-by -.. _CrateDB Reference\: Partitioned tables: https://crate.io/docs/crate/reference/en/latest/sql/partitioned_tables.html -.. _distributed database: https://crate.io/docs/crate/reference/en/latest/concepts/clustering.html -.. _drop: https://crate.io/docs/crate/reference/en/latest/sql/statements/drop-table.html .. _gzip: https://www.gnu.org/software/gzip/ .. _IOPS: https://en.wikipedia.org/wiki/IOPS .. _JSON lines: https://jsonlines.org/ -.. _native support for JSON data: https://crate.io/docs/crate/reference/en/latest/general/ddl/data-types.html#json -.. _partitions: https://crate.io/docs/crate/reference/en/latest/general/ddl/partitioned-tables.html -.. _primary key: https://crate.io/docs/crate/reference/en/latest/general/ddl/constraints.html#primary-key -.. _refresh_interval: https://crate.io/docs/crate/reference/en/latest/sql/reference/create_table.html#refresh-interval -.. _refresh: https://crate.io/docs/crate/reference/en/latest/sql/refresh.html -.. _replicas: https://crate.io/docs/crate/reference/en/latest/general/ddl/replication.html -.. _shards: https://crate.io/docs/crate/reference/en/latest/general/ddl/sharding.html .. _Windows documentation: https://docs.microsoft.com/en-us/dotnet/standard/io/file-path-formats diff --git a/docs/admin/performance/inserts/index.rst b/docs/admin/performance/inserts/index.rst index 7f199681..591946dd 100644 --- a/docs/admin/performance/inserts/index.rst +++ b/docs/admin/performance/inserts/index.rst @@ -9,7 +9,8 @@ A ``INSERT INTO`` statement is processed as follows: - Plan the operation - Execute the operation -CrateDB `calculates the shard ID`_ for every row to be inserted when executing +CrateDB :ref:`calculates the shard ID ` for +every row to be inserted when executing the operation. Insert requests are then grouped and sent to the nodes that hold each primary shard. @@ -31,4 +32,3 @@ This section of the guide will show you how. testing .. _Abstract Syntax Tree: https://en.wikipedia.org/wiki/Abstract_syntax_tree -.. _calculates the shard ID: https://crate.io/docs/crate/reference/en/latest/sql/ddl/sharding.html#routing diff --git a/docs/admin/performance/inserts/methods.rst b/docs/admin/performance/inserts/methods.rst index dab9e77d..ae040438 100644 --- a/docs/admin/performance/inserts/methods.rst +++ b/docs/admin/performance/inserts/methods.rst @@ -36,8 +36,8 @@ the next section. Single inserts -------------- -`Single inserts`_ are the most basic sort of insert statement, and look like -this: +:ref:`Single inserts ` are the most basic +sort of insert statement, and look like this: .. code-block:: psql @@ -71,7 +71,7 @@ reads, replication, and cluster management). ``UNNEST`` ---------- -The `UNNEST`_ function produce rows, like so: +The :ref:`UNNEST ` function produce rows, like so: .. code-block:: psql @@ -201,10 +201,11 @@ For example, using the CrateDB Python client, here's a :ref:`single insert Bulk operations --------------- -You can use the `bulk operations`_ feature of the `CrateDB HTTP endpoint`_ to -perform many inserts in a single operation. +You can use the :ref:`bulk operations ` feature +of the :ref:`CrateDB HTTP endpoint ` to perform +many inserts in a single operation. -The advantages are the same as using the :ref:`UNNEST method`: +The advantages are the same as using the :ref:`UNNEST method `: - Significantly less internal network traffic than executing each insert statement individually @@ -268,7 +269,7 @@ Typically, prepared statements are used :ref:`single insert statements Prepared statements with single inserts will usually perform better than :ref:`standard querying ` with single inserts, and should be comparable to standard querying with both the :ref:`UNNEST -method` and :ref:`multiple value expressions +method ` and :ref:`multiple value expressions `. @@ -300,15 +301,9 @@ throughput of your cluster with different setups and under different loads. .. _addBatch: https://docs.oracle.com/javase/7/docs/api/java/sql/Statement.html#addBatch(java.lang.String) -.. _benchmarking: https://crate.io/a/insert-boost-on-replicas/ -.. _bulk operations: https://crate.io/docs/crate/reference/en/latest/interfaces/http.html#bulk-operations +.. _benchmarking: https://cratedb.com/blog/insert-boost-on-replicas .. _cr8: https://github.com/mfussenegger/cr8/ -.. _CrateDB HTTP endpoint: https://crate.io/docs/crate/reference/en/latest/interfaces/http.html .. _executeBatch: https://docs.oracle.com/javase/7/docs/api/java/sql/Statement.html#executeBatch() -.. _PostgreSQL wire protocol: https://crate.io/docs/crate/reference/en/latest/protocols/postgres.html -.. _single inserts: https://crate.io/docs/crate/reference/en/latest/general/dml.html#dml-inserting-data -.. _SQL HTTP endpoint: https://crate.io/docs/crate/reference/protocols/http.html -.. _the JDBC client: https://crate.io/docs/jdbc/en/latest/ -.. _translog.durability: https://crate.io/docs/crate/reference/en/latest/sql/reference/create_table.html#translog-durability -.. _UNNEST reference documentation: https://crate.io/docs/crate/reference/en/latest/sql/statements/insert.html?highlight=unnest#description -.. _UNNEST: https://crate.io/docs/crate/reference/en/latest/sql/table_functions.html#unnest-array-array +.. _the JDBC client: https://cratedb.com/docs/jdbc/ +.. _translog.durability: https://cratedb.com/docs/crate/reference/en/latest/sql/reference/create_table.html#translog-durability +.. _UNNEST reference documentation: https://cratedb.com/docs/crate/reference/en/latest/sql/statements/insert.html?highlight=unnest#description diff --git a/docs/admin/performance/inserts/parallel.rst b/docs/admin/performance/inserts/parallel.rst index 11c0b0bc..26c583d6 100644 --- a/docs/admin/performance/inserts/parallel.rst +++ b/docs/admin/performance/inserts/parallel.rst @@ -118,8 +118,8 @@ throughput of your cluster with different setups and under different loads. .. _Executor: https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Executor.html .. _HAProxy: https://www.haproxy.org/ .. _HikariCP: https://github.com/brettwooldridge/HikariCP -.. _JDBC client: https://crate.io/docs/clients/jdbc/en/latest/ -.. _PHP PDO client: https://crate.io/docs/clients/pdo/en/latest/ -.. _Python client: https://crate.io/docs/clients/python/en/latest/ +.. _JDBC client: https://cratedb.com/docs/clients/jdbc/ +.. _PHP PDO client: https://cratedb.com/docs/clients/pdo/ +.. _Python client: https://cratedb.com/docs/clients/python/ .. _supplyAsync: https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html#supplyAsync-java.util.function.Supplier-java.util.concurrent.Executor- .. _vibur-dbcp: https://www.vibur.org/ diff --git a/docs/admin/performance/inserts/testing.rst b/docs/admin/performance/inserts/testing.rst index 3501b126..f44a707c 100644 --- a/docs/admin/performance/inserts/testing.rst +++ b/docs/admin/performance/inserts/testing.rst @@ -1,19 +1,12 @@ .. _testing_inserts_performance: -=========================== -Testing inserts performance -=========================== +========================== +Testing Insert Performance +========================== -The easiest way to test inserts performance is with the `cr8`_ tool. +The easiest way to test insert performance is by using the `cr8`_ tool. -.. NOTE:: - - The `cr8`_ tool is not maintained by Crate.IO. - - The `clients and tools`_ section has more information about the maintenance - status of various CrateDB-related software. - -Inserts generally scale linearly with cluster size, so it's a good idea start +Inserts generally scale linearly with cluster size, so it is a good idea start by testing insert performance on a single node. You should only increase the size of your cluster for testing once you have @@ -34,7 +27,8 @@ If you already have a table full of data that you want to test, the best thing to do is to export that data and test inserting some portion of it into an identical table that you have created for testing purposes. -You can export the data using `COPY TO`_ like so: +You can export the data using :ref:`COPY TO `, +like so: .. code-block:: psql @@ -87,7 +81,7 @@ It's important to generate the fake data as a separate step so that our performance testing isn't also measuring the fake data generation, which in some situations, might actually end up being the performance bottleneck. -Now, export the fake data as JSON using `COPY TO`_: +Now, export the fake data as JSON using :ref:`COPY TO `: .. code-block:: psql @@ -144,6 +138,4 @@ understand the performance profile of your setup. Setting the bulk records size to `1` approximates the performance of single inserts. -.. _COPY TO: https://crate.io/docs/crate/reference/en/latest/sql/reference/copy_to.html .. _cr8: https://github.com/mfussenegger/cr8/ -.. _clients and tools: https://crate.io/docs/crate/clients-tools/en/latest/ diff --git a/docs/admin/performance/inserts/tuning.rst b/docs/admin/performance/inserts/tuning.rst index d50b350d..6171415f 100644 --- a/docs/admin/performance/inserts/tuning.rst +++ b/docs/admin/performance/inserts/tuning.rst @@ -41,7 +41,8 @@ from CrateDB relative to how low this value is. CPUs ---- -If your table schemas are complex or make use of `fulltext indexes`_, the +If your table schemas are complex or make use of :ref:`fulltext indexes +`, the additional CPU overhead during the analyzing phase of insert query processing might result in a CPU performance bottleneck. @@ -65,8 +66,8 @@ However, using tables with zero replicas is not recommended for anything except one-off data imports. You should have at least one configured replica for every table in a cluster that has three nodes or more. -Replicas improve availability and durability (in the event of node failure or -cluster partitions) but they do incur a performance cost. +Replicas improve availability and :ref:`durability ` in the +event of node failure or cluster partitions, but they do incur a performance cost. Shards and partitioning ----------------------- @@ -80,22 +81,25 @@ Indexing By default, all table columns are indexed. Regular columns use the ``plain`` index, and fulltext columns use the ``fulltext`` index. -Indexes are expensive, so `turning column indexes off`_ will always improve -performance. Sometimes significantly. But the downside is that you cannot use -those columns in the where clause. +Indexes are expensive, so :ref:`turning column indexes off +` will always improve performance. +Sometimes, significantly. The downside is that you cannot use those columns in +the where clause. Primary keys ------------ If your data does not have a `natural primary key`_ (i.e. data that uniquely -identifies each row), use the ``_id`` `system column`_ as a primary key. This +identifies each row), use the ``_id`` :ref:`system column +` as a primary key. This is better than creating your own `surrogate primary key`_ (e.g. manually generating a UUID for each row) because there is one less column to index. Translog -------- -If `translog.durability`_ is set to ``REQUEST`` (the default), the translog +If :ref:`translog.durability ` +is set to ``REQUEST`` (the default), the translog gets flushed after every operation. Setting this to ``ASYNC`` will improve insert performance, but it also worsens durability. If a node crashes before a translog has been synced, those operations will be lost. @@ -121,7 +125,8 @@ Refresh interval With the exception of primary key lookups, data that has been written to a shard cannot be read back until the shard index has been refreshed. -The `refresh_interval`_ table setting specifies how frequently shard indexes +The :ref:`refresh_interval ` +table setting specifies how frequently shard indexes are refreshed. The default value is every 1000 milliseconds. If you know that your client application can tollerate a higher refresh @@ -140,7 +145,8 @@ The calculation of statistics happens periodically. The bandwidth used for collecting statistics is limited by applying throttling based on the maximum amount of bytes per second that can be read from data nodes. -Please refer to the `ANALYZE`_ documentation for further information how to +Please refer to the :ref:`ANALYZE ` documentation +for further information how to change the calculation interval, and how to configure throttling settings. Manual optimizing @@ -157,15 +163,9 @@ tables yourself. However, if you are doing a lot of inserts, you may want to optimize tables (or even specific partitions) on your own schedule. If so, you can use the -`OPTIMIZE`_ command. +:ref:`OPTIMIZE ` command. + -.. _ANALYZE: https://cratedb.com/docs/crate/reference/en/latest/sql/statements/analyze.html -.. _fulltext indexes: https://crate.io/docs/crate/reference/en/latest/sql/fulltext.html .. _natural primary key: https://en.wikipedia.org/wiki/Natural_key -.. _OPTIMIZE: https://crate.io/docs/crate/reference/en/latest/sql/reference/optimize.html -.. _refresh_interval: https://crate.io/docs/crate/reference/en/latest/sql/reference/create_table.html#refresh-interval .. _Solid-State Drives: https://en.wikipedia.org/wiki/Solid-state_drive .. _surrogate primary key: https://en.wikipedia.org/wiki/Surrogate_key -.. _system column: https://crate.io/docs/crate/reference/en/latest/sql/administration/system_columns.html -.. _translog.durability: https://crate.io/docs/crate/reference/en/latest/sql/reference/create_table.html#translog-durability -.. _turning column indexes off: https://crate.io/docs/crate/reference/en/latest/sql/ddl/indices_full_search.html#disable-indexing diff --git a/docs/admin/performance/selects.rst b/docs/admin/performance/selects.rst index 00760504..b16c9689 100644 --- a/docs/admin/performance/selects.rst +++ b/docs/admin/performance/selects.rst @@ -51,12 +51,15 @@ huge difference in query response times. For some analytics use-cases, this is an acceptable trade-off. CrateDB users can emulate this down-sampling behaviour with a combination of -`LIMITs`_ and `sub-selects`_. However, doing so involves costly data merges in +:ref:`LIMITs ` and +:ref:`sub-selects `. +However, doing so involves costly data merges in the query execution plan that reduce the parallelization (and thus performance) of a distributed query. A better way to emulate down-sampling is to filter on the ``_docid`` system -column using a `modulo (%) operation`_, like this:: +column using a :ref:`modulo (%) operation `, +like this:: cr> SELECT device_id, @@ -105,8 +108,5 @@ to the original result. based sampling. .. _down-sampling: https://grisha.org/blog/2015/03/28/on-time-series/#downsampling -.. _LIMITs: https://crate.io/docs/crate/reference/en/latest/sql/statements/select.html#limit .. _Lucene segment: https://stackoverflow.com/a/2705123 -.. _modulo (%) operation: https://crate.io/docs/crate/reference/en/latest/general/builtins/arithmetic.html .. _normal distribution: https://en.wikipedia.org/wiki/Normal_distribution -.. _sub-selects: https://crate.io/docs/crate/reference/en/latest/sql/statements/select.html#subselect diff --git a/docs/admin/performance/sharding.rst b/docs/admin/performance/sharding.rst index 02394883..a011374e 100644 --- a/docs/admin/performance/sharding.rst +++ b/docs/admin/performance/sharding.rst @@ -17,7 +17,8 @@ the type of hardware you're using. This guide assumes you know the basics. - If you are looking for an intro to sharding, see `Sharding`_. + If you are looking for an intro to sharding, see :ref:`sharding + `. .. rubric:: Table of contents @@ -27,6 +28,8 @@ the type of hardware you're using. Optimising for query performance ================================ +.. _sharding-under-allocation: + Under-allocation is bad ----------------------- @@ -89,7 +92,8 @@ based on the assumption that your nodes have two CPUs each. .. CAUTION:: - If you are using `partitioned tables`_, note that each partition is + If you are using :ref:`partitioned tables `, + note that each partition is clustered into as many shards as you configure for the table. For example, a table with four shards and two partitions will have eight @@ -117,6 +121,5 @@ ingestion throughput. It's a good idea to benchmark your particular setup so as to find the sweet spot. -.. _we have found: https://crate.io/a/big-cluster-insights-ingesting/ -.. _Sharding: https://crate.io/docs/crate/reference/en/latest/sql/ddl/sharding.html -.. _partitioned tables: https://crate.io/docs/crate/reference/en/latest/sql/partitioned_tables.html + +.. _we have found: https://cratedb.com/blog/big-cluster-insights-ingesting diff --git a/docs/admin/troubleshooting/crate-node.rst b/docs/admin/troubleshooting/crate-node.rst index a4184339..3b099753 100644 --- a/docs/admin/troubleshooting/crate-node.rst +++ b/docs/admin/troubleshooting/crate-node.rst @@ -34,7 +34,8 @@ master-eligible nodes in a cluster, you may need to form a new cluster. When forming a new cluster, you may have to change the `role`_ of one or more nodes. Changing the role of a node is referred to as *repurposing* a node. -Each node checks the contents of its `data path`_ at startup. If CrateDB +Each node checks the contents of its :ref:`data path ` +at startup. If CrateDB discovers unexpected data, it will refuse to start. Specifically: - Nodes configured with `node.data`_ set to ``false`` will refuse to start if @@ -44,7 +45,8 @@ discovers unexpected data, it will refuse to start. Specifically: set to ``false`` will refuse to start if they have any index metadata at startup -The `crate-node`_ ``repurpose`` command can help you clean up the necessary +The `crate-node`_ :ref:`repurpose command ` +can help you clean up the necessary node data so that CrateDB can be restarted with a new role. @@ -54,7 +56,7 @@ Procedure To repurpose a node, first of all, you must stop the node. Then, update the settings `node.data`_ and `node.master`_ in the ``crate.yml`` -`configuration file`_ as needed. +:ref:`configuration file ` as needed. The ``node.data`` and ``node.master`` settings can be configured in four different ways, each corresponding to a different type of node: @@ -149,11 +151,13 @@ node and subsequently perform an unsafe cluster bootstrap. Before you attempt this, we recommend you try one or both of the following: - 1. Build a new cluster from a recent `snapshot`_ and then re-import any + 1. Build a new cluster from a recent :ref:`snapshot ` + and then re-import any data that was ingested since the snapshot was taken. 2. Recreate lost nodes using a copy of the data kept in the - `CRATE_HOME`_ directory (if you still have access to the file system). + :ref:`CRATE_HOME ` directory, if you still + have access to the file system. Procedure @@ -299,19 +303,15 @@ When the node is started again, it will be able to join a new cluster. .. NOTE:: - You may also have to update the `discovery configuration`_ so that + You may also have to update the :ref:`discovery configuration + ` so that nodes are able to find the new cluster. -.. _configuration file: https://crate.io/docs/crate/reference/en/latest/config/index.html -.. _CRATE_HOME: https://crate.io/docs/crate/reference/en/latest/config/environment.html#application-variables -.. _crate-node: https://crate.io/docs/crate/reference/en/latest/cli-tools.html#cli-crate-node -.. _data path: https://crate.io/docs/crate/reference/en/latest/config/environment.html#application-variables -.. _discovery configuration: https://crate.io/docs/crate/reference/en/latest/config/cluster.html#discovery -.. _node.data: https://crate.io/docs/crate/reference/en/latest/config/node.html#node-types -.. _node.master: https://crate.io/docs/crate/reference/en/latest/config/node.html#node-types -.. _quorum: https://crate.io/docs/crate/reference/en/latest/concepts/clustering.html#master-node-election -.. _repurpose command: https://crate.io/docs/crate/reference/en/latest/admin/cli-tools.html#repurpose -.. _role: https://crate.io/docs/crate/reference/en/latest/config/node.html#node-types -.. _snapshot: https://crate.io/docs/crate/reference/en/latest/admin/snapshots.html +.. _crate-node: https://cratedb.com/docs/crate/reference/en/latest/cli-tools.html#cli-crate-node +.. _data path: https://cratedb.com/docs/crate/reference/en/latest/config/environment.html#application-variables +.. _node.data: https://cratedb.com/docs/crate/reference/en/latest/config/node.html#node-types +.. _node.master: https://cratedb.com/docs/crate/reference/en/latest/config/node.html#node-types +.. _quorum: https://cratedb.com/docs/crate/reference/en/latest/concepts/clustering.html#master-node-election +.. _role: https://cratedb.com/docs/crate/reference/en/latest/config/node.html#node-types .. _UUID: https://en.wikipedia.org/wiki/Universally_unique_identifier diff --git a/docs/admin/troubleshooting/systables.rst b/docs/admin/troubleshooting/systables.rst index 760acdb2..a7cd4a05 100644 --- a/docs/admin/troubleshooting/systables.rst +++ b/docs/admin/troubleshooting/systables.rst @@ -8,10 +8,9 @@ Troubleshooting with sys-tables CrateDB maintains a set of diagnostic tables in the **sys** schema. It currently consists of ten tables that provide an overview of the cluster state. If something is going wrong and you initially don't know why, they help you to -analyze, identify the problem and start mitigating it. While there is `detailed -documentation about each single table -`__, this guide runs you -through the most common situations. +analyze, identify the problem and start mitigating it. While there is +:ref:`detailed information about all system tables `, +this guide runs you through the most common situations. .. rubric:: Table of contents @@ -252,8 +251,8 @@ allocated on any node. If a shard is assigned but cannot be moved or rebalanced, the row includes a reason why it remains on the current node. -For a full list of available columns, see the `reference documentation about -system tables`_. +For a full list of available columns, see the :ref:`reference documentation +about the sys.allocations table `. To find out about the different states of shards of a specific table, you can simply filter by ``table_schema`` and ``table_name``, e.g.:: @@ -302,5 +301,3 @@ to restore. Suppose you make nightly backups, the command:: shows you last week's snapshots along with their name, the stored indices, and how long they took. - -.. _reference documentation about system tables: https://crate.io/docs/crate/reference/en/latest/admin/system-information.html#allocations diff --git a/docs/admin/upgrade/full.rst b/docs/admin/upgrade/full.rst index 80f4f33d..6c3a7b49 100644 --- a/docs/admin/upgrade/full.rst +++ b/docs/admin/upgrade/full.rst @@ -24,7 +24,8 @@ done if you want to update CrateDB. .. CAUTION:: - These instructions work for most ways of installing and running CrateDB. + These instructions work for most ways of :ref:`installing ` and + running CrateDB. However, if you are using Docker, take note that ``docker service update`` performs a :ref:`rolling_upgrade`. @@ -36,7 +37,8 @@ Upgrade process .. WARNING:: - Before upgrading, you should `back up your data`_. + Before upgrading, you should :ref:`back up your data + `. Stop every node --------------- @@ -64,6 +66,4 @@ Once the CrateDB software on node in the cluster has been updated, start the appropriate to your setup. .. _Arch Linux AUR package: https://aur.archlinux.org/packages/crate/ -.. _back up your data: https://crate.io/docs/crate/reference/en/latest/admin/snapshots.html -.. _install: https://crate.io/docs/install/local/linux/ .. _release directory: https://cdn.crate.io/downloads/releases/ diff --git a/docs/admin/upgrade/planning.rst b/docs/admin/upgrade/planning.rst index bb7b86ed..86560a75 100644 --- a/docs/admin/upgrade/planning.rst +++ b/docs/admin/upgrade/planning.rst @@ -25,7 +25,7 @@ Before kicking off an upgrade, there is a set of guidelines to ensure the best o Acknowledge breaking changes ---------------------------- -Review the `release notes`_ and documentation for the target version to understand any potential impact on existing functionality. +Review the :ref:`release notes ` and documentation for the target version to understand any potential impact on existing functionality. Ensure to review the intermediate versions' documentation also. For example, when upgrading from 4.8 to 5.3, besides reviewing 5.3 release notes, check for version 5.0, 5.1, and so on. Set up a test environment @@ -37,7 +37,7 @@ Create a test environment that closely resembles your production environment, in Back up and plan recovery ------------------------- -Perform a cluster-wide backup of your production CrateDB and ensure you have a reliable recovery mechanism in place. Read more in the `snapshots`_ documentation. +Perform a cluster-wide backup of your production CrateDB and ensure you have a reliable recovery mechanism in place. Read more in the :ref:`snapshots ` documentation. For the newly written records, you should consider using a mechanism to queue them (e.g. message queue), so these messages can be replayed if needed. @@ -70,7 +70,3 @@ Choose the upgrade strategy below that works best for your scenario. - :ref:`rolling_upgrade` - :ref:`full_restart_upgrade` - - -.. _release notes: https://crate.io/docs/crate/reference/en/latest/appendices/release-notes/index.html -.. _snapshots: https://crate.io/docs/crate/reference/en/latest/admin/snapshots.html \ No newline at end of file diff --git a/docs/admin/upgrade/rolling.rst b/docs/admin/upgrade/rolling.rst index e828cd5e..8ea5fa9d 100644 --- a/docs/admin/upgrade/rolling.rst +++ b/docs/admin/upgrade/rolling.rst @@ -31,11 +31,13 @@ Some examples: CrateDB. If you are upgrading to a testing version you must perform a full cluster restart. - Check the `release notes`_ for the version you are upgrading to for any - specific instructions that may override this. + Check the :ref:`release notes ` for the + version you are upgrading to for any specific instructions that may override + this. To perform a rolling upgrade of a cluster, one node at a time has to be stopped -using the graceful stop procedure (see `Signal Handling`_). +using the :ref:`graceful stop ` procedure +(see :ref:`Signal Handling `). This procedure will disable a node, which will cause it to reject any new requests but will make sure that any pending requests are finished. @@ -46,7 +48,8 @@ requests but will make sure that any pending requests are finished. fail during a rolling upgrade. This process will ensure a certain data availability. Which can either be -``none``, ``primaries``, or ``full`` and can be configured using `SET`_. +``none``, ``primaries``, or ``full`` and can be configured using the +:ref:`SET ` statement. Using ``full``, all shards currently located on the node will be moved to the other nodes in order to stop gracefully. Using this setting the cluster will @@ -105,7 +108,8 @@ Upgrade Process .. WARNING:: - Before upgrading, you should `back up your data`_. + Before upgrading, you should :ref:`back up your data + `. Step 1: Disable allocations --------------------------- @@ -114,7 +118,7 @@ First, you have to prevent the cluster from re-distributing shards and replicas while certain nodes are not available. You can do that by disabling re-allocations and only allowing new primary allocations. -Use the `SET`_ command to do so: +Use the :ref:`SET ` command to do so: .. code-block:: psql @@ -130,7 +134,8 @@ Step 2: Graceful stop --------------------- To initiate a graceful shutdown that behaves as described in the introduction -of this document, the `Decommission Statement`_ must be used. +of this document, the :ref:`DECOMMISSION ` +statement must be used. Stopping a node via the ``TERM`` user signal (Often invoked via ``Ctrl+C`` or ``systemctl stop crate``), will cause a normal shutdown of CrateDB, **without** @@ -177,7 +182,7 @@ the reallocating is not finished, you can set the ``force`` setting to the graceful stop procedure will fail. By default, only the ``graceful stop`` command considers the cluster settings -described at `Graceful Stop`_. +described at :ref:`graceful stop `. Observing the reallocation .......................... @@ -282,11 +287,3 @@ again that have been disabled in the first step: cr> SET GLOBAL TRANSIENT "cluster.routing.allocation.enable" = 'all'; SET OK, 1 row affected (... sec) - -.. _back up your data: https://crate.io/docs/crate/reference/en/latest/admin/snapshots.html -.. _versions: https://crate.io/docs/crate/reference/en/latest/sql/system.html#version -.. _release notes: https://crate.io/docs/crate/reference/en/latest/appendices/release-notes/index.html -.. _Signal Handling: https://crate.io/docs/crate/reference/en/latest/cli-tools.html#signal-handling -.. _SET: https://crate.io/docs/crate/reference/en/latest/sql/statements/set.html -.. _Graceful Stop: https://crate.io/docs/crate/reference/en/latest/config/cluster.html#graceful-stop -.. _Decommission Statement: https://crate.io/docs/crate/reference/en/latest/sql/statements/alter-cluster.html#decommission-nodeid-nodename diff --git a/docs/conf.py b/docs/conf.py index 8ad43d05..b036c7d5 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -12,7 +12,7 @@ # Generic ignores. r"http://localhost:\d+/", # Forbidden by WordPress. - r"https://crate.io/wp-content/uploads/2018/11/copy_from_population_data.zip", + r"https://cratedb.com/wp-content/uploads/2018/11/copy_from_population_data.zip", # Forbidden by Stack Overflow. r"https://stackoverflow.com/.*", ] diff --git a/docs/domain/timeseries/index.md b/docs/domain/timeseries/index.md index 1f369c52..f464ecd8 100644 --- a/docs/domain/timeseries/index.md +++ b/docs/domain/timeseries/index.md @@ -17,5 +17,5 @@ generate/index normalize-intervals ::: -[Financial data collection and processing using pandas]: https://community.crate.io/t/automating-financial-data-collection-and-storage-in-cratedb-with-python-and-pandas-2-0-0/916 +[Financial data collection and processing using pandas]: https://community.cratedb.com/t/automating-financial-data-collection-and-storage-in-cratedb-with-python-and-pandas-2-0-0/916 [Time-series data: From raw data to fast analysis in only three steps]: https://youtu.be/7biXPnG7dY4?feature=shared diff --git a/docs/getting-started.md b/docs/getting-started.md index 2fb97ff5..a7d654f7 100644 --- a/docs/getting-started.md +++ b/docs/getting-started.md @@ -76,4 +76,4 @@ its SQL dialect, please also visit the [CrateDB Reference Manual]. [Database Driver Code Examples]: inv:crate-clients-tools:*:label#connect [Drivers and Integrations]: inv:crate-clients-tools:*:label#index [Integration Tutorials]: #integrate -[More integration tutorials]: https://community.crate.io/t/overview-of-cratedb-integration-tutorials/1015 +[More integration tutorials]: https://community.cratedb.com/t/overview-of-cratedb-integration-tutorials/1015 diff --git a/docs/install/cloud/aws/aws-terraform-setup.rst b/docs/install/cloud/aws/aws-terraform-setup.rst index af885d82..c02d05da 100644 --- a/docs/install/cloud/aws/aws-terraform-setup.rst +++ b/docs/install/cloud/aws/aws-terraform-setup.rst @@ -198,4 +198,4 @@ to destroy all associated resources: .. _How to view VPC properties: https://docs.aws.amazon.com/vpc/latest/userguide/default-vpc.html#view-default-vpc .. _How to view subnet properties: https://docs.aws.amazon.com/vpc/latest/userguide/modify-subnets.html#view-subnet .. _How to create EC2 key pairs: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/create-key-pairs.html -.. _community post: https://community.crate.io/t/deploying-cratedb-to-the-cloud-via-terraform/849 +.. _community post: https://community.cratedb.com/t/deploying-cratedb-to-the-cloud-via-terraform/849 diff --git a/docs/install/cloud/aws/ec2-setup.rst b/docs/install/cloud/aws/ec2-setup.rst index 9e04c11d..836c6b97 100644 --- a/docs/install/cloud/aws/ec2-setup.rst +++ b/docs/install/cloud/aws/ec2-setup.rst @@ -20,7 +20,7 @@ mechanism does not work out of the box. Luckily, CrateDB has several built-in mechanisms for unicast host discovery, also one for EC2. EC2 discovery uses the `EC2 API`_ to look up other EC2 hosts that are then used as unicast hosts for node discovery (see -`Unicast Host Discovery`_). +:ref:`Unicast Host Discovery `). .. NOTE:: @@ -57,8 +57,8 @@ AWS provides `IAM roles`_ to avoid any distribution of your AWS credentials to the instances. CrateDB binds to the loopback interface by default. To get EC2 discovery -working, you need to update the `Hosts`_ setting to bind to and publish the -site-local address:: +working, you need to update the :ref:`host ` +setting, in order to bind to and publish the site-local address:: network.host: _site_ @@ -138,7 +138,7 @@ For example, when you launch your instances with the security group The combination with the unique cluster name makes the production setup very simple yet secure. -See also `discovery.ec2.groups`_. +See also :ref:`crate-reference:discovery.ec2.groups`. Optional Filters ================ @@ -184,7 +184,7 @@ within the same security group, e.g:: tag.env: production tag.type: database -See also `discovery.ec2.tags`_. +See also :ref:`crate-reference:discovery.ec2.tag.name`. Filter by Availability Zones ---------------------------- @@ -199,19 +199,14 @@ discovery by availability zone:: groups: sg-crate-demo availability_zones: us-west-1 -See also `discovery.ec2.availability_zones`_. +See also :ref:`crate-reference:discovery.ec2.availability_zones`. -.. _3.3: https://crate.io/docs/crate/reference/en/3.3/config/cluster.html#discovery +.. _3.3: https://cratedb.com/docs/crate/reference/en/3.3/config/cluster.html#discovery .. _Amazon EC2: https://aws.amazon.com/ec2/ .. _AWS CLI: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html#launch-instance-with-role-cli .. _AWS Console: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html#launch-instance-with-role-console .. _AWS guide: httsp://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html -.. _discovery.ec2.availability_zones: https://crate.io/docs/crate/reference/en/latest/config/cluster.html#discovery-ec2-availability-zones -.. _discovery.ec2.groups: https://crate.io/docs/crate/reference/en/latest/config/cluster.html#discovery-ec2-groups -.. _discovery.ec2.tags: https://crate.io/docs/crate/reference/en/latest/config/cluster.html#discovery-ec2-tag-name .. _EC2 API: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Welcome.html -.. _Hosts: https://crate.io/docs/crate/reference/en/latest/config/node.html#hosts .. _IAM roles: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html .. _latest: https://crate.io/docs/crate/reference/en/latest/config/cluster.html#discovery .. _sign the requests: https://docs.aws.amazon.com/general/latest/gr/signing_aws_api_requests.html -.. _Unicast Host Discovery: https://crate.io/docs/crate/reference/en/latest/config/cluster.html#unicast-host-discovery diff --git a/docs/install/cloud/azure/index.rst b/docs/install/cloud/azure/index.rst index eaa85abe..fd16f3b5 100644 --- a/docs/install/cloud/azure/index.rst +++ b/docs/install/cloud/azure/index.rst @@ -1,3 +1,5 @@ +.. _azure: + ============================== Run CrateDB on Microsoft Azure ============================== diff --git a/docs/install/cloud/azure/terraform.rst b/docs/install/cloud/azure/terraform.rst index 1df41782..c8746f3d 100644 --- a/docs/install/cloud/azure/terraform.rst +++ b/docs/install/cloud/azure/terraform.rst @@ -187,4 +187,4 @@ to destroy all associated resources: .. _git's installation guide: https://git-scm.com/downloads .. _Azure provider: https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs .. _List of Storage Account Types: https://docs.microsoft.com/en-us/azure/templates/microsoft.compute/virtualmachines?tabs=bicep#manageddiskparameters -.. _community post: https://community.crate.io/t/deploying-cratedb-to-the-cloud-via-terraform/849 +.. _community post: https://community.cratedb.com/t/deploying-cratedb-to-the-cloud-via-terraform/849 diff --git a/docs/install/cloud/azure/vm.rst b/docs/install/cloud/azure/vm.rst index c0698867..6166e48c 100644 --- a/docs/install/cloud/azure/vm.rst +++ b/docs/install/cloud/azure/vm.rst @@ -87,8 +87,8 @@ Install CrateDB *Note that these instructions should be followed on each VM in your cluster.* -To Install CrateDB, ssh into your VMs and follow `the standard process for -Linux installation`_, this will automatically start an instance of CrateDB, +To Install CrateDB, ssh into your VMs and follow :ref:`the standard process for +Linux installation `, this will automatically start an instance of CrateDB, which we will need to restart after the next step. @@ -122,8 +122,8 @@ Uncomment / add these lines: | | | - 10.0.1.103:4300 | +-----------------+-----------+---------------------------------------+ -Note You might want to try DNS based discovery for inter-node communication, -`find more details`_ in our documentation. +Note: You might want to try :ref:`DNS based discovery +` for inter-node communication. Uncomment and set the cluster name @@ -159,8 +159,8 @@ Ensure that the ``JAVA*HOME`` environment variable is set. .. image:: /_assets/img/install/cloud/azure-envvar.png :alt: Environment Variables -Next `download the CrateDB Tarball`_, expand it and move to a convenient -location. +Next :ref:`download the CrateDB Tarball `, expand it, and move +it to a convenient location. Configure CrateDB and Windows @@ -179,10 +179,7 @@ We need to allow the ports CrateDB uses through the Windows Firewall Start crate by running ``bin/crate``. -.. _3.3: https://crate.io/docs/crate/reference/en/3.3/config/cluster.html#discovery -.. _download the CrateDB Tarball: https://crate.io/docs/crate/tutorials/en/latest/install.html#install-adhoc -.. _find more details: https://crate.io/docs/crate/reference/en/latest/config/cluster.html#discovery-via-dns +.. _3.3: https://cratedb.com/docs/crate/reference/en/3.3/config/cluster.html#discovery .. _Java JDK installed: https://www.oracle.com/java/technologies/downloads/#java8 -.. _latest: https://crate.io/docs/crate/reference/en/latest/config/cluster.html#discovery +.. _latest: https://cratedb.com/docs/crate/reference/en/latest/config/cluster.html#discovery .. _Learn how to install here: https://docs.microsoft.com/en-us/cli/azure/install-azure-cli -.. _the standard process for Linux installation: https://crate.io/docs/crate/tutorials/en/latest/install.html diff --git a/docs/install/container/docker.rst b/docs/install/container/docker.rst index ab27c945..96c4b35b 100644 --- a/docs/install/container/docker.rst +++ b/docs/install/container/docker.rst @@ -15,7 +15,8 @@ This document covers the essentials of running CrateDB on Docker. .. NOTE:: If you are just getting started with CrateDB and Docker, check out the - introductory guides for `spinning up your first CrateDB instance`_. + introductory guides for :ref:`spinning up your first container-based + CrateDB instance `. .. SEEALSO:: @@ -87,8 +88,8 @@ Breaking the command down: :ref:`docker-compose` as reference). - Puts the container into the ``crate`` network and maps port ``4201`` on your host machine to port ``4200`` on the container (admin UI). -- Defines the environment variable ``CRATE_HEAP_SIZE`` which is used by CrateDB - to allocate 2G for its heap. +- Defines the environment variable:ref:`CRATE_HEAP_SIZE `, + which is used by CrateDB to allocate 2G for its heap. - Runs the command ``crate`` inside the container with parameters: * ``network.host``: The ``_site_`` value results in the binding of the CrateDB process to a site-local IP address. @@ -200,7 +201,8 @@ Success! You just created a three-node CrateDB cluster with Docker. This is only a quick start example and you will notice some failing checks in the admin UI. For a more robust cluster, you should, at the very least, - configure the `Metadata Gateway`_ and `Discovery`_ settings. + configure the :ref:`Metadata Gateway ` and + :ref:`Discovery ` settings. .. _docker-troubleshooting: @@ -225,8 +227,8 @@ the ``crate`` command:: This will result in degraded performance. -You can also start a single node without any bootstrap checks by passing the -``-Cdiscovery.type=single-node`` option:: +You can also start a single node without any :ref:`bootstrap checks +` by passing the ``-Cdiscovery.type=single-node`` option:: sh$ docker run -d --name=crate01 \ --net=crate -p 4201:4200 \ @@ -242,7 +244,7 @@ You can also start a single node without any bootstrap checks by passing the Taking it further ----------------- -`CrateDB settings `_ are set +:ref:`CrateDB settings ` are set using the ``-C`` flag, as shown in the examples above. Check out the `Docker docs `_ @@ -452,9 +454,10 @@ Bootstrap checks When using CrateDB with Docker, CrateDB binds by default to any site-local IP address on the system (i.e. 192.168.0.1). This performs a number of checks -during bootstrap. The settings listed in `Bootstrap Checks`_ must be addressed on -the Docker **host system** in order to start CrateDB successfully and when -`going into production`_. +during bootstrap. The settings listed in :ref:`bootstrap checks +` must be addressed on the Docker **host system** in order +to start CrateDB successfully and when :ref:`going into production +`. Memory @@ -465,8 +468,8 @@ can use. This is dependent on your host system and should typically be as high as possible. You must then calculate the appropriate heap size (typically half the container's -memory limit, see `CRATE_HEAP_SIZE`_ for details) and pass this to CrateDB, -which in turn passes it to the JVM. +memory limit, see :ref:`CRATE_HEAP_SIZE ` +for details), and pass this to CrateDB, which in turn passes it to the JVM. It is not necessary to configure swap memory since CrateDB does not use swap. @@ -494,24 +497,17 @@ example:: crate -Cnetwork.host=_site_ -.. _Bootstrap Checks: https://crate.io/docs/crate/howtos/en/latest/admin/bootstrap-checks.html .. _compose file version: https://docs.docker.com/compose/compose-file/compose-versioning/ .. _containerization: https://www.docker.com/resources/what-container -.. _CRATE_HEAP_SIZE: https://crate.io/docs/crate/reference/en/latest/config/environment.html#conf-env-heap-size .. _CrateDB Docker image: https://hub.docker.com/_/crate/ .. _default bridge network: https://docs.docker.com/network/drivers/bridge/#use-the-default-bridge-network -.. _Discovery: https://crate.io/docs/crate/reference/en/latest/config/cluster.html#discovery .. _Docker Stack YAML file: https://docs.docker.com/docker-cloud/apps/stack-yaml-reference/ .. _Docker Swarm: https://docs.docker.com/engine/swarm/ .. _Docker volume: https://docs.docker.com/engine/tutorials/dockervolumes/ .. _Docker: https://www.docker.com/ -.. _going into production: https://crate.io/docs/crate/howtos/en/latest/going-into-production.html .. _healthcheck: https://docs.docker.com/engine/reference/builder/#healthcheck .. _horizontally scalable: https://en.wikipedia.org/wiki/Scalability#Horizontal_(scale_out)_and_vertical_scaling_(scale_up) -.. _Metadata Gateway: https://crate.io/docs/crate/reference/en/latest/config/cluster.html#metadata-gateway -.. _running Docker locally: https://crate.io/docs/crate/tutorials/en/latest/install.html#docker .. _set the maximum memory: https://docs.docker.com/config/containers/resource_constraints/#memory .. _set the maximum number of CPUs: https://docs.docker.com/config/containers/resource_constraints/#cpu -.. _shared-nothing architecture : https://en.wikipedia.org/wiki/Shared-nothing_architecture -.. _spinning up your first CrateDB instance: https://crate.io/docs/crate/tutorials/en/latest/install.html#docker +.. _shared-nothing architecture: https://en.wikipedia.org/wiki/Shared-nothing_architecture .. _user-defined network: https://docs.docker.com/network/bridge/ diff --git a/docs/install/container/kubernetes/kubernetes.rst b/docs/install/container/kubernetes/kubernetes.rst index 003bba91..617bd310 100644 --- a/docs/install/container/kubernetes/kubernetes.rst +++ b/docs/install/container/kubernetes/kubernetes.rst @@ -98,8 +98,9 @@ For our purposes, we define two services: an `internal service`_ and an Internal service ................ -CrateDB uses the internal service for `node discovery via DNS`_ and -:ref:`inter-node communication `. +CrateDB uses the internal service for :ref:`node discovery via DNS +` and :ref:`inter-node communication +`. Here's an example configuration snippet: @@ -300,10 +301,11 @@ CrateDB 5.1.1 cluster: .. SEEALSO:: - CrateDB supports `configuration via command-line options`_ and `node - discovery via DNS`_. + CrateDB supports :ref:`configuration via command-line options + ` and :ref:`node discovery via DNS + `. - :ref:`Configure memory ` by hand for optimum performance. + Explicitly :ref:`configure heap memory ` for optimum performance. You must set memory map limits correctly. Consult the :ref:`bootstrap checks ` documentation for more information. @@ -365,7 +367,6 @@ You can then use this in your controller configuration with something like this: storage: 100g .. _Azure Managed Disks: https://azure.microsoft.com/en-us/pricing/details/managed-disks/ -.. _configuration via command-line options: https://crate.io/docs/crate/reference/en/latest/config/index.html .. _configuration: https://kubernetes.io/docs/concepts/configuration/overview/ .. _containerization: https://www.docker.com/resources/what-container .. _CrateDB Docker image: https://hub.docker.com/_/crate/ @@ -376,14 +377,13 @@ You can then use this in your controller configuration with something like this: .. _LoadBalancer: https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer .. _managed: https://kubernetes.io/docs/concepts/cluster-administration/manage-deployment/ .. _Minikube: https://kubernetes.io/docs/setup/minikube/ -.. _node discovery via DNS: https://crate.io/docs/crate/reference/en/latest/config/cluster.html#discovery-via-dns .. _persistent volume: https://kubernetes.io/docs/concepts/storage/persistent-volumes/ .. _persistent volumes: https://kubernetes.io/docs/concepts/storage/persistent-volumes/ .. _pod: https://kubernetes.io/docs/concepts/workloads/pods/ .. _rolling update strategy: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#rolling-updates .. _service: https://kubernetes.io/docs/concepts/services-networking/service/ .. _services: https://kubernetes.io/docs/concepts/services-networking/service/ -.. _setting up your first CrateDB cluster on Kubernetes: https://crate.io/a/run-your-first-cratedb-cluster-on-kubernetes-part-one/ +.. _setting up your first CrateDB cluster on Kubernetes: https://cratedb.com/blog/run-your-first-cratedb-cluster-on-kubernetes-part-one .. _shared-nothing architecture : https://en.wikipedia.org/wiki/Shared-nothing_architecture .. _StatefulSet: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/ .. _StorageClass: https://kubernetes.io/docs/concepts/storage/storage-classes/ diff --git a/docs/install/windows.rst b/docs/install/windows.rst index 1a2279b5..81049b21 100644 --- a/docs/install/windows.rst +++ b/docs/install/windows.rst @@ -64,7 +64,7 @@ How to use the release archives to run CrateDB on Microsoft Windows. .. _7-Zip: https://www.7-zip.org/ -.. _contact us: https://crate.io/contact/ +.. _contact us: https://cratedb.com/contact/ .. _CrateDB release archive: https://cdn.crate.io/downloads/releases/cratedb/x64_windows/ .. _msvcrt ARM64: https://aka.ms/vs/16/release/VC_redist.arm64.exe .. _msvcrt x86-32: https://aka.ms/vs/16/release/vc_redist.x86.exe diff --git a/docs/integrate/bi/powerbi-desktop.rst b/docs/integrate/bi/powerbi-desktop.rst index ea0ff380..7169c353 100644 --- a/docs/integrate/bi/powerbi-desktop.rst +++ b/docs/integrate/bi/powerbi-desktop.rst @@ -38,7 +38,7 @@ gender breakdowns, and age groups across different countries. Prerequisites ------------- -- `A running and accessable CrateDB cluster`_ +- :ref:`A running and accessible CrateDB cluster ` - `Power BI Desktop`_ - The `PostgreSQL ODBC driver`_ @@ -190,9 +190,8 @@ The pie chart will be updated automatically, and will produce the following: .. _business intelligence: https://en.wikipedia.org/wiki/Business_intelligence .. _World Economic Outlook survey: https://www.imf.org/en/Publications/WEO -.. _A running and accessable CrateDB cluster: https://crate.io/docs/crate/howtos/en/latest/deployment/index.html .. _Power BI Desktop: https://powerbi.microsoft.com/en-us/desktop/ .. _PostgreSQL ODBC driver: https://odbc.postgresql.org/ .. _downloads section: https://www.postgresql.org/ftp/odbc/versions/msi/ .. _raw data: https://www.imf.org/en/Publications/WEO/weo-database/2017/April/download-entire-database -.. _preprocessed archive: https://crate.io/wp-content/uploads/2018/11/copy_from_population_data.zip +.. _preprocessed archive: https://cratedb.com/wp-content/uploads/2018/11/copy_from_population_data.zip diff --git a/docs/integrate/bi/powerbi-gateway.rst b/docs/integrate/bi/powerbi-gateway.rst index 046f2a6b..821bef4f 100644 --- a/docs/integrate/bi/powerbi-gateway.rst +++ b/docs/integrate/bi/powerbi-gateway.rst @@ -40,7 +40,7 @@ report uses the latest data. Prerequisites ------------- -- `A running and accessable CrateDB cluster`_ +- :ref:`A running and accessible CrateDB cluster ` - `Power BI Desktop`_ - `Microsoft Work/School account`_ or a `Power BI Pro/Trial account`_ - The `On-Premises Data Gateway`_ installed on a Windows machine that can access @@ -63,7 +63,7 @@ Creating a Report With CrateDB and Power BI Desktop Before you can publish your report, you need to have created it first. You can do this using the data from CrateDB. Please follow the -:ref:`CrateDB and PowerBI Desktop` integration +:ref:`CrateDB and PowerBI Desktop ` integration guide to do this. After running through that guide, we should have the following report: @@ -197,7 +197,6 @@ updated periodically. .. _Power BI service: https://powerbi.microsoft.com/en-us/ .. _World Economic Outlook survey: https://www.imf.org/en/Publications/WEO -.. _A running and accessable CrateDB cluster: https://crate.io/docs/crate/howtos/en/latest/deployment/index.html .. _Power BI Desktop: https://powerbi.microsoft.com/en-us/desktop/ .. _Microsoft Work/School account: https://support.microsoft.com/en-ca/help/4013943/sign-in-using-work-or-school-account .. _Power BI Pro/Trial account: https://app.powerbi.com/signupredirect?pbi_source=web diff --git a/docs/integrate/df.md b/docs/integrate/df.md index 608998b0..3084c751 100644 --- a/docs/integrate/df.md +++ b/docs/integrate/df.md @@ -20,8 +20,8 @@ How to use CrateDB together with popular open-source dataframe libraries. [Dask code examples]: https://github.com/crate/cratedb-examples/tree/main/by-dataframe/dask [Efficient batch/bulk INSERT operations with pandas, Dask, and SQLAlchemy]: https://cratedb.com/docs/python/en/latest/by-example/sqlalchemy/dataframe.html -[Guide to efficient data ingestion to CrateDB with pandas]: https://community.crate.io/t/guide-to-efficient-data-ingestion-to-cratedb-with-pandas/1541 -[Guide to efficient data ingestion to CrateDB with pandas and Dask]: https://community.crate.io/t/guide-to-efficient-data-ingestion-to-cratedb-with-pandas-and-dask/1482 -[Importing Parquet files into CrateDB using Apache Arrow and SQLAlchemy]: https://community.crate.io/t/importing-parquet-files-into-cratedb-using-apache-arrow-and-sqlalchemy/1161 +[Guide to efficient data ingestion to CrateDB with pandas]: https://community.cratedb.com/t/guide-to-efficient-data-ingestion-to-cratedb-with-pandas/1541 +[Guide to efficient data ingestion to CrateDB with pandas and Dask]: https://community.cratedb.com/t/guide-to-efficient-data-ingestion-to-cratedb-with-pandas-and-dask/1482 +[Importing Parquet files into CrateDB using Apache Arrow and SQLAlchemy]: https://community.cratedb.com/t/importing-parquet-files-into-cratedb-using-apache-arrow-and-sqlalchemy/1161 [pandas code examples]: https://github.com/crate/cratedb-examples/tree/main/by-dataframe/pandas [Polars code examples]: https://github.com/crate/cratedb-examples/tree/main/by-dataframe/polars diff --git a/docs/integrate/etl/azure-functions.rst b/docs/integrate/etl/azure-functions.rst index 87aab9cc..1d604a24 100644 --- a/docs/integrate/etl/azure-functions.rst +++ b/docs/integrate/etl/azure-functions.rst @@ -82,7 +82,7 @@ In order to deploy this architecture, there are several prerequisites: `data simulators`_. - An `Azure storage account`_ - A `development environment for Azure Functions`_ -- A running `CrateDB cluster`_ +- A running :ref:`CrateDB cluster ` CrateDB ------- @@ -339,7 +339,7 @@ can go through it step by step: // Construct SQL insertion statement // We do it this way so we can bulk insert the whole payload of event hub messages at once, rather than inserting row by row. // However, the pg client does not support bulk inserts on the client side. Instead, we use UNNEST to do bulk insertion on the server side. - // See: https://crate.io/a/bulk-inserts-with-unnest/ for more information. + // See: https://cratedb.com/blog/bulk-inserts-with-unnest for more information. const stmt = `INSERT INTO ${SINK_TABLE} (${SINK_COLUMN_TIMESTAMPS}, ${SINK_COLUMN_UNMANNED}, ${SINK_COLUMN_MANNED}, ${SINK_COLUMN_DEBUG}) ` + `(SELECT * FROM UNNEST (['${timestamps.join("','")}'], [${unmanned}], [${manned}], [${debugs}]));` @@ -373,7 +373,6 @@ a new device and send a device-to-cloud (D2C) message for testing purposes. .. _Azure CLI: https://docs.microsoft.com/en-us/azure/azure-functions/create-first-function-cli-csharp .. _node-postgres: https://www.npmjs.com/package/pg .. _Azure Event Hubs bindings for Azure Functions documentation: https://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-event-hubs-trigger?tabs=javascript -.. _CrateDB cluster: https://crate.io/docs/crate/howtos/en/latest/deployment/cloud/azure.html .. _Azure IoT Hub: https://azure.microsoft.com/en-us/services/iot-hub/ .. _Azure storage account: https://docs.microsoft.com/en-us/azure/storage/common/storage-account-overview .. _data simulators: https://docs.microsoft.com/en-us/azure/iot-accelerators/quickstart-device-simulation-deploy diff --git a/docs/integrate/etl/mongodb.rst b/docs/integrate/etl/mongodb.rst index 4dea47aa..537ed97a 100644 --- a/docs/integrate/etl/mongodb.rst +++ b/docs/integrate/etl/mongodb.rst @@ -59,8 +59,8 @@ off:: CREATE OK, 1 row affected (... sec) For fields that contain text consider using a full-text analyzer. This will -enable great full-text search capabilities. See `Indices and Fulltext Search`_ -for more information. +enable great full-text search capabilities. See :ref:`Indices and Fulltext +Search ` for more information. CrateDB is able to create dynamically defined table schemas, which can be extended as data is inserted, so it is not necessary to define all the columns @@ -125,21 +125,17 @@ This can be useful for collections with complex or heavily-nested schemas. .. SEEALSO:: - - `Data Definition`_ - - `CREATE TABLE`_ + - :ref:`Data Definition ` + - :ref:`CREATE TABLE ` After the table has been created the file can be imported using -`COPY FROM`_. +:ref:`COPY FROM `. .. SEEALSO:: :ref:`bulk-inserts` -.. _COPY FROM: https://crate.io/docs/crate/reference/sql/reference/copy_from.html -.. _CREATE TABLE: https://crate.io/docs/crate/reference/sql/reference/create_table.html -.. _Data Definition: https://crate.io/docs/crate/reference/sql/ddl/index.html -.. _Indices and Fulltext Search: https://crate.io/docs/crate/reference/sql/ddl/indices_full_search.html .. _MongoDB Extended JSON: https://docs.mongodb.com/manual/reference/mongodb-extended-json/ .. _MongoDB migration tool: https://github.com/crate/mongodb-cratedb-migration-tool diff --git a/docs/integrate/etl/mysql.rst b/docs/integrate/etl/mysql.rst index e4b31f15..215701cd 100644 --- a/docs/integrate/etl/mysql.rst +++ b/docs/integrate/etl/mysql.rst @@ -103,9 +103,8 @@ The final export query:: Importing data into CrateDB =========================== -Use the ``COPY FROM`` statement to import your CSV file into CrateDB. - -For more in-depth documentation on ``COPY FROM``, see `COPY FROM`_. +Use the :ref:`COPY FROM ` statement to +import your CSV file into CrateDB. :: @@ -136,9 +135,8 @@ For example: CrateDB, the latest version of the `CrateDB Python package`_ is required. -.. _COPY FROM: https://crate.io/docs/crate/reference/sql/reference/copy_from.html .. _CrateDB Python package: https://pypi.org/project/crate/ -.. _CrateDB: https://crate.io/ +.. _CrateDB: https://cratedb.com/ .. _csvkit: https://csvkit.readthedocs.io/en/latest/ .. _csvsql: https://csvkit.readthedocs.io/en/latest/scripts/csvsql.html .. _date/time types in MySQL: https://dev.mysql.com/doc/refman/8.0/en/date-and-time-types.html diff --git a/docs/integrate/etl/streamsets.rst b/docs/integrate/etl/streamsets.rst index 19b81977..b319f3b0 100644 --- a/docs/integrate/etl/streamsets.rst +++ b/docs/integrate/etl/streamsets.rst @@ -37,8 +37,8 @@ then be used in analytics/visualization queries. Prerequisites ------------- -- `A running and accessable CrateDB cluster`_ -- `A running and accessable StreamSets Data Collector`_ +- :ref:`A running and accessible CrateDB cluster ` +- `A running and accessible StreamSets Data Collector`_ - StreamSet's `New York taxi dataset`_ downloaded to a location that can be accessed by the Data Collector. - The `CrateDB JDBC driver`_ installed as an external library for the data @@ -149,10 +149,9 @@ You can verify that the data is now in CrateDB: SELECT 1 row in set (0.050 sec) -.. _A running and accessable CrateDB cluster: https://crate.io/docs/crate/howtos/en/latest/deployment/index.html -.. _A running and accessable StreamSets Data Collector: https://streamsets.com/products/dataops-platform-2/data-collector-engine/ +.. _A running and accessible StreamSets Data Collector: https://streamsets.com/products/dataops-platform-2/data-collector-engine/ .. _Maven Repository: https://repo1.maven.org/maven2/io/crate/crate-jdbc-standalone/ -.. _CrateDB JDBC driver: https://crate.io/docs/jdbc/en/latest/ +.. _CrateDB JDBC driver: https://cratedb.com/docs/jdbc/ .. _external libraries: https://streamsets.com/documentation/datacollector/latest/help/datacollector/UserGuide/Configuration/ExternalLibs.html .. _New York taxi dataset: https://streamsets.com/documentation/datacollector/latest/help/datacollector/UserGuide/Tutorial/BeforeYouBegin.html?hl=nyc_taxi_data/ .. _StreamSets Data Collector: https://streamsets.com/products/dataops-platform-2/data-collector-engine/ diff --git a/docs/integrate/ml/index.md b/docs/integrate/ml/index.md index 5feb62a1..493952fb 100644 --- a/docs/integrate/ml/index.md +++ b/docs/integrate/ml/index.md @@ -96,9 +96,9 @@ tensorflow [LangChain: Chatbots]: https://python.langchain.com/docs/use_cases/chatbots [LangChain: Retrieval augmented generation]: https://python.langchain.com/docs/use_cases/question_answering/ [LangChain and CrateDB: Code Examples]: https://github.com/crate/cratedb-examples/tree/main/topic/machine-learning/llm-langchain -[Machine Learning and CrateDB: An introduction]: https://crate.io/blog/machine-learning-and-cratedb-part-one -[Machine Learning and CrateDB: Getting Started With Jupyter]: https://crate.io/blog/machine-learning-cratedb-jupyter -[Machine Learning and CrateDB: Experiment Design & Linear Regression]: https://crate.io/blog/machine-learning-and-cratedb-part-three-experiment-design-and-linear-regression +[Machine Learning and CrateDB: An introduction]: https://cratedb.com/blog/machine-learning-and-cratedb-part-one +[Machine Learning and CrateDB: Getting Started With Jupyter]: https://cratedb.com/blog/machine-learning-cratedb-jupyter +[Machine Learning and CrateDB: Experiment Design & Linear Regression]: https://cratedb.com/blog/machine-learning-and-cratedb-part-three-experiment-design-and-linear-regression [MLflow]: https://mlflow.org/ [MLflow and CrateDB]: https://github.com/crate/cratedb-examples/tree/main/topic/machine-learning/mlops-mlflow [pandas]: https://pandas.pydata.org/ diff --git a/docs/integrate/ml/tensorflow.rst b/docs/integrate/ml/tensorflow.rst index e23fe25a..8ede66d4 100644 --- a/docs/integrate/ml/tensorflow.rst +++ b/docs/integrate/ml/tensorflow.rst @@ -57,7 +57,7 @@ Using this data with TensorFlow, you will want to accomplish the following: Prerequisites ------------- -- `A running CrateDB cluster`_ +- :ref:`A running CrateDB cluster ` - `An AWS S3 storage bucket`_ To be able to use the *boto3* AWS client, you will need to provide credentials @@ -538,7 +538,6 @@ pipeline. The training and prediction stages are decoupled, and can be distributed across different machines, contexts, and scenarios. -.. _A running CrateDB cluster: https://crate.io/docs/crate/howtos/en/latest/deployment/index.html .. _An AWS S3 storage bucket: https://aws.amazon.com/s3/ .. _boto3: https://boto3.amazonaws.com/v1/documentation/api/latest/index.html .. _joblib: https://joblib.readthedocs.io/en/latest/index.html diff --git a/docs/integrate/visualize/metabase.rst b/docs/integrate/visualize/metabase.rst index 815aaa89..347fd3d5 100644 --- a/docs/integrate/visualize/metabase.rst +++ b/docs/integrate/visualize/metabase.rst @@ -108,4 +108,4 @@ and get started! .. _Cloud Console: https://console.cratedb.cloud/ .. _Metabase: https://www.metabase.com/ .. _video tutorial: https://www.youtube.com/watch?v=veuR_76njCo -.. _in this how-to: https://community.crate.io/t/importing-data-to-cratedb-cloud-clusters/1467 +.. _in this how-to: https://community.cratedb.com/t/importing-data-to-cratedb-cloud-clusters/1467 diff --git a/docs/integrate/visualize/r.rst b/docs/integrate/visualize/r.rst index 08927c29..5c61dd4b 100644 --- a/docs/integrate/visualize/r.rst +++ b/docs/integrate/visualize/r.rst @@ -55,7 +55,7 @@ Using R, we want to: Prerequisites ------------- -- `A running CrateDB cluster`_ +- :ref:`A running CrateDB cluster ` - `R`_ (optionally with a third party tool like `RStudio`_) - The `RPostgreSQL`_ library - The `caret`_ library @@ -360,7 +360,6 @@ CrateDB. .. _R: https://www.r-project.org/ .. _RPostgreSQL: https://cran.r-project.org/web/packages/RPostgreSQL/index.html .. _iris classification problem: https://en.wikipedia.org/wiki/Iris_flower_data_set -.. _A running CrateDB cluster: https://crate.io/docs/crate/howtos/en/latest/deployment/index.html .. _RStudio: https://rstudio.com/ .. _caret: https://cran.r-project.org/web/packages/caret/index.html .. _Linear Discriminant Analysis: https://en.wikipedia.org/wiki/Linear_discriminant_analysis