From 4ee2ab2e6234f9cff82ffb53c6e9cc6b6f1b0c3b Mon Sep 17 00:00:00 2001 From: danielle9897 Date: Wed, 10 Jul 2024 15:27:20 +0300 Subject: [PATCH 01/25] RDoc-2882 Fix docs.json files, fix the duplication of file general-info --- .../server/ongoing-tasks/.docs.json | 42 +++++++++++-------- .../operations/maintenance/.docs.json | 5 +++ .../maintenance/ongoing-tasks/.docs.json | 20 +++++++++ .../server/ongoing-tasks/.docs.json | 20 ++++----- .../database/tasks/ongoing-tasks/.docs.json | 10 ++--- 5 files changed, 64 insertions(+), 33 deletions(-) create mode 100644 Documentation/6.1/Raven.Documentation.Pages/client-api/operations/maintenance/ongoing-tasks/.docs.json diff --git a/Documentation/4.1/Raven.Documentation.Pages/server/ongoing-tasks/.docs.json b/Documentation/4.1/Raven.Documentation.Pages/server/ongoing-tasks/.docs.json index f541e53106..5b5b95fae1 100644 --- a/Documentation/4.1/Raven.Documentation.Pages/server/ongoing-tasks/.docs.json +++ b/Documentation/4.1/Raven.Documentation.Pages/server/ongoing-tasks/.docs.json @@ -1,19 +1,25 @@ [ - { - "Path": "general-info.markdown", - "Name": "General Info", - "DiscussionId": "d24b385e-5eae-4171-b35d-277157b8e933", - "Mappings": [] - }, - { - "Path": "/etl", - "Name": "ETL", - "Mappings": [] - }, - { - "Path": "backup-overview.markdown", - "Name": "Backup Overview", - "DiscussionId": "2b3b34b3-04f0-4c1a-bfcf-40a9ed314f8a", - "Mappings": [] - } -] \ No newline at end of file + { + "Path": "general-info.markdown", + "Name": "General Info", + "LastSupportedVersion": "4.1", + "DiscussionId": "d24b385e-5eae-4171-b35d-277157b8e933", + "Mappings": [ + { + "Version": 4.2, + "Key": "studio/database/tasks/ongoing-tasks/general-info" + } + ] + }, + { + "Path": "/etl", + "Name": "ETL", + "Mappings": [] + }, + { + "Path": "backup-overview.markdown", + "Name": "Backup Overview", + "DiscussionId": "2b3b34b3-04f0-4c1a-bfcf-40a9ed314f8a", + "Mappings": [] + } +] diff --git a/Documentation/6.1/Raven.Documentation.Pages/client-api/operations/maintenance/.docs.json b/Documentation/6.1/Raven.Documentation.Pages/client-api/operations/maintenance/.docs.json index c9e23fe685..a42d579072 100644 --- a/Documentation/6.1/Raven.Documentation.Pages/client-api/operations/maintenance/.docs.json +++ b/Documentation/6.1/Raven.Documentation.Pages/client-api/operations/maintenance/.docs.json @@ -31,6 +31,11 @@ "Name": "Indexes", "Mappings": [] }, + { + "Path": "/ongoing-tasks", + "Name": "Ongoing Tasks", + "Mappings": [] + }, { "Path": "/backup", "Name": "Backup", diff --git a/Documentation/6.1/Raven.Documentation.Pages/client-api/operations/maintenance/ongoing-tasks/.docs.json b/Documentation/6.1/Raven.Documentation.Pages/client-api/operations/maintenance/ongoing-tasks/.docs.json new file mode 100644 index 0000000000..80b793c704 --- /dev/null +++ b/Documentation/6.1/Raven.Documentation.Pages/client-api/operations/maintenance/ongoing-tasks/.docs.json @@ -0,0 +1,20 @@ +[ + { + "Path": "get-ongoing-task.markdown", + "Name": "Get ongoing task", + "DiscussionId": "b56f5a63-46cf-4e61-956e-4c3e7592274b", + "Mappings": [] + }, + { + "Path": "delete-ongoing-task.markdown", + "Name": "Delete ongoing task", + "DiscussionId": "af769b85-298f-41af-b17b-de9b1f118ffb", + "Mappings": [] + }, + { + "Path": "toggle-ongoing-task.markdown", + "Name": "toggle ongoing task", + "DiscussionId": "4f7355c1-7982-4364-8328-67c0fc73cab9", + "Mappings": [] + } +] diff --git a/Documentation/6.1/Raven.Documentation.Pages/server/ongoing-tasks/.docs.json b/Documentation/6.1/Raven.Documentation.Pages/server/ongoing-tasks/.docs.json index d536290f32..a42106293a 100644 --- a/Documentation/6.1/Raven.Documentation.Pages/server/ongoing-tasks/.docs.json +++ b/Documentation/6.1/Raven.Documentation.Pages/server/ongoing-tasks/.docs.json @@ -1,12 +1,8 @@ [ { - "Path": "/etl", - "Name": "ETL", - "Mappings": [] - }, - { - "Path": "/queue-sink", - "Name": "Queue Sink", + "Path": "external-replication.markdown", + "Name": "External Replication", + "DiscussionId": "70d71f23-2b91-4c03-9171-115aa91d18fa", "Mappings": [] }, { @@ -31,9 +27,13 @@ "Mappings": [] }, { - "Path": "external-replication.markdown", - "Name": "External Replication", - "DiscussionId": "70d71f23-2b91-4c03-9171-115aa91d18fa", + "Path": "/etl", + "Name": "ETL", + "Mappings": [] + }, + { + "Path": "/queue-sink", + "Name": "Queue Sink", "Mappings": [] } ] diff --git a/Documentation/6.1/Raven.Documentation.Pages/studio/database/tasks/ongoing-tasks/.docs.json b/Documentation/6.1/Raven.Documentation.Pages/studio/database/tasks/ongoing-tasks/.docs.json index c9c6231889..966fa056d8 100644 --- a/Documentation/6.1/Raven.Documentation.Pages/studio/database/tasks/ongoing-tasks/.docs.json +++ b/Documentation/6.1/Raven.Documentation.Pages/studio/database/tasks/ongoing-tasks/.docs.json @@ -1,7 +1,7 @@ [ { "Path": "general-info.markdown", - "Name": "General Info", + "Name": "Overview", "DiscussionId": "3ebce840-1ea8-4f9e-ae50-0275661a3c1d", "Mappings": [] }, @@ -48,14 +48,14 @@ "Mappings": [] }, { - "Path": "rabbitmq-etl-task.markdown", - "Name": "RabbitMQ ETL Task", + "Path": "kafka-queue-sink.markdown", + "Name": "Kafka Queue Sink", "DiscussionId": "89c14b90-9ddd-426d-b0f4-60a49d5865c0", "Mappings": [] }, { - "Path": "kafka-queue-sink.markdown", - "Name": "Kafka Queue Sink", + "Path": "rabbitmq-etl-task.markdown", + "Name": "RabbitMQ ETL Task", "DiscussionId": "89c14b90-9ddd-426d-b0f4-60a49d5865c0", "Mappings": [] }, From de99d232926d48e40d2c5e5e49a6e1632aafd348 Mon Sep 17 00:00:00 2001 From: danielle9897 Date: Wed, 10 Jul 2024 16:06:27 +0300 Subject: [PATCH 02/25] RDoc-2882 Create a new ongoing-tasks operations article instead of the duplicate "general-info" article that was under the Server section. --- .../what-are-operations.dotnet.markdown | 4 +- .../what-are-operations.js.markdown | 4 +- .../what-are-operations.dotnet.markdown | 4 +- .../what-are-operations.js.markdown | 4 +- .../indexes/delete-index.dotnet.markdown | 4 +- .../what-are-operations.dotnet.markdown | 4 +- .../what-are-operations.js.markdown | 4 +- .../what-are-operations.python.markdown | 4 +- .../maintenance/ongoing-tasks/.docs.json | 16 +- .../ongoing-task-operations.dotnet.markdown | 75 +++ .../what-are-operations.dotnet.markdown | 441 ++++++++++++++++++ .../what-are-operations.java.markdown | 145 ++++++ .../what-are-operations.js.markdown | 430 +++++++++++++++++ .../what-are-operations.python.markdown | 372 +++++++++++++++ .../OngoingTasks/OngoingTaskOperations.cs | 148 ++++++ .../ClientApi/Operations/WhatAreOperations.cs | 361 ++++++++++++++ .../Operations/WhatAreOperations.java | 101 ++++ .../operations/whatAreOperations.js | 93 ++++ .../ClientApi/Operations/WhatAreOperations.py | 151 ++++++ 19 files changed, 2335 insertions(+), 30 deletions(-) create mode 100644 Documentation/6.1/Raven.Documentation.Pages/client-api/operations/maintenance/ongoing-tasks/ongoing-task-operations.dotnet.markdown create mode 100644 Documentation/6.1/Raven.Documentation.Pages/client-api/operations/what-are-operations.dotnet.markdown create mode 100644 Documentation/6.1/Raven.Documentation.Pages/client-api/operations/what-are-operations.java.markdown create mode 100644 Documentation/6.1/Raven.Documentation.Pages/client-api/operations/what-are-operations.js.markdown create mode 100644 Documentation/6.1/Raven.Documentation.Pages/client-api/operations/what-are-operations.python.markdown create mode 100644 Documentation/6.1/Samples/csharp/Raven.Documentation.Samples/ClientApi/Operations/Maintenance/OngoingTasks/OngoingTaskOperations.cs create mode 100644 Documentation/6.1/Samples/csharp/Raven.Documentation.Samples/ClientApi/Operations/WhatAreOperations.cs create mode 100644 Documentation/6.1/Samples/java/src/test/java/net/ravendb/ClientApi/Operations/WhatAreOperations.java create mode 100644 Documentation/6.1/Samples/nodejs/client-api/operations/whatAreOperations.js create mode 100644 Documentation/6.1/Samples/python/ClientApi/Operations/WhatAreOperations.py diff --git a/Documentation/5.2/Raven.Documentation.Pages/client-api/operations/what-are-operations.dotnet.markdown b/Documentation/5.2/Raven.Documentation.Pages/client-api/operations/what-are-operations.dotnet.markdown index 537fd6d313..0a288c7515 100644 --- a/Documentation/5.2/Raven.Documentation.Pages/client-api/operations/what-are-operations.dotnet.markdown +++ b/Documentation/5.2/Raven.Documentation.Pages/client-api/operations/what-are-operations.dotnet.markdown @@ -9,8 +9,8 @@ and the **[Session](../../client-api/session/what-is-a-session-and-how-does-it-work)**. They in turn are built on top of the lower-level __Operations__ and __RavenCommands__ API. -* __RavenDB provides access to this lower-level API__, so that instead of using the higher session API, - you can generate requests directly to the server by executing operations on the DocumentStore. +* **RavenDB provides direct access to this lower-level API**, allowing you to send requests + directly to the server via DocumentStore Operations instead of using the higher-level Session API. * In this page: * [Why use operations](../../client-api/operations/what-are-operations#why-use-operations) diff --git a/Documentation/5.2/Raven.Documentation.Pages/client-api/operations/what-are-operations.js.markdown b/Documentation/5.2/Raven.Documentation.Pages/client-api/operations/what-are-operations.js.markdown index e1b51c3310..a64faacb47 100644 --- a/Documentation/5.2/Raven.Documentation.Pages/client-api/operations/what-are-operations.js.markdown +++ b/Documentation/5.2/Raven.Documentation.Pages/client-api/operations/what-are-operations.js.markdown @@ -9,8 +9,8 @@ and the **[Session](../../client-api/session/what-is-a-session-and-how-does-it-work)**. They in turn are built on top of the lower-level __Operations__ and __RavenCommands__ API. -* __RavenDB provides access to this lower-level API__, so that instead of using the higher session API, - you can generate requests directly to the server by executing operations on the DocumentStore. +* **RavenDB provides direct access to this lower-level API**, allowing you to send requests + directly to the server via DocumentStore Operations instead of using the higher-level Session API. * In this page: * [Why use operations](../../client-api/operations/what-are-operations#why-use-operations) diff --git a/Documentation/5.3/Raven.Documentation.Pages/client-api/operations/what-are-operations.dotnet.markdown b/Documentation/5.3/Raven.Documentation.Pages/client-api/operations/what-are-operations.dotnet.markdown index 780e16ad5e..1507d524d3 100644 --- a/Documentation/5.3/Raven.Documentation.Pages/client-api/operations/what-are-operations.dotnet.markdown +++ b/Documentation/5.3/Raven.Documentation.Pages/client-api/operations/what-are-operations.dotnet.markdown @@ -9,8 +9,8 @@ and the **[Session](../../client-api/session/what-is-a-session-and-how-does-it-work)**. They in turn are built on top of the lower-level __Operations__ and __RavenCommands__ API. -* __RavenDB provides access to this lower-level API__, so that instead of using the higher session API, - you can generate requests directly to the server by executing operations on the DocumentStore. +* **RavenDB provides direct access to this lower-level API**, allowing you to send requests + directly to the server via DocumentStore Operations instead of using the higher-level Session API. * In this page: * [Why use operations](../../client-api/operations/what-are-operations#why-use-operations) diff --git a/Documentation/5.3/Raven.Documentation.Pages/client-api/operations/what-are-operations.js.markdown b/Documentation/5.3/Raven.Documentation.Pages/client-api/operations/what-are-operations.js.markdown index 831b17b41a..9e7318b321 100644 --- a/Documentation/5.3/Raven.Documentation.Pages/client-api/operations/what-are-operations.js.markdown +++ b/Documentation/5.3/Raven.Documentation.Pages/client-api/operations/what-are-operations.js.markdown @@ -9,8 +9,8 @@ and the **[Session](../../client-api/session/what-is-a-session-and-how-does-it-work)**. They in turn are built on top of the lower-level __Operations__ and __RavenCommands__ API. -* __RavenDB provides access to this lower-level API__, so that instead of using the higher session API, - you can generate requests directly to the server by executing operations on the DocumentStore. +* **RavenDB provides direct access to this lower-level API**, allowing you to send requests + directly to the server via DocumentStore Operations instead of using the higher-level Session API. * In this page: * [Why use operations](../../client-api/operations/what-are-operations#why-use-operations) diff --git a/Documentation/5.4/Raven.Documentation.Pages/client-api/operations/maintenance/indexes/delete-index.dotnet.markdown b/Documentation/5.4/Raven.Documentation.Pages/client-api/operations/maintenance/indexes/delete-index.dotnet.markdown index ab59125d7a..a0d816769d 100644 --- a/Documentation/5.4/Raven.Documentation.Pages/client-api/operations/maintenance/indexes/delete-index.dotnet.markdown +++ b/Documentation/5.4/Raven.Documentation.Pages/client-api/operations/maintenance/indexes/delete-index.dotnet.markdown @@ -29,8 +29,8 @@ {CODE syntax@ClientApi\Operations\Maintenance\Indexes\DeleteIndex.cs /} -| Parameters | Type | Description | -|- | - | - | +| Parameter | Type | Description | +|---------------|----------|-------------------------| | **indexName** | `string` | Name of index to delete | {PANEL/} diff --git a/Documentation/5.4/Raven.Documentation.Pages/client-api/operations/what-are-operations.dotnet.markdown b/Documentation/5.4/Raven.Documentation.Pages/client-api/operations/what-are-operations.dotnet.markdown index 15aee886c6..670483064a 100644 --- a/Documentation/5.4/Raven.Documentation.Pages/client-api/operations/what-are-operations.dotnet.markdown +++ b/Documentation/5.4/Raven.Documentation.Pages/client-api/operations/what-are-operations.dotnet.markdown @@ -9,8 +9,8 @@ and the **[Session](../../client-api/session/what-is-a-session-and-how-does-it-work)**. They in turn are built on top of the lower-level **Operations** and **Commands** API. -* **RavenDB provides direct access to this lower-level API**, allowing direct delivery of requests - to the server via document store operations instead of using the higher-level Session API. +* **RavenDB provides direct access to this lower-level API**, allowing you to send requests + directly to the server via DocumentStore Operations instead of using the higher-level Session API. * In this page: * [Why use operations](../../client-api/operations/what-are-operations#why-use-operations) diff --git a/Documentation/5.4/Raven.Documentation.Pages/client-api/operations/what-are-operations.js.markdown b/Documentation/5.4/Raven.Documentation.Pages/client-api/operations/what-are-operations.js.markdown index c93b195e4e..e35d90c965 100644 --- a/Documentation/5.4/Raven.Documentation.Pages/client-api/operations/what-are-operations.js.markdown +++ b/Documentation/5.4/Raven.Documentation.Pages/client-api/operations/what-are-operations.js.markdown @@ -9,8 +9,8 @@ and the **[Session](../../client-api/session/what-is-a-session-and-how-does-it-work)**. They in turn are built on top of the lower-level **Operations** and **Commands** API. -* **RavenDB provides direct access to this lower-level API**, allowing direct delivery of requests - to the server via document store operations instead of using the higher-level session API. +* **RavenDB provides direct access to this lower-level API**, allowing you to send requests + directly to the server via DocumentStore Operations instead of using the higher-level Session API. * In this page: * [Why use operations](../../client-api/operations/what-are-operations#why-use-operations) diff --git a/Documentation/5.4/Raven.Documentation.Pages/client-api/operations/what-are-operations.python.markdown b/Documentation/5.4/Raven.Documentation.Pages/client-api/operations/what-are-operations.python.markdown index 018b7cc698..ccfa934148 100644 --- a/Documentation/5.4/Raven.Documentation.Pages/client-api/operations/what-are-operations.python.markdown +++ b/Documentation/5.4/Raven.Documentation.Pages/client-api/operations/what-are-operations.python.markdown @@ -9,8 +9,8 @@ and the **[session](../../client-api/session/what-is-a-session-and-how-does-it-work)**. They in turn are built on top of the lower-level **Operations** and **Commands** API. -* **RavenDB provides direct access to this lower-level API**, allowing direct delivery of requests - to the server via document store operations instead of using the higher-level session API. +* **RavenDB provides direct access to this lower-level API**, allowing you to send requests + directly to the server via DocumentStore Operations instead of using the higher-level Session API. * In this page: * [Why use operations](../../client-api/operations/what-are-operations#why-use-operations) diff --git a/Documentation/6.1/Raven.Documentation.Pages/client-api/operations/maintenance/ongoing-tasks/.docs.json b/Documentation/6.1/Raven.Documentation.Pages/client-api/operations/maintenance/ongoing-tasks/.docs.json index 80b793c704..887e78d82b 100644 --- a/Documentation/6.1/Raven.Documentation.Pages/client-api/operations/maintenance/ongoing-tasks/.docs.json +++ b/Documentation/6.1/Raven.Documentation.Pages/client-api/operations/maintenance/ongoing-tasks/.docs.json @@ -1,20 +1,8 @@ [ { - "Path": "get-ongoing-task.markdown", - "Name": "Get ongoing task", + "Path": "ongoing-task-operations.markdown", + "Name": "Ongoing Task Operations", "DiscussionId": "b56f5a63-46cf-4e61-956e-4c3e7592274b", "Mappings": [] - }, - { - "Path": "delete-ongoing-task.markdown", - "Name": "Delete ongoing task", - "DiscussionId": "af769b85-298f-41af-b17b-de9b1f118ffb", - "Mappings": [] - }, - { - "Path": "toggle-ongoing-task.markdown", - "Name": "toggle ongoing task", - "DiscussionId": "4f7355c1-7982-4364-8328-67c0fc73cab9", - "Mappings": [] } ] diff --git a/Documentation/6.1/Raven.Documentation.Pages/client-api/operations/maintenance/ongoing-tasks/ongoing-task-operations.dotnet.markdown b/Documentation/6.1/Raven.Documentation.Pages/client-api/operations/maintenance/ongoing-tasks/ongoing-task-operations.dotnet.markdown new file mode 100644 index 0000000000..4cf85021ca --- /dev/null +++ b/Documentation/6.1/Raven.Documentation.Pages/client-api/operations/maintenance/ongoing-tasks/ongoing-task-operations.dotnet.markdown @@ -0,0 +1,75 @@ +# Ongoing Task Operations +--- + +{NOTE: } + +* Once an ongoing task is created, it can be managed via the Client API [Operations](../../../../client-api/operations/what-are-operations). + You can get task info, toggle the task state (enable, disable), or delete the task. + +* Ongoing tasks can also be managed via the [Tasks list view](../../../../studio/database/tasks/ongoing-tasks/general-info#ongoing-tasks---view) in the Studio. + +* In this page: + * [Get ongoing task info](../../../../client-api/operations/maintenance/ongoing-tasks/ongoing-task-operations#get-ongoing-task-info) + * [Delete ongoing task](../../../../client-api/operations/maintenance/ongoing-tasks/ongoing-task-operations#delete-ongoing-task) + * [Toggle ongoing task state](../../../../client-api/operations/maintenance/ongoing-tasks/ongoing-task-operations#toggle-ongoing-task-state) + * [Syntax](../../../../client-api/operations/maintenance/ongoing-tasks/ongoing-task-operations#syntax) + +{NOTE/} + +{PANEL: Get ongoing task info} + +For the examples in this article, let's create a simple external replication ongoing task: + +{CODE:csharp create_task@ClientApi\Operations\Maintenance\OngoingTasks\OngoingTaskOperations.cs /} + +--- + +Use `GetOngoingTaskInfoOperation` to get information about an ongoing task. + +{CODE-TABS} +{CODE-TAB:csharp:Sync get@ClientApi\Operations\Maintenance\OngoingTasks\OngoingTaskOperations.cs /} +{CODE-TAB:csharp:Async get_async@ClientApi\Operations\Maintenance\OngoingTasks\OngoingTaskOperations.cs /} +{CODE-TABS/} + +{PANEL/} + +{PANEL: Delete ongoing task} + +Use `DeleteOngoingTaskOperation` to remove an ongoing task from the list of tasks assigned to the database. + +{CODE-TABS} +{CODE-TAB:csharp:Sync delete@ClientApi\Operations\Maintenance\OngoingTasks\OngoingTaskOperations.cs /} +{CODE-TAB:csharp:Async delete_async@ClientApi\Operations\Maintenance\OngoingTasks\OngoingTaskOperations.cs /} +{CODE-TABS/} + +{PANEL/} + +{PANEL: Toggle ongoing task state} + +Use `ToggleOngoingTaskStateOperation` to enable/disable the task state. + +{CODE-TABS} +{CODE-TAB:csharp:Sync toggle@ClientApi\Operations\Maintenance\OngoingTasks\OngoingTaskOperations.cs /} +{CODE-TAB:csharp:Async toggle_async@ClientApi\Operations\Maintenance\OngoingTasks\OngoingTaskOperations.cs /} +{CODE-TABS/} + +{PANEL/} + +{PANEL: Syntax} + +{CODE syntax_1@ClientApi\Operations\Maintenance\OngoingTasks\OngoingTaskOperations.cs /} + +{CODE syntax_2@ClientApi\Operations\Maintenance\OngoingTasks\OngoingTaskOperations.cs /} + +{CODE syntax_3@ClientApi\Operations\Maintenance\OngoingTasks\OngoingTaskOperations.cs /} + +| Parameter | Type | Description | +|--------------|-------------------|--------------------------------------------------------| +| **taskId** | `long` | Task ID | +| **taskName** | `string` | Task name | +| **taskType** | `OngoingTaskType` | Task type | +| **disable** | `bool` | `true` - disable the task
`false` - enable the task | + +{CODE syntax_4@ClientApi\Operations\Maintenance\OngoingTasks\OngoingTaskOperations.cs /} + +{PANEL/} diff --git a/Documentation/6.1/Raven.Documentation.Pages/client-api/operations/what-are-operations.dotnet.markdown b/Documentation/6.1/Raven.Documentation.Pages/client-api/operations/what-are-operations.dotnet.markdown new file mode 100644 index 0000000000..55e92aafad --- /dev/null +++ b/Documentation/6.1/Raven.Documentation.Pages/client-api/operations/what-are-operations.dotnet.markdown @@ -0,0 +1,441 @@ +# What are Operations + +--- + +{NOTE: } + +* The RavenDB Client API is built with the notion of layers. + At the top, and what you will usually interact with, are the **[DocumentStore](../../client-api/what-is-a-document-store)** + and the **[Session](../../client-api/session/what-is-a-session-and-how-does-it-work)**. + They in turn are built on top of the lower-level **Operations** and **Commands** API. + +* **RavenDB provides direct access to this lower-level API**, allowing you to send requests + directly to the server via DocumentStore Operations instead of using the higher-level Session API. + +* In this page: + * [Why use operations](../../client-api/operations/what-are-operations#why-use-operations) + * [How operations work](../../client-api/operations/what-are-operations#how-operations-work) +
+ * **Operation types**: + * [Common operations](../../client-api/operations/what-are-operations#common-operations) + * [Maintenance operations](../../client-api/operations/what-are-operations#maintenance-operations) + * [Server-maintenance operations](../../client-api/operations/what-are-operations#server-maintenance-operations) + * [Manage lengthy operations](../../client-api/operations/what-are-operations#manage-lengthy-operations) + * [Wait for completion](../../client-api/operations/what-are-operations#wait-for-completion) + * [Kill operation](../../client-api/operations/what-are-operations#kill-operation) + +{NOTE/} + +--- + +{PANEL: Why use operations} + +* Operations provide **management functionality** that is Not available in the context of the session, for example: + * Create/delete a database + * Execute administrative tasks + * Assign permissions + * Change server configuration, and more. + +* The operations are executed on the DocumentStore and are Not part of the session transaction. + +* There are some client tasks, such as patching documents, that can be carried out either via the Session ([session.Advanced.Patch()](../../client-api/operations/patching/single-document#array-manipulation)) + or via an Operation on the DocumentStore ([PatchOperation](../../client-api/operations/patching/single-document#operations-api)). + +{PANEL/} + +{PANEL: How operations work} + +* **Sending the request**: + Each Operation is an encapsulation of a `RavenCommand`. + The RavenCommand creates the HTTP request message to be sent to the relevant server endpoint. + The DocumentStore `OperationExecutor` sends the request and processes the results. +* **Target node**: + By default, the operation will be executed on the server node that is defined by the [client configuration](../../client-api/configuration/load-balance/overview#client-logic-for-choosing-a-node). + However, server-maintenance operations can be executed on a specific node by using the [ForNode](../../client-api/operations/how-to/switch-operations-to-a-different-node) method. +* **Target database**: + By default, operations work on the default database defined in the DocumentStore. + However, common operations & maintenance operations can operate on a different database by using the [ForDatabase](../../client-api/operations/how-to/switch-operations-to-a-different-database) method. +* **Transaction scope**: + Operations execute as a single-node transaction. + If needed, data will then replicate to the other nodes in the database-group. +* **Background operations**: + Some operations may take a long time to complete and can be awaited for completion. + Learn more [below](../../client-api/operations/what-are-operations#wait-for-completion). + +{PANEL/} + +{PANEL: Common operations} + +* All common operations implement the `IOperation` interface. + The operation is executed within the **database scope**. + Use [ForDatabase](../../client-api/operations/how-to/switch-operations-to-a-different-database) to operate on a specific database other than the default defined in the store. + +* These operations include set-based operations such as _PatchOperation_, _CounterBatchOperation_, + document-extensions related operations such as getting/putting an attachment, and more. + See all available operations [below](../../client-api/operations/what-are-operations#operations-list). + +* To execute a common operation request, + use the `Send` method on the `Operations` property in the DocumentStore. + +#### Example: + +{CODE-TABS} +{CODE-TAB:csharp:Sync operations_ex@ClientApi\Operations\WhatAreOperations.cs /} +{CODE-TAB:csharp:Async operations_ex_async@ClientApi\Operations\WhatAreOperations.cs /} +{CODE-TABS/} + +##### Syntax: + +{CODE-TABS} +{CODE-TAB:csharp:Sync operations_send@ClientApi\Operations\WhatAreOperations.cs /} +{CODE-TAB:csharp:Async operations_send_async@ClientApi\Operations\WhatAreOperations.cs /} +{CODE-TABS/} + +{NOTE: } + + **The following common operations are available:** + +--- + +* **Attachments**: +        [PutAttachmentOperation](../../client-api/operations/attachments/put-attachment) +        [GetAttachmentOperation](../../client-api/operations/attachments/get-attachment) +        [DeleteAttachmentOperation](../../client-api/operations/attachments/delete-attachment) + +* **Counters**: +        [CounterBatchOperation](../../client-api/operations/counters/counter-batch) +        [GetCountersOperation](../../client-api/operations/counters/get-counters) + +* **Time series**: +        [TimeSeriesBatchOperation](../../document-extensions/timeseries/client-api/operations/append-and-delete) +        [GetMultipleTimeSeriesOperation](../../document-extensions/timeseries/client-api/operations/get) +        [GetTimeSeriesOperation](../../document-extensions/timeseries/client-api/operations/get) +        GetTimeSeriesStatisticsOperation + +* **Revisions**: +        [GetRevisionsOperation](../../document-extensions/revisions/client-api/operations/get-revisions) + +* **Patching**: +        [PatchOperation](../../client-api/operations/patching/single-document) +        [PatchByQueryOperation](../../client-api/operations/patching/set-based) + +* **Delete by query**: +        [DeleteByQueryOperation](../../client-api/operations/common/delete-by-query) + +* **Compare-exchange**: +        [PutCompareExchangeValueOperation](../../client-api/operations/compare-exchange/put-compare-exchange-value) +        [GetCompareExchangeValueOperation](../../client-api/operations/compare-exchange/get-compare-exchange-value) +        [GetCompareExchangeValuesOperation](../../client-api/operations/compare-exchange/get-compare-exchange-values) +        [DeleteCompareExchangeValueOperation](../../client-api/operations/compare-exchange/delete-compare-exchange-value) + +{NOTE/} +{PANEL/} + +{PANEL: Maintenance operations} + +* All maintenance operations implement the `IMaintenanceOperation` interface. + The operation is executed within the **database scope**. + Use [ForDatabase](../../client-api/operations/how-to/switch-operations-to-a-different-database) to operate on a specific database other than the default defined in the store. + +* These operations include database management operations such as setting client configuration, + managing indexes & ongoing-tasks operations, getting stats, and more. + See all available maintenance operations [below](../../client-api/operations/what-are-operations#maintenance-list). + +* To execute a maintenance operation request, + use the `Send` method on the `Maintenance` property in the DocumentStore. + +#### Example: + +{CODE-TABS} +{CODE-TAB:csharp:Sync maintenance_ex@ClientApi\Operations\WhatAreOperations.cs /} +{CODE-TAB:csharp:Async maintenance_ex_async@ClientApi\Operations\WhatAreOperations.cs /} +{CODE-TABS/} + +##### Syntax: + +{CODE-TABS} +{CODE-TAB:csharp:Sync maintenance_send@ClientApi\Operations\WhatAreOperations.cs /} +{CODE-TAB:csharp:Async maintenance_send_async@ClientApi\Operations\WhatAreOperations.cs /} +{CODE-TABS/} + +{NOTE: } + + **The following maintenance operations are available:** + +--- + +* **Statistics**: +        [GetStatisticsOperation](../../client-api/operations/maintenance/get-stats#get-database-stats) +        [GetDetailedStatisticsOperation](../../client-api/operations/maintenance/get-stats#get-detailed-database-stats) +        [GetCollectionStatisticsOperation](../../client-api/operations/maintenance/get-stats#get-collection-stats) +        [GetDetailedCollectionStatisticsOperation](../../client-api/operations/maintenance/get-stats#get-detailed-collection-stats) + +* **Client Configuration**: +        [PutClientConfigurationOperation](../../client-api/operations/maintenance/configuration/put-client-configuration) +        [GetClientConfigurationOperation](../../client-api/operations/maintenance/configuration/get-client-configuration) + +* **Indexes**: +        [PutIndexesOperation](../../client-api/operations/maintenance/indexes/put-indexes) +        [SetIndexesLockOperation](../../client-api/operations/maintenance/indexes/set-index-lock) +        [SetIndexesPriorityOperation](../../client-api/operations/maintenance/indexes/set-index-priority) +        [GetIndexErrorsOperation](../../client-api/operations/maintenance/indexes/get-index-errors) +        [GetIndexOperation](../../client-api/operations/maintenance/indexes/get-index) +        [GetIndexesOperation](../../client-api/operations/maintenance/indexes/get-indexes) +        [GetTermsOperation](../../client-api/operations/maintenance/indexes/get-terms) +        GetIndexPerformanceStatisticsOperation +        GetIndexStatisticsOperation +        GetIndexesStatisticsOperation +        GetIndexingStatusOperation +        GetIndexStalenessOperation +        [GetIndexNamesOperation](../../client-api/operations/maintenance/indexes/get-index-names) +        [StartIndexOperation](../../client-api/operations/maintenance/indexes/start-index) +        [StartIndexingOperation](../../client-api/operations/maintenance/indexes/start-indexing) +        [StopIndexOperation](../../client-api/operations/maintenance/indexes/stop-index) +        [StopIndexingOperation](../../client-api/operations/maintenance/indexes/stop-indexing) +        [ResetIndexOperation](../../client-api/operations/maintenance/indexes/reset-index) +        [DeleteIndexOperation](../../client-api/operations/maintenance/indexes/delete-index) +        [DeleteIndexErrorsOperation](../../client-api/operations/maintenance/indexes/delete-index-errors) +        [DisableIndexOperation](../../client-api/operations/maintenance/indexes/disable-index) +        [EnableIndexOperation](../../client-api/operations/maintenance/indexes/enable-index) +        [IndexHasChangedOperation](../../client-api/operations/maintenance/indexes/index-has-changed) + +* **Analyzers**: +        PutAnalyzersOperation +        DeleteAnalyzerOperation + +* **Ongoing tasks**: +        [GetOngoingTaskInfoOperation](../../client-api/operations/maintenance/ongoing-tasks/ongoing-task-operations#get-ongoing-task-info) +        [ToggleOngoingTaskStateOperation](../../client-api/operations/maintenance/ongoing-tasks/ongoing-task-operations#toggle-ongoing-task-state) +        [DeleteOngoingTaskOperation](../../client-api/operations/maintenance/ongoing-tasks/ongoing-task-operations#delete-ongoing-task) + +* **ETL tasks**: +        AddEtlOperation +        UpdateEtlOperation +        [ResetEtlOperation](../../client-api/operations/maintenance/etl/reset-etl) + +* **Replication tasks**: +        PutPullReplicationAsHubOperation +        GetPullReplicationTasksInfoOperation +        GetReplicationHubAccessOperation +        GetReplicationPerformanceStatisticsOperation +        RegisterReplicationHubAccessOperation +        UnregisterReplicationHubAccessOperation +        UpdateExternalReplicationOperation +        UpdatePullReplicationAsSinkOperation + +* **Backup**: +        BackupOperation +        GetPeriodicBackupStatusOperation +        StartBackupOperation +        UpdatePeriodicBackupOperation + +* **Connection strings**: +        PutConnectionStringOperation +        RemoveConnectionStringOperation + +* **Transaction recording**: +        StartTransactionsRecordingOperation +        StopTransactionsRecordingOperation +        ReplayTransactionsRecordingOperation + +* **Database settings**: +        [PutDatabaseSettingsOperation](../../client-api/operations/maintenance/configuration/database-settings-operation#put-database-settings-operation) +        [GetDatabaseSettingsOperation](../../client-api/operations/maintenance/configuration/database-settings-operation#get-database-settings-operation) + +* **Identities**: +        [GetIdentitiesOperation](../../client-api/operations/maintenance/identities/get-identities) +        [NextIdentityForOperation](../../client-api/operations/maintenance/identities/increment-next-identity) +        [SeedIdentityForOperation](../../client-api/operations/maintenance/identities/seed-identity) + +* **Time series**: +        ConfigureTimeSeriesOperation +        ConfigureTimeSeriesPolicyOperation +        ConfigureTimeSeriesValueNamesOperation +        RemoveTimeSeriesPolicyOperation + +* **Revisions**: +        [ConfigureRevisionsOperation](../../document-extensions/revisions/client-api/operations/configure-revisions) + +* **Sorters**: +        [PutSortersOperation](../../client-api/operations/maintenance/sorters/put-sorter) +        DeleteSorterOperation + +* **Misc**: +        ConfigureExpirationOperation +        ConfigureRefreshOperation +        UpdateDocumentsCompressionConfigurationOperation +        DatabaseHealthCheckOperation +        GetOperationStateOperation +        CreateSampleDataOperation + +{NOTE/} +{PANEL/} + +{PANEL: Server-maintenance operations} + +* All server-maintenance operations implement the `IServerOperation` interface. + The operation is executed within the **server scope**. + Use [ForNode](../../client-api/operations/how-to/switch-operations-to-a-different-node) to operate on a specific node other than the default defined in the client configuration. + +* These operations include server management and configuration operations. + See all available operations [below](../../client-api/operations/what-are-operations#server-list). + +* To execute a server-maintenance operation request, + use the `Send` method on the `Maintenance.Server` property in the DocumentStore. + +#### Example: + +{CODE-TABS} +{CODE-TAB:csharp:Sync server_ex@ClientApi\Operations\WhatAreOperations.cs /} +{CODE-TAB:csharp:Async server_ex_async@ClientApi\Operations\WhatAreOperations.cs /} +{CODE-TABS/} + +##### Syntax: + +{CODE-TABS} +{CODE-TAB:csharp:Sync server_send@ClientApi\Operations\WhatAreOperations.cs /} +{CODE-TAB:csharp:Async server_send_async@ClientApi\Operations\WhatAreOperations.cs /} +{CODE-TABS/} + +{NOTE: } + + **The following server-maintenance operations are available:** + +--- + +* **Client certificates**: +        [PutClientCertificateOperation](../../client-api/operations/server-wide/certificates/put-client-certificate) +        [CreateClientCertificateOperation](../../client-api/operations/server-wide/certificates/create-client-certificate) +        [GetCertificatesOperation](../../client-api/operations/server-wide/certificates/get-certificates) +        [DeleteCertificateOperation](../../client-api/operations/server-wide/certificates/delete-certificate) +        EditClientCertificateOperation +        GetCertificateMetadataOperation +        ReplaceClusterCertificateOperation + +* **Server-wide client configuration**: +        [PutServerWideClientConfigurationOperation](../../client-api/operations/server-wide/configuration/put-serverwide-client-configuration) +        [GetServerWideClientConfigurationOperation](../../client-api/operations/server-wide/configuration/get-serverwide-client-configuration) + +* **Database management**: +        [CreateDatabaseOperation](../../client-api/operations/server-wide/create-database) +        [DeleteDatabasesOperation](../../client-api/operations/server-wide/delete-database) +        [ToggleDatabasesStateOperation](../../client-api/operations/server-wide/toggle-databases-state) +        [GetDatabaseNamesOperation](../../client-api/operations/server-wide/get-database-names) +        [AddDatabaseNodeOperation](../../client-api/operations/server-wide/add-database-node) +        [PromoteDatabaseNodeOperation](../../client-api/operations/server-wide/promote-database-node) +        [ReorderDatabaseMembersOperation](../../client-api/operations/server-wide/reorder-database-members) +        [CompactDatabaseOperation](../../client-api/operations/server-wide/compact-database) +        GetDatabaseRecordOperation +        SetDatabasesLockOperation +        CreateDatabaseOperationWithoutNameValidation +        SetDatabaseDynamicDistributionOperation +        ModifyDatabaseTopologyOperation +        UpdateDatabaseOperation +        UpdateUnusedDatabasesOperation + +* **Server-wide ongoing tasks**: +        DeleteServerWideTaskOperation +        ToggleServerWideTaskStateOperation + +* **Server-wide replication tasks**: +        PutServerWideExternalReplicationOperation +        GetServerWideExternalReplicationOperation +        GetServerWideExternalReplicationsOperation + +* **Server-wide backup tasks**: +        PutServerWideBackupConfigurationOperation +        GetServerWideBackupConfigurationOperation +        GetServerWideBackupConfigurationsOperation +        RestoreBackupOperation + +* **Server-wide analyzers**: +        PutServerWideAnalyzersOperation +        DeleteServerWideAnalyzerOperation + +* **Server-wide sorters**: +        [PutServerWideSortersOperation](../../client-api/operations/server-wide/sorters/put-sorter-server-wide) +        DeleteServerWideSorterOperation + +* **Logs & debug**: +        SetLogsConfigurationOperation +        GetLogsConfigurationOperation +        GetClusterDebugInfoPackageOperation +        [GetBuildNumberOperation](../../client-api/operations/server-wide/get-build-number) +        GetServerWideOperationStateOperation + +* **Traffic watch**: +        PutTrafficWatchConfigurationOperation +        GetTrafficWatchConfigurationOperation + +* **Revisions**: +        [ConfigureRevisionsForConflictsOperation](../../document-extensions/revisions/client-api/operations/conflict-revisions-configuration) + +* **Misc**: +        ModifyConflictSolverOperation +        OfflineMigrationOperation + +{NOTE/} +{PANEL/} + +{PANEL: Manage lengthy operations} + +* Some operations that run in the server background may take a long time to complete. + +* For Operations that implement an interface with type `OperationIdResult`, + executing the operation via the `Send` method will return an `Operation` object, + which can be **awaited for completion** or **aborted (killed)**. + +--- + +#### Wait for completion: + +{CODE-TABS} +{CODE-TAB:csharp:With_Timeout wait_timeout_ex@ClientApi\Operations\WhatAreOperations.cs /} +{CODE-TAB:csharp:With_Timout_async wait_timeout_ex_async@ClientApi\Operations\WhatAreOperations.cs /} +{CODE-TAB:csharp:With_CancellationToken wait_token_ex@ClientApi\Operations\WhatAreOperations.cs /} +{CODE-TAB:csharp:With_CancellationToken_async wait_token_ex_async@ClientApi\Operations\WhatAreOperations.cs /} +{CODE-TABS/} + +##### Syntax: + +{CODE-TABS} +{CODE-TAB:csharp:Sync waitForCompletion_syntax@ClientApi\Operations\WhatAreOperations.cs /} +{CODE-TAB:csharp:Async waitForCompletion_syntax_async@ClientApi\Operations\WhatAreOperations.cs /} +{CODE-TABS/} + +| Parameter | Type | Description | +|-------------|---------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| **timeout** | `TimeSpan` | | +| **token** | `CancellationToken` | | + +| Return type | | +|--------------------|-------------------------------| +| `IOperationResult` | The operation result content. | + +#### Kill operation: + +{CODE-TABS} +{CODE-TAB:csharp:Kill kill_ex@ClientApi\Operations\WhatAreOperations.cs /} +{CODE-TAB:csharp:Kill_async kill_ex_async@ClientApi\Operations\WhatAreOperations.cs /} +{CODE-TABS/} + +##### Syntax: + +{CODE kill_syntax@ClientApi\Operations\WhatAreOperations.cs /} + +| Parameter | Type | Description | +|-------------|---------------------|----------------------------------------------------------------------| +| **token** | `CancellationToken` | Provide a cancellation token if needed to abort the KillAsync method | + +{PANEL/} + +## Related articles + +### Document Store + +- [What is a Document Store](../../client-api/what-is-a-document-store) + +### Operations + +- [How to Switch Operations to a Different Database](../../client-api/operations/how-to/switch-operations-to-a-different-database) +- [How to Switch Operations to a Different Node](../../client-api/operations/how-to/switch-operations-to-a-different-node) diff --git a/Documentation/6.1/Raven.Documentation.Pages/client-api/operations/what-are-operations.java.markdown b/Documentation/6.1/Raven.Documentation.Pages/client-api/operations/what-are-operations.java.markdown new file mode 100644 index 0000000000..192129872d --- /dev/null +++ b/Documentation/6.1/Raven.Documentation.Pages/client-api/operations/what-are-operations.java.markdown @@ -0,0 +1,145 @@ +# What are Operations + +The RavenDB client API is built with the notion of layers. At the top, and what you will usually interact with, are the **[DocumentStore](../../client-api/what-is-a-document-store)** and the **[DocumentSession](../../client-api/session/what-is-a-session-and-how-does-it-work)**. + +They in turn, are built on top of the notion of Operations and Commands. + +Operations are an encapsulation of a set of low level commands which are used to manipulate data, execute administrative tasks, and change the configuration on a server. + +They are available in the DocumentStore under the **operations**, **maintenance**, and **maintenance().server** methods. + +{PANEL:Common Operations} + +Common operations include set based operations for [Patching](../../client-api/operations/patching/set-based) or removal of documents by using queries (more can be read [here](../../client-api/operations/common/delete-by-query)). +There is also the ability to handle distributed [Compare Exchange](../../client-api/operations/compare-exchange/overview) operations and manage [Attachments](../../client-api/operations/attachments/get-attachment) and [Counters](../../client-api/operations/counters/counter-batch). + +### How to Send an Operation + +In order to execute an operation, you will need to use the `send` or `sendAsync` methods. Available overloads are: +{CODE-TABS} +{CODE-TAB:java:Sync Client_Operations_api@ClientApi\Operations\WhatAreOperations.java /} +{CODE-TAB:java:Async Client_Operations_api_async@ClientApi\Operations\WhatAreOperations.java /} +{CODE-TABS/} + +### The following operations are available: + +#### Compare Exchange + +* [CompareExchange](../../client-api/operations/compare-exchange/overview) + +#### Attachments + +* [GetAttachmentOperation](../../client-api/operations/attachments/get-attachment) +* [PutAttachmentOperation](../../client-api/operations/attachments/put-attachment) +* [DeleteAttachmentOperation](../../client-api/operations/attachments/delete-attachment) + +#### Patching + +* [PatchByQueryOperation](../../client-api/operations/patching/set-based) +* [PatchOperation](../../client-api/operations/patching/single-document) + + +#### Counters + +* [CounterBatchOperation](../../client-api/operations/counters/counter-batch) +* [GetCountersOperation](../../client-api/operations/counters/get-counters) + + +#### Misc + +* [DeleteByQueryOperation](../../client-api/operations/common/delete-by-query) + +### Example - Get Attachment + +{CODE:java Client_Operations_1@ClientApi\Operations\WhatAreOperations.java /} + +{PANEL/} + +{PANEL:Maintenance Operations} + +Maintenance operations include operations for changing the configuration at runtime and for management of index operations. + +### How to Send an Operation + +{CODE:java Maintenance_Operations_api@ClientApi\Operations\WhatAreOperations.java /} + +### The following maintenance operations are available: + +#### Client Configuration + +* [PutClientConfigurationOperation](../../client-api/operations/maintenance/configuration/put-client-configuration) +* [GetClientConfigurationOperation](../../client-api/operations/maintenance/configuration/get-client-configuration) + +#### Indexing + +* [DeleteIndexOperation](../../client-api/operations/maintenance/indexes/delete-index) +* [DisableIndexOperation](../../client-api/operations/maintenance/indexes/disable-index) +* [EnableIndexOperation](../../client-api/operations/maintenance/indexes/enable-index) +* [ResetIndexOperation](../../client-api/operations/maintenance/indexes/reset-index) +* [SetIndexesLockOperation](../../client-api/operations/maintenance/indexes/set-index-lock) +* [SetIndexesPriorityOperation](../../client-api/operations/maintenance/indexes/set-index-priority) +* [StartIndexOperation](../../client-api/operations/maintenance/indexes/start-index) +* [StartIndexingOperation](../../client-api/operations/maintenance/indexes/start-indexing) +* [StopIndexOperation](../../client-api/operations/maintenance/indexes/stop-index) +* [StopIndexingOperation](../../client-api/operations/maintenance/indexes/stop-indexing) +* [GetIndexErrorsOperation](../../client-api/operations/maintenance/indexes/get-index-errors) +* [GetIndexOperation](../../client-api/operations/maintenance/indexes/get-index) +* [GetIndexesOperation](../../client-api/operations/maintenance/indexes/get-indexes) +* [GetTermsOperation](../../client-api/operations/maintenance/indexes/get-terms) +* [IndexHasChangedOperation](../../client-api/operations/maintenance/indexes/index-has-changed) +* [PutIndexesOperation](../../client-api/operations/maintenance/indexes/put-indexes) + +#### Misc + +* [GetCollectionStatisticsOperation](../../client-api/operations/maintenance/get-stats) +* [GetStatisticsOperation](../../client-api/operations/maintenance/get-stats) +* [GetIdentitiesOperation](../../client-api/operations/maintenance/identities/get-identities) + +### Example - Stop Index + +{CODE:java Maintenance_Operations_1@ClientApi\Operations\WhatAreOperations.java /} + +{PANEL/} + +{PANEL:Server Operations} + +These type of operations contain various administrative and miscellaneous configuration operations. + +### How to Send an Operation + +{CODE-TABS} +{CODE-TAB:java:Sync Server_Operations_api@ClientApi\Operations\WhatAreOperations.java /} +{CODE-TAB:java:Async Server_Operations_api_async@ClientApi\Operations\WhatAreOperations.java /} +{CODE-TABS/} + +### The following server-wide operations are available: + + +#### Cluster Management + +* [CreateDatabaseOperation](../../client-api/operations/server-wide/create-database) +* [DeleteDatabasesOperation](../../client-api/operations/server-wide/delete-database) + +#### Miscellaneous + +* [GetDatabaseNamesOperation](../../client-api/operations/server-wide/get-database-names) + +### Example - Get Build Number + +{CODE:java Server_Operations_1@ClientApi\Operations\WhatAreOperations.java /} + +{PANEL/} + +## Remarks + +{NOTE By default, operations available in `store.operations` or `store.maintenance` are working on a default database that was setup for that store. To switch operations to a different database that is available on that server use the **[forDatabase](../../client-api/operations/how-to/switch-operations-to-a-different-database)** method. /} + +## Related articles + +### Document Store + +- [What is a Document Store](../../client-api/what-is-a-document-store) + +### Operations + +- [How to Switch Operations to a Different Database](../../client-api/operations/how-to/switch-operations-to-a-different-database) diff --git a/Documentation/6.1/Raven.Documentation.Pages/client-api/operations/what-are-operations.js.markdown b/Documentation/6.1/Raven.Documentation.Pages/client-api/operations/what-are-operations.js.markdown new file mode 100644 index 0000000000..4f04e20b1e --- /dev/null +++ b/Documentation/6.1/Raven.Documentation.Pages/client-api/operations/what-are-operations.js.markdown @@ -0,0 +1,430 @@ +# What are Operations + +--- + +{NOTE: } + +* The RavenDB Client API is built with the notion of layers. + At the top, and what you will usually interact with, are the **[DocumentStore](../../client-api/what-is-a-document-store)** + and the **[Session](../../client-api/session/what-is-a-session-and-how-does-it-work)**. + They in turn are built on top of the lower-level **Operations** and **Commands** API. + +* **RavenDB provides direct access to this lower-level API**, allowing you to send requests + directly to the server via DocumentStore Operations instead of using the higher-level Session API. + +* In this page: + * [Why use operations](../../client-api/operations/what-are-operations#why-use-operations) + * [How operations work](../../client-api/operations/what-are-operations#how-operations-work) +
+ * __Operation types__: + * [Common operations](../../client-api/operations/what-are-operations#common-operations) + * [Maintenance operations](../../client-api/operations/what-are-operations#maintenance-operations) + * [Server-maintenance operations](../../client-api/operations/what-are-operations#server-maintenance-operations) + * [Manage lengthy operations](../../client-api/operations/what-are-operations#manage-lengthy-operations) + * [Wait for completion](../../client-api/operations/what-are-operations#wait-for-completion) + * [Kill operation](../../client-api/operations/what-are-operations#killOperation) + +{NOTE/} + +--- + +{PANEL: Why use operations} + +* Operations provide __management functionality__ that is Not available in the context of the session, for example: + * Create/delete a database + * Execute administrative tasks + * Assign permissions + * Change server configuration, and more. + +* The operations are executed on the DocumentStore and are Not part of the session transaction. + +* There are some client tasks, such as patching documents, that can be carried out either via the Session ([session.advanced.patch()](../../client-api/operations/patching/single-document#array-manipulation)) + or via an Operation on the DocumentStore ([PatchOperation](../../client-api/operations/patching/single-document#operations-api)). + +{PANEL/} + +{PANEL: How operations work} + +* __Sending the request__: + Each Operation creates an HTTP request message to be sent to the relevant server endpoint. + The DocumentStore `OperationExecutor` sends the request and processes the results. +* __Target node__: + By default, the operation will be executed on the server node that is defined by the [client configuration](../../client-api/configuration/load-balance/overview#client-logic-for-choosing-a-node). + However, server-maintenance operations can be executed on a specific node by using the [forNode](../../client-api/operations/how-to/switch-operations-to-a-different-node) method. +* __Target database__: + By default, operations work on the default database defined in the DocumentStore. + However, common operations & maintenance operations can operate on a different database by using the [forDatabase](../../client-api/operations/how-to/switch-operations-to-a-different-database) method. +* __Transaction scope__: + Operations execute as a single-node transaction. + If needed, data will then replicate to the other nodes in the database-group. +* __Background operations__: + Some operations may take a long time to complete and can be awaited for completion. + Learn more [below](../../client-api/operations/what-are-operations#wait-for-completion). + +{PANEL/} + +{PANEL: Common operations} + +{NOTE: } + +* All common operations implement the `IOperation` interface. + The operation is executed within the __database scope__. + Use [forDatabase](../../client-api/operations/how-to/switch-operations-to-a-different-database) to operate on a specific database other than the default defined in the store. + +* These operations include set-based operations such as _PatchOperation_, _CounterBatchOperation_, + document-extensions related operations such as getting/putting an attachment, and more. + See all available operations [below](../../client-api/operations/what-are-operations#operations-list). + +* To execute a common operation request, + use the `send` method on the `operations` property in the DocumentStore. + +__Example__: + +{CODE:nodejs operations_ex@client-api\operations\whatAreOperations.js /} + +{NOTE/} + +{NOTE: } + +__Send syntax__: + +{CODE:nodejs operations_send@client-api\operations\whatAreOperations.js /} + +{NOTE/} + +{NOTE: } + + __The following common operations are available:__ + +--- + +* __Attachments__: +        [PutAttachmentOperation](../../client-api/operations/attachments/put-attachment) +        [GetAttachmentOperation](../../client-api/operations/attachments/get-attachment) +        [DeleteAttachmentOperation](../../client-api/operations/attachments/delete-attachment) + +* __Counters__: +        [CounterBatchOperation](../../client-api/operations/counters/counter-batch) +        [GetCountersOperation](../../client-api/operations/counters/get-counters) + +* __Time series__: +        TimeSeriesBatchOperation +        GetMultipleTimeSeriesOperation +        GetTimeSeriesOperation +        GetTimeSeriesStatisticsOperation + +* __Revisions__: +        [GetRevisionsOperation](../../document-extensions/revisions/client-api/operations/get-revisions) + +* __Patching__: +        [PatchOperation](../../client-api/operations/patching/single-document) +        [PatchByQueryOperation](../../client-api/operations/patching/set-based) + +* __Delete by query__: +        [DeleteByQueryOperation](../../client-api/operations/common/delete-by-query) + +* __Compare-exchange__: +        PutCompareExchangeValueOperation +        GetCompareExchangeValueOperation +        GetCompareExchangeValuesOperation +        DeleteCompareExchangeValueOperation + +{NOTE/} +{PANEL/} + +{PANEL: Maintenance operations} + +{NOTE: } + +* All maintenance operations implement the `IMaintenanceOperation` interface. + The operation is executed within the __database scope__. + Use [forDatabase](../../client-api/operations/how-to/switch-operations-to-a-different-database) to operate on a specific database other than the default defined in the store. + +* These operations include database management operations such as setting client configuration, + managing indexes & ongoing-tasks operations, getting stats, and more. + See all available maintenance operations [below](../../client-api/operations/what-are-operations#maintenance-list). + +* To execute a maintenance operation request, + use the `send` method on the `maintenance` property in the DocumentStore. + +__Example__: + +{CODE:nodejs maintenance_ex@client-api\operations\whatAreOperations.js /} + +{NOTE/} + +{NOTE: } + +__Send syntax__: + +{CODE:nodejs maintenance_send@client-api\operations\whatAreOperations.js /} + +{NOTE/} + +{NOTE: } + + __The following maintenance operations are available:__ + +--- + +* __Statistics__: +        [GetStatisticsOperation](../../client-api/operations/maintenance/get-stats#get-database-stats) +        [GetDetailedStatisticsOperation](../../client-api/operations/maintenance/get-stats#get-detailed-database-stats) +        [GetCollectionStatisticsOperation](../../client-api/operations/maintenance/get-stats#get-collection-stats) +        [GetDetailedCollectionStatisticsOperation](../../client-api/operations/maintenance/get-stats#get-detailed-collection-stats) + +* __Client Configuration__: +        [PutClientConfigurationOperation](../../client-api/operations/maintenance/configuration/put-client-configuration) +        [GetClientConfigurationOperation](../../client-api/operations/maintenance/configuration/get-client-configuration) + +* __Indexes__: +        [PutIndexesOperation](../../client-api/operations/maintenance/indexes/put-indexes) +        [SetIndexesLockOperation](../../client-api/operations/maintenance/indexes/set-index-lock) +        [SetIndexesPriorityOperation](../../client-api/operations/maintenance/indexes/set-index-priority) +        [GetIndexErrorsOperation](../../client-api/operations/maintenance/indexes/get-index-errors) +        [GetIndexOperation](../../client-api/operations/maintenance/indexes/get-index) +        [GetIndexesOperation](../../client-api/operations/maintenance/indexes/get-indexes) +        [GetTermsOperation](../../client-api/operations/maintenance/indexes/get-terms) +        GetIndexPerformanceStatisticsOperation +        GetIndexStatisticsOperation +        GetIndexesStatisticsOperation +        GetIndexingStatusOperation +        GetIndexStalenessOperation +        [GetIndexNamesOperation](../../client-api/operations/maintenance/indexes/get-index-names) +        [StartIndexOperation](../../client-api/operations/maintenance/indexes/start-index) +        [StartIndexingOperation](../../client-api/operations/maintenance/indexes/start-indexing) +        [StopIndexOperation](../../client-api/operations/maintenance/indexes/stop-index) +        [StopIndexingOperation](../../client-api/operations/maintenance/indexes/stop-indexing) +        [ResetIndexOperation](../../client-api/operations/maintenance/indexes/reset-index) +        [DeleteIndexOperation](../../client-api/operations/maintenance/indexes/delete-index) +        [DeleteIndexErrorsOperation](../../client-api/operations/maintenance/indexes/delete-index-errors) +        [DisableIndexOperation](../../client-api/operations/maintenance/indexes/disable-index) +        [EnableIndexOperation](../../client-api/operations/maintenance/indexes/enable-index) +        [IndexHasChangedOperation](../../client-api/operations/maintenance/indexes/index-has-changed) + +* __Analyzers__: +        PutAnalyzersOperation +        DeleteAnalyzerOperation + +* **Ongoing tasks**: +        [GetOngoingTaskInfoOperation](../../client-api/operations/maintenance/ongoing-tasks/ongoing-task-operations#get-ongoing-task-info) +        [ToggleOngoingTaskStateOperation](../../client-api/operations/maintenance/ongoing-tasks/ongoing-task-operations#toggle-ongoing-task-state) +        [DeleteOngoingTaskOperation](../../client-api/operations/maintenance/ongoing-tasks/ongoing-task-operations#delete-ongoing-task) + +* __ETL tasks__: +        AddEtlOperation +        UpdateEtlOperation +        [ResetEtlOperation](../../client-api/operations/maintenance/etl/reset-etl) + +* __Replication tasks__: +        PutPullReplicationAsHubOperation +        GetPullReplicationTasksInfoOperation +        GetReplicationHubAccessOperation +        GetReplicationPerformanceStatisticsOperation +        RegisterReplicationHubAccessOperation +        UnregisterReplicationHubAccessOperation +        UpdateExternalReplicationOperation +        UpdatePullReplicationAsSinkOperation + +* __Backup__: +        BackupOperation +        GetPeriodicBackupStatusOperation +        StartBackupOperation +        UpdatePeriodicBackupOperation + +* __Connection strings__: +        PutConnectionStringOperation +        RemoveConnectionStringOperation + +* __Transaction recording__: +        StartTransactionsRecordingOperation +        StopTransactionsRecordingOperation +        ReplayTransactionsRecordingOperation + +* __Database settings__: +        [PutDatabaseSettingsOperation](../../client-api/operations/maintenance/configuration/database-settings-operation#put-database-settings-operation) +        [GetDatabaseSettingsOperation](../../client-api/operations/maintenance/configuration/database-settings-operation#get-database-settings-operation) + +* __Identities__: +        [GetIdentitiesOperation](../../client-api/operations/maintenance/identities/get-identities) +        [NextIdentityForOperation](../../client-api/operations/maintenance/identities/increment-next-identity) +        [SeedIdentityForOperation](../../client-api/operations/maintenance/identities/seed-identity) + +* __Time series__: +        ConfigureTimeSeriesOperation +        ConfigureTimeSeriesPolicyOperation +        ConfigureTimeSeriesValueNamesOperation +        RemoveTimeSeriesPolicyOperation + +* __Revisions__: +        [ConfigureRevisionsOperation](../../document-extensions/revisions/client-api/operations/configure-revisions) + +* __Sorters__: +        [PutSortersOperation](../../client-api/operations/maintenance/sorters/put-sorter) +        DeleteSorterOperation + +* __Misc__: +        ConfigureExpirationOperation +        ConfigureRefreshOperation +        UpdateDocumentsCompressionConfigurationOperation +        DatabaseHealthCheckOperation +        GetOperationStateOperation +        CreateSampleDataOperation + +{NOTE/} +{PANEL/} + +{PANEL: Server-maintenance operations} + +{NOTE: } + +* All server-maintenance operations implement the `IServerOperation` interface. + The operation is executed within the __server scope__. + Use [forNode](../../client-api/operations/how-to/switch-operations-to-a-different-node) to operate on a specific node other than the default defined in the client configuration. + +* These operations include server management and configuration operations. + See all available operations [below](../../client-api/operations/what-are-operations#server-list). + +* To execute a server-maintenance operation request, + use the `send` method on the `maintenance.server` property in the DocumentStore. + +__Example__: + +{CODE:nodejs server_ex@client-api\operations\whatAreOperations.js /} + +{NOTE/} + +{NOTE: } + +__Send syntax__: + +{CODE:nodejs server_send@client-api\operations\whatAreOperations.js /} + +{NOTE/} + +{NOTE: } + + __The following server-maintenance operations are available:__ + +--- + +* __Client certificates__: +        [PutClientCertificateOperation](../../client-api/operations/server-wide/certificates/put-client-certificate) +        [CreateClientCertificateOperation](../../client-api/operations/server-wide/certificates/create-client-certificate) +        [GetCertificatesOperation](../../client-api/operations/server-wide/certificates/get-certificates) +        [DeleteCertificateOperation](../../client-api/operations/server-wide/certificates/delete-certificate) +        EditClientCertificateOperation +        GetCertificateMetadataOperation +        ReplaceClusterCertificateOperation + +* __Server-wide client configuration__: +        [PutServerWideClientConfigurationOperation](../../client-api/operations/server-wide/configuration/put-serverwide-client-configuration) +        [GetServerWideClientConfigurationOperation](../../client-api/operations/server-wide/configuration/get-serverwide-client-configuration) + +* __Database management__: +        [CreateDatabaseOperation](../../client-api/operations/server-wide/create-database) +        [DeleteDatabasesOperation](../../client-api/operations/server-wide/delete-database) +        [ToggleDatabasesStateOperation](../../client-api/operations/server-wide/toggle-databases-state) +        [GetDatabaseNamesOperation](../../client-api/operations/server-wide/get-database-names) +        [AddDatabaseNodeOperation](../../client-api/operations/server-wide/add-database-node) +        [PromoteDatabaseNodeOperation](../../client-api/operations/server-wide/promote-database-node) +        [ReorderDatabaseMembersOperation](../../client-api/operations/server-wide/reorder-database-members) +        [CompactDatabaseOperation](../../client-api/operations/server-wide/compact-database) +        GetDatabaseRecordOperation +        SetDatabasesLockOperation +        CreateDatabaseOperationWithoutNameValidation +        SetDatabaseDynamicDistributionOperation +        ModifyDatabaseTopologyOperation +        UpdateDatabaseOperation +        UpdateUnusedDatabasesOperation + +* __Server-wide ongoing tasks__: +        DeleteServerWideTaskOperation +        ToggleServerWideTaskStateOperation + +* __Server-wide replication tasks__: +        PutServerWideExternalReplicationOperation +        GetServerWideExternalReplicationOperation +        GetServerWideExternalReplicationsOperation + +* __Server-wide backup tasks__: +        PutServerWideBackupConfigurationOperation +        GetServerWideBackupConfigurationOperation +        GetServerWideBackupConfigurationsOperation +        RestoreBackupOperation + +* __Server-wide analyzers__: +        PutServerWideAnalyzersOperation +        DeleteServerWideAnalyzerOperation + +* __Server-wide sorters__: +        [PutServerWideSortersOperation](../../client-api/operations/server-wide/sorters/put-sorter-server-wide) +        DeleteServerWideSorterOperation + +* __Logs & debug__: +        SetLogsConfigurationOperation +        GetLogsConfigurationOperation +        GetClusterDebugInfoPackageOperation +        [GetBuildNumberOperation](../../client-api/operations/server-wide/get-build-number) +        GetServerWideOperationStateOperation + +* __Traffic watch__: +        PutTrafficWatchConfigurationOperation +        GetTrafficWatchConfigurationOperation + +* __Revisions__: +        [ConfigureRevisionsForConflictsOperation](../../document-extensions/revisions/client-api/operations/conflict-revisions-configuration) + +* __Misc__: +        ModifyConflictSolverOperation +        OfflineMigrationOperation + +{NOTE/} +{PANEL/} + +{PANEL: Manage lengthy operations} + +* Some operations that run in the server background may take a long time to complete. + +* For Operations that implement an interface with type `OperationIdResult`, + executing the operation via the `send` method will return a promise for `OperationCompletionAwaiter` object, + which can then be __awaited for completion__ or __aborted (killed)__. + +--- + +{NOTE: } + + __Wait for completion__: + +{CODE:nodejs wait_ex@client-api\operations\whatAreOperations.js /} + +{NOTE/} + +{NOTE: } + + __Kill operation__: + +{CODE:nodejs kill_ex@client-api\operations\whatAreOperations.js /} + +{NOTE/} + +{NOTE: } + +##### Syntax: + +{CODE:nodejs wait_kill_syntax@client-api\operations\whatAreOperations.js /} + +{NOTE/} + +{PANEL/} + +## Related articles + +### Document Store + +- [What is a Document Store](../../client-api/what-is-a-document-store) + +### Operations + +- [How to Switch Operations to a Different Database](../../client-api/operations/how-to/switch-operations-to-a-different-database) +- [How to Switch Operations to a Different Node](../../client-api/operations/how-to/switch-operations-to-a-different-node) diff --git a/Documentation/6.1/Raven.Documentation.Pages/client-api/operations/what-are-operations.python.markdown b/Documentation/6.1/Raven.Documentation.Pages/client-api/operations/what-are-operations.python.markdown new file mode 100644 index 0000000000..22c6a61bbb --- /dev/null +++ b/Documentation/6.1/Raven.Documentation.Pages/client-api/operations/what-are-operations.python.markdown @@ -0,0 +1,372 @@ +# What are Operations + +--- + +{NOTE: } + +* The RavenDB Client API is built with the notion of layers. + At the top, and what you will usually interact with, are the **[documentStore](../../client-api/what-is-a-document-store)** + and the **[session](../../client-api/session/what-is-a-session-and-how-does-it-work)**. + They in turn are built on top of the lower-level **Operations** and **Commands** API. + +* **RavenDB provides direct access to this lower-level API**, allowing you to send requests + directly to the server via DocumentStore Operations instead of using the higher-level Session API. + +* In this page: + * [Why use operations](../../client-api/operations/what-are-operations#why-use-operations) + * [How operations work](../../client-api/operations/what-are-operations#how-operations-work) +
+ * **Operation types**: + * [Common operations](../../client-api/operations/what-are-operations#common-operations) + * [Maintenance operations](../../client-api/operations/what-are-operations#maintenance-operations) + * [Server-maintenance operations](../../client-api/operations/what-are-operations#server-maintenance-operations) + * [Manage lengthy operations](../../client-api/operations/what-are-operations#manage-lengthy-operations) + * [Wait for completion](../../client-api/operations/what-are-operations#wait-for-completion) + * [Kill operation](../../client-api/operations/what-are-operations#kill-operation) + +{NOTE/} + +--- + +{PANEL: Why use operations} + +* Operations provide **management functionality** that is Not available in the context of the session, for example: + * Create/delete a database + * Execute administrative tasks + * Assign permissions + * Change server configuration, and more. + +* The operations are executed on the DocumentStore and are Not part of the session transaction. + +* There are some client tasks, such as patching documents, that can be carried out either via the Session + ([session.advanced.patch()](../../client-api/operations/patching/single-document#array-manipulation)) + or via an Operation on the DocumentStore ([PatchOperation](../../client-api/operations/patching/single-document#operations-api)). + +{PANEL/} + +{PANEL: How operations work} + +* **Sending the request**: + Each Operation is an encapsulation of a `RavenCommand`. + The RavenCommand creates the HTTP request message to be sent to the relevant server endpoint. + The DocumentStore `OperationExecutor` sends the request and processes the results. +* **Target node**: + By default, the operation will be executed on the server node that is defined by the [client configuration](../../client-api/configuration/load-balance/overview#client-logic-for-choosing-a-node). + However, server-maintenance operations can be executed on a specific node by using the [for_node](../../client-api/operations/how-to/switch-operations-to-a-different-node) method. +* **Target database**: + By default, operations work on the default database defined in the DocumentStore. + However, common operations & maintenance operations can operate on a different database by using the [for_database](../../client-api/operations/how-to/switch-operations-to-a-different-database) method. +* **Transaction scope**: + Operations execute as a single-node transaction. + If needed, data will then replicate to the other nodes in the database-group. +* **Background operations**: + Some operations may take a long time to complete and can be awaited for completion. + Learn more [below](../../client-api/operations/what-are-operations#wait-for-completion). + +{PANEL/} + +{PANEL: Common operations} + +* All common operations implement the `IOperation` interface. + The operation is executed within the **database scope**. + Use [for_database](../../client-api/operations/how-to/switch-operations-to-a-different-database) to operate on a specific database other than the default defined in the store. + +* These operations include set-based operations such as _PatchOperation_, _CounterBatchOperation_, + document-extensions related operations such as getting/putting an attachment, and more. + See all available operations [below](../../client-api/operations/what-are-operations#operations-list). + +* To execute a common operation request, + use the `send` method on the `operations` property in the DocumentStore. + +#### Example: + +{CODE:python operations_ex@ClientApi\Operations\WhatAreOperations.py /} + +##### Syntax: + +{CODE:python operations_send@ClientApi\Operations\WhatAreOperations.py /} + +{NOTE: } + + **The following common operations are available:** + +--- + +* **Attachments**: +        [PutAttachmentOperation](../../client-api/operations/attachments/put-attachment) +        [GetAttachmentOperation](../../client-api/operations/attachments/get-attachment) +        [DeleteAttachmentOperation](../../client-api/operations/attachments/delete-attachment) + +* **Counters**: +        [CounterBatchOperation](../../client-api/operations/counters/counter-batch) +        [GetCountersOperation](../../client-api/operations/counters/get-counters) + +* **Time series**: +        [TimeSeriesBatchOperation](../../document-extensions/timeseries/client-api/operations/append-and-delete) +        [GetMultipleTimeSeriesOperation](../../document-extensions/timeseries/client-api/operations/get) +        [GetTimeSeriesOperation](../../document-extensions/timeseries/client-api/operations/get) +        GetTimeSeriesStatisticsOperation + +* **Revisions**: +        [GetRevisionsOperation](../../document-extensions/revisions/client-api/operations/get-revisions) + +* **Patching**: +        [PatchOperation](../../client-api/operations/patching/single-document) +        [PatchByQueryOperation](../../client-api/operations/patching/set-based) + +* **Delete by query**: +        [DeleteByQueryOperation](../../client-api/operations/common/delete-by-query) + +* **Compare-exchange**: +        [PutCompareExchangeValueOperation](../../client-api/operations/compare-exchange/put-compare-exchange-value) +        [GetCompareExchangeValueOperation](../../client-api/operations/compare-exchange/get-compare-exchange-value) +        [GetCompareExchangeValuesOperation](../../client-api/operations/compare-exchange/get-compare-exchange-values) +        [DeleteCompareExchangeValueOperation](../../client-api/operations/compare-exchange/delete-compare-exchange-value) + +{NOTE/} +{PANEL/} + +{PANEL: Maintenance operations} + +* All maintenance operations implement the `IMaintenanceOperation` interface. + The operation is executed within the **database scope**. + Use [for_database](../../client-api/operations/how-to/switch-operations-to-a-different-database) to operate on a specific database other than the default defined in the store. + +* These operations include database management operations such as setting client configuration, + managing indexes & ongoing-tasks operations, getting stats, and more. + See all available maintenance operations [below](../../client-api/operations/what-are-operations#maintenance-list). + +* To execute a maintenance operation request, + use the `send` method on the `maintenance` property in the DocumentStore. + +#### Example: + +{CODE:python maintenance_ex@ClientApi\Operations\WhatAreOperations.py /} + +##### Syntax: + +{CODE:python maintenance_send@ClientApi\Operations\WhatAreOperations.py /} + +{NOTE: } + + **The following maintenance operations are available:** + +--- + +* **Statistics**: +        [GetStatisticsOperation](../../client-api/operations/maintenance/get-stats#get-database-stats) +        [GetDetailedStatisticsOperation](../../client-api/operations/maintenance/get-stats#get-detailed-database-stats) +        [GetCollectionStatisticsOperation](../../client-api/operations/maintenance/get-stats#get-collection-stats) +        [GetDetailedCollectionStatisticsOperation](../../client-api/operations/maintenance/get-stats#get-detailed-collection-stats) + +* **Client Configuration**: +        [PutClientConfigurationOperation](../../client-api/operations/maintenance/configuration/put-client-configuration) +        [GetClientConfigurationOperation](../../client-api/operations/maintenance/configuration/get-client-configuration) + +* **Indexes**: +        [PutIndexesOperation](../../client-api/operations/maintenance/indexes/put-indexes) +        [SetIndexesLockOperation](../../client-api/operations/maintenance/indexes/set-index-lock) +        [SetIndexesPriorityOperation](../../client-api/operations/maintenance/indexes/set-index-priority) +        [GetIndexErrorsOperation](../../client-api/operations/maintenance/indexes/get-index-errors) +        [GetIndexOperation](../../client-api/operations/maintenance/indexes/get-index) +        [GetIndexesOperation](../../client-api/operations/maintenance/indexes/get-indexes) +        [GetTermsOperation](../../client-api/operations/maintenance/indexes/get-terms) +        GetIndexPerformanceStatisticsOperation +        GetIndexStatisticsOperation +        GetIndexesStatisticsOperation +        GetIndexingStatusOperation +        GetIndexStalenessOperation +        [GetIndexNamesOperation](../../client-api/operations/maintenance/indexes/get-index-names) +        [StartIndexOperation](../../client-api/operations/maintenance/indexes/start-index) +        [StartIndexingOperation](../../client-api/operations/maintenance/indexes/start-indexing) +        [StopIndexOperation](../../client-api/operations/maintenance/indexes/stop-index) +        [StopIndexingOperation](../../client-api/operations/maintenance/indexes/stop-indexing) +        [ResetIndexOperation](../../client-api/operations/maintenance/indexes/reset-index) +        [DeleteIndexOperation](../../client-api/operations/maintenance/indexes/delete-index) +        [DeleteIndexErrorsOperation](../../client-api/operations/maintenance/indexes/delete-index-errors) +        [DisableIndexOperation](../../client-api/operations/maintenance/indexes/disable-index) +        [EnableIndexOperation](../../client-api/operations/maintenance/indexes/enable-index) +        [IndexHasChangedOperation](../../client-api/operations/maintenance/indexes/index-has-changed) + +* **Analyzers**: +        PutAnalyzersOperation +        DeleteAnalyzerOperation + +* **Ongoing tasks**: +        [GetOngoingTaskInfoOperation](../../client-api/operations/maintenance/ongoing-tasks/ongoing-task-operations#get-ongoing-task-info) +        [ToggleOngoingTaskStateOperation](../../client-api/operations/maintenance/ongoing-tasks/ongoing-task-operations#toggle-ongoing-task-state) +        [DeleteOngoingTaskOperation](../../client-api/operations/maintenance/ongoing-tasks/ongoing-task-operations#delete-ongoing-task) + +* **ETL tasks**: +        AddEtlOperation +        UpdateEtlOperation +        [ResetEtlOperation](../../client-api/operations/maintenance/etl/reset-etl) + +* **Replication tasks**: +        PutPullReplicationAsHubOperation +        GetPullReplicationTasksInfoOperation +        GetReplicationHubAccessOperation +        GetReplicationPerformanceStatisticsOperation +        RegisterReplicationHubAccessOperation +        UnregisterReplicationHubAccessOperation +        UpdateExternalReplicationOperation +        UpdatePullReplicationAsSinkOperation + +* **Backup**: +        BackupOperation +        GetPeriodicBackupStatusOperation +        StartBackupOperation +        UpdatePeriodicBackupOperation + +* **Connection strings**: +        PutConnectionStringOperation +        RemoveConnectionStringOperation + +* **Transaction recording**: +        StartTransactionsRecordingOperation +        StopTransactionsRecordingOperation +        ReplayTransactionsRecordingOperation + +* **Database settings**: +        [PutDatabaseSettingsOperation](../../client-api/operations/maintenance/configuration/database-settings-operation#put-database-settings-operation) +        [GetDatabaseSettingsOperation](../../client-api/operations/maintenance/configuration/database-settings-operation#get-database-settings-operation) + +* **Identities**: +        [GetIdentitiesOperation](../../client-api/operations/maintenance/identities/get-identities) +        [NextIdentityForOperation](../../client-api/operations/maintenance/identities/increment-next-identity) +        [SeedIdentityForOperation](../../client-api/operations/maintenance/identities/seed-identity) + +* **Time series**: +        ConfigureTimeSeriesOperation +        ConfigureTimeSeriesPolicyOperation +        ConfigureTimeSeriesValueNamesOperation +        RemoveTimeSeriesPolicyOperation + +* **Revisions**: +        [ConfigureRevisionsOperation](../../document-extensions/revisions/client-api/operations/configure-revisions) + +* **Sorters**: +        [PutSortersOperation](../../client-api/operations/maintenance/sorters/put-sorter) +        DeleteSorterOperation + +* **Misc**: +        ConfigureExpirationOperation +        ConfigureRefreshOperation +        UpdateDocumentsCompressionConfigurationOperation +        DatabaseHealthCheckOperation +        GetOperationStateOperation +        CreateSampleDataOperation + +{NOTE/} +{PANEL/} + +{PANEL: Server-maintenance operations} + +* All server-maintenance operations implement the `IServerOperation` interface. + The operation is executed within the **server scope**. + Use [for_node](../../client-api/operations/how-to/switch-operations-to-a-different-node) to operate on a specific node other than the default defined in the client configuration. + +* These operations include server management and configuration operations. + See all available operations [below](../../client-api/operations/what-are-operations#server-list). + +* To execute a server-maintenance operation request, + use the `send` method on the `maintenance.server` property in the DocumentStore. + +#### Example: + +{CODE:python server_ex@ClientApi\Operations\WhatAreOperations.py /} + +##### Syntax: + +{CODE:python server_send@ClientApi\Operations\WhatAreOperations.py /} + +{NOTE: } + + **The following server-maintenance operations are available:** + +--- + +* **Client certificates**: +        [PutClientCertificateOperation](../../client-api/operations/server-wide/certificates/put-client-certificate) +        [CreateClientCertificateOperation](../../client-api/operations/server-wide/certificates/create-client-certificate) +        [GetCertificatesOperation](../../client-api/operations/server-wide/certificates/get-certificates) +        [DeleteCertificateOperation](../../client-api/operations/server-wide/certificates/delete-certificate) +        EditClientCertificateOperation +        GetCertificateMetadataOperation +        ReplaceClusterCertificateOperation + +* **Server-wide client configuration**: +        [PutServerWideClientConfigurationOperation](../../client-api/operations/server-wide/configuration/put-serverwide-client-configuration) +        [GetServerWideClientConfigurationOperation](../../client-api/operations/server-wide/configuration/get-serverwide-client-configuration) + +* **Database management**: +        [CreateDatabaseOperation](../../client-api/operations/server-wide/create-database) +        [DeleteDatabasesOperation](../../client-api/operations/server-wide/delete-database) +        [ToggleDatabasesStateOperation](../../client-api/operations/server-wide/toggle-databases-state) +        [GetDatabaseNamesOperation](../../client-api/operations/server-wide/get-database-names) +        [AddDatabaseNodeOperation](../../client-api/operations/server-wide/add-database-node) +        [PromoteDatabaseNodeOperation](../../client-api/operations/server-wide/promote-database-node) +        [ReorderDatabaseMembersOperation](../../client-api/operations/server-wide/reorder-database-members) +        [CompactDatabaseOperation](../../client-api/operations/server-wide/compact-database) +        GetDatabaseRecordOperation +        SetDatabasesLockOperation +        CreateDatabaseOperationWithoutNameValidation +        SetDatabaseDynamicDistributionOperation +        ModifyDatabaseTopologyOperation +        UpdateDatabaseOperation +        UpdateUnusedDatabasesOperation + +* **Server-wide ongoing tasks**: +        DeleteServerWideTaskOperation +        ToggleServerWideTaskStateOperation + +* **Server-wide replication tasks**: +        PutServerWideExternalReplicationOperation +        GetServerWideExternalReplicationOperation +        GetServerWideExternalReplicationsOperation + +* **Server-wide backup tasks**: +        PutServerWideBackupConfigurationOperation +        GetServerWideBackupConfigurationOperation +        GetServerWideBackupConfigurationsOperation +        RestoreBackupOperation + +* **Server-wide analyzers**: +        PutServerWideAnalyzersOperation +        DeleteServerWideAnalyzerOperation + +* **Server-wide sorters**: +        [PutServerWideSortersOperation](../../client-api/operations/server-wide/sorters/put-sorter-server-wide) +        DeleteServerWideSorterOperation + +* **Logs & debug**: +        SetLogsConfigurationOperation +        GetLogsConfigurationOperation +        GetClusterDebugInfoPackageOperation +        [GetBuildNumberOperation](../../client-api/operations/server-wide/get-build-number) +        GetServerWideOperationStateOperation + +* **Traffic watch**: +        PutTrafficWatchConfigurationOperation +        GetTrafficWatchConfigurationOperation + +* **Revisions**: +        [ConfigureRevisionsForConflictsOperation](../../document-extensions/revisions/client-api/operations/conflict-revisions-configuration) + +* **Misc**: +        ModifyConflictSolverOperation +        OfflineMigrationOperation + +{NOTE/} +{PANEL/} + +## Related articles + +### Document Store + +- [What is a Document Store](../../client-api/what-is-a-document-store) + +### Operations + +- [How to Switch Operations to a Different Database](../../client-api/operations/how-to/switch-operations-to-a-different-database) +- [How to Switch Operations to a Different Node](../../client-api/operations/how-to/switch-operations-to-a-different-node) diff --git a/Documentation/6.1/Samples/csharp/Raven.Documentation.Samples/ClientApi/Operations/Maintenance/OngoingTasks/OngoingTaskOperations.cs b/Documentation/6.1/Samples/csharp/Raven.Documentation.Samples/ClientApi/Operations/Maintenance/OngoingTasks/OngoingTaskOperations.cs new file mode 100644 index 0000000000..e308887e0a --- /dev/null +++ b/Documentation/6.1/Samples/csharp/Raven.Documentation.Samples/ClientApi/Operations/Maintenance/OngoingTasks/OngoingTaskOperations.cs @@ -0,0 +1,148 @@ +using System.Threading.Tasks; +using Raven.Client.Documents; +using Raven.Client.Documents.Operations.Indexes; + +namespace Raven.Documentation.Samples.ClientApi.Operations.Maintenance.OngoingTasks +{ + public class OngoingTaskOperations + { + + public CreateTask() + { + #region create_task + // Define a simple External Replication task + var taskDefintion = new ExternalReplication("sourceDatabaseName", "ConnectionStringName") + { + Name = "MyExtRepTask" + }; + + // Deploy the task to the server + var taskOp = new UpdateExternalReplicationOperation(taskDefintion); + var sendResult = store.Maintenance.Send(taskOp); + + // The task ID is available in the send result + var taskId = sendResult.TaskId; + #endregion + } + + public GetTask() + { + using (var store = new DocumentStore()) + { + #region get + // Define the get task operation, pass: + // * The ongoing task ID or the task name + // * The task type + var getTaskOp = new GetOngoingTaskInfoOperation(taskId, OngoingTaskType.Replication); + + // Execute the operation by passing it to Maintenance.Send + store.Maintenance.Send(getTaskOp); + #endregion + } + } + + public async Task GetTaskAsync() + { + using (var store = new DocumentStore()) + { + #region get_async + var getTaskOp = new GetOngoingTaskInfoOperation(taskId, OngoingTaskType.Replication); + await store.Maintenance.SendAsync(getTaskOp); + #endregion + } + } + + public ToggleTask() + { + using (var store = new DocumentStore()) + { + #region toggle + // Define the delete task operation, pass: + // * The ongoing task ID + // * The task type + // * A boolean value to enable/disable + var toggleTaskOp = new ToggleOngoingTaskStateOperation(taskId, OngoingTaskType.Replication, true); + + // Execute the operation by passing it to Maintenance.Send + store.Maintenance.Send(toggleTaskOp); + #endregion + } + } + + public async Task ToggleTaskAsync() + { + using (var store = new DocumentStore()) + { + #region toggle_async + var toggleTaskOp = new ToggleOngoingTaskStateOperation(taskId, OngoingTaskType.Replication, true); + await store.Maintenance.SendAsync(toggleTaskOp); + #endregion + } + } + + public DeleteTask() + { + using (var store = new DocumentStore()) + { + #region delete + // Define the delete task operation, pass: + // * The ongoing task ID + // * The task type + var deleteTaskOp = new DeleteOngoingTaskOperation(taskId, OngoingTaskType.Replication); + + // Execute the operation by passing it to Maintenance.Send + store.Maintenance.Send(deleteTaskOp); + #endregion + } + } + + public async Task DeleteTaskAsync() + { + using (var store = new DocumentStore()) + { + #region delete_async + var deleteTaskOp = new DeleteOngoingTaskOperation(taskId, OngoingTaskType.Replication); + await store.Maintenance.SendAsync(deleteTaskOp); + #endregion + } + } + + private interface IFoo + { + /* + #region syntax_1 + // Get + public GetOngoingTaskInfoOperation(long taskId, OngoingTaskType type); + public GetOngoingTaskInfoOperation(string taskName, OngoingTaskType type); + #endregion + + #region syntax_2 + // Delete + public DeleteOngoingTaskOperation(long taskId, OngoingTaskType taskType); + #endregion + + #region syntax_3 + // Toggle + public ToggleOngoingTaskStateOperation(long taskId, OngoingTaskType type, bool disable); + #endregion + */ + } + + #region syntax_4 + public enum OngoingTaskType + { + Replication, + RavenEtl, + SqlEtl, + OlapEtl, + ElasticSearchEtl, + QueueEtl, + Backup, + Subscription, + PullReplicationAsHub, + PullReplicationAsSink, + QueueSink, + } + #endregion + } +} diff --git a/Documentation/6.1/Samples/csharp/Raven.Documentation.Samples/ClientApi/Operations/WhatAreOperations.cs b/Documentation/6.1/Samples/csharp/Raven.Documentation.Samples/ClientApi/Operations/WhatAreOperations.cs new file mode 100644 index 0000000000..e1c9f4a726 --- /dev/null +++ b/Documentation/6.1/Samples/csharp/Raven.Documentation.Samples/ClientApi/Operations/WhatAreOperations.cs @@ -0,0 +1,361 @@ +using System; +using System.Threading; +using System.Threading.Tasks; +using Raven.Client.Documents; +using Raven.Client.Documents.Indexes; +using Raven.Client.Documents.Operations; +using Raven.Client.Documents.Operations.Counters; +using Raven.Client.Documents.Operations.Indexes; +using Raven.Client.Documents.Session; +using Raven.Client.ServerWide.Operations; +using Xunit; + +namespace Raven.Documentation.Samples.ClientApi.Operations +{ + public class WhatAreOperations + { + public interface ISendSyntax + { + #region operations_send + // Available overloads: + void Send(IOperation operation, SessionInfo sessionInfo = null); + TResult Send(IOperation operation, SessionInfo sessionInfo = null); + Operation Send(IOperation operation, SessionInfo sessionInfo = null); + + PatchStatus Send(PatchOperation operation); + PatchOperation.Result Send(PatchOperation operation); + #endregion + + #region operations_send_async + // Available overloads: + Task SendAsync(IOperation operation, + CancellationToken token = default(CancellationToken), SessionInfo sessionInfo = null); + Task SendAsync(IOperation operation, + CancellationToken token = default(CancellationToken), SessionInfo sessionInfo = null); + Task SendAsync(IOperation operation, + CancellationToken token = default(CancellationToken), SessionInfo sessionInfo = null); + + Task SendAsync(PatchOperation operation, + CancellationToken token = default(CancellationToken)); + Task> SendAsync(PatchOperation operation, + CancellationToken token = default(CancellationToken)); + #endregion + + #region maintenance_send + // Available overloads: + void Send(IMaintenanceOperation operation); + TResult Send(IMaintenanceOperation operation); + Operation Send(IMaintenanceOperation operation); + #endregion + + #region maintenance_send_async + // Available overloads: + Task SendAsync(IMaintenanceOperation operation, + CancellationToken token = default(CancellationToken)); + Task SendAsync(IMaintenanceOperation operation, + CancellationToken token = default(CancellationToken)); + Task SendAsync(IMaintenanceOperation operation, + CancellationToken token = default(CancellationToken)); + #endregion + + #region server_send + // Available overloads: + void Send(IServerOperation operation); + TResult Send(IServerOperation operation); + Operation Send(IServerOperation operation); + #endregion + + #region server_send_async + // Available overloads: + Task SendAsync(IServerOperation operation, + CancellationToken token = default(CancellationToken)); + Task SendAsync(IServerOperation operation, + CancellationToken token = default(CancellationToken)); + Task SendAsync(IServerOperation operation, + CancellationToken token = default(CancellationToken)); + #endregion + + /* + #region waitForCompletion_syntax + // Available overloads: + public IOperationResult WaitForCompletion(TimeSpan? timeout = null) + public IOperationResult WaitForCompletion(CancellationToken token) + + public TResult WaitForCompletion(TimeSpan? timeout = null) + where TResult : IOperationResult + public TResult WaitForCompletion(CancellationToken token) + where TResult : IOperationResult + #endregion + */ + + /* + #region waitForCompletion_syntax_async + // Available overloads: + public Task WaitForCompletionAsync(TimeSpan? timeout = null) + public Task WaitForCompletionAsync(CancellationToken token) + + public async Task WaitForCompletionAsync(TimeSpan? timeout = null) + where TResult : IOperationResult + public async Task WaitForCompletionAsync(CancellationToken token) + where TResult : IOperationResult + #endregion + */ + + /* + #region kill_syntax + // Available overloads: + public void Kill() + public async Task KillAsync(CancellationToken token = default) + #endregion + */ + } + + public void Examples() + { + using var documentStore = new DocumentStore + { + Urls = new[] { "http://localhost:8080" }, + Database = "Northwind" + }; + + #region operations_ex + // Define operation, e.g. get all counters info for a document + IOperation getCountersOp = new GetCountersOperation("products/1-A"); + + // Execute the operation by passing the operation to Operations.Send + CountersDetail allCountersResult = documentStore.Operations.Send(getCountersOp); + + // Access the operation result + int numberOfCounters = allCountersResult.Counters.Count; + #endregion + + #region maintenance_ex + // Define operation, e.g. stop an index + IMaintenanceOperation stopIndexOp = new StopIndexOperation("Orders/ByCompany"); + + // Execute the operation by passing the operation to Maintenance.Send + documentStore.Maintenance.Send(stopIndexOp); + + // This specific operation returns void + // You can send another operation to verify the index running status + IMaintenanceOperation indexStatsOp = new GetIndexStatisticsOperation("Orders/ByCompany"); + IndexStats indexStats = documentStore.Maintenance.Send(indexStatsOp); + IndexRunningStatus status = indexStats.Status; // will be "Paused" + #endregion + + #region server_ex + // Define operation, e.g. get the server build number + IServerOperation getBuildNumberOp = new GetBuildNumberOperation(); + + // Execute the operation by passing the operation to Maintenance.Server.Send + BuildNumber buildNumberResult = documentStore.Maintenance.Server.Send(getBuildNumberOp); + + // Access the operation result + int version = buildNumberResult.BuildVersion; + #endregion + + #region kill_ex + // Define operation, e.g. delete all discontinued products + // Note: This operation implements interface: 'IOperation' + IOperation deleteByQueryOp = + new DeleteByQueryOperation("from Products where Discontinued = true"); + + // Execute the operation + // Send returns an 'Operation' object that can be 'killed' + Operation operation = documentStore.Operations.Send(deleteByQueryOp); + + // Call 'Kill' to abort operation + operation.Kill(); + #endregion + } + + #region wait_timeout_ex + public void WaitForCompletionWithTimout( + TimeSpan timeout, + DocumentStore documentStore) + { + // Define operation, e.g. delete all discontinued products + // Note: This operation implements interface: 'IOperation' + IOperation deleteByQueryOp = + new DeleteByQueryOperation("from Products where Discontinued = true"); + + // Execute the operation + // Send returns an 'Operation' object that can be awaited on + Operation operation = documentStore.Operations.Send(deleteByQueryOp); + + try + { + // Call method 'WaitForCompletion' to wait for the operation to complete. + // If a timeout is specified, the method will only wait for the specified time frame. + BulkOperationResult result = + (BulkOperationResult)operation.WaitForCompletion(timeout); + + // The operation has finished within the specified timeframe + long numberOfItemsDeleted = result.Total; // Access the operation result + } + catch (TimeoutException e) + { + // The operation did Not finish within the specified timeframe + } + } + #endregion + + #region wait_token_ex + public void WaitForCompletionWithCancellationToken( + CancellationToken token, + DocumentStore documentStore) + { + // Define operation, e.g. delete all discontinued products + // Note: This operation implements interface: 'IOperation' + IOperation deleteByQueryOp = + new DeleteByQueryOperation("from Products where Discontinued = true"); + + // Execute the operation + // Send returns an 'Operation' object that can be awaited on + Operation operation = documentStore.Operations.Send(deleteByQueryOp); + + try + { + // Call method 'WaitForCompletion' to wait for the operation to complete. + // Pass a CancellationToken in order to stop waiting upon a cancellation request. + BulkOperationResult result = + (BulkOperationResult)operation.WaitForCompletion(token); + + // The operation has finished, no cancellation request was made + long numberOfItemsDeleted = result.Total; // Access the operation result + } + catch (TimeoutException e) + { + // The operation did Not finish at cancellation time + } + } + #endregion + + public async Task ExamplesAsync() + { + using var documentStore = new DocumentStore + { + Urls = new[] { "http://localhost:8080" }, + Database = "Northwind" + }; + + #region operations_ex_async + // Define operation, e.g. get all counters info for a document + IOperation getCountersOp = new GetCountersOperation("products/1-A"); + + // Execute the operation by passing the operation to Operations.Send + CountersDetail allCountersResult = await documentStore.Operations.SendAsync(getCountersOp); + + // Access the operation result + int numberOfCounters = allCountersResult.Counters.Count; + #endregion + + #region maintenance_ex_async + // Define operation, e.g. stop an index + IMaintenanceOperation stopIndexOp = new StopIndexOperation("Orders/ByCompany"); + + // Execute the operation by passing the operation to Maintenance.Send + await documentStore.Maintenance.SendAsync(stopIndexOp); + + // This specific operation returns void + // You can send another operation to verify the index running status + IMaintenanceOperation indexStatsOp = new GetIndexStatisticsOperation("Orders/ByCompany"); + IndexStats indexStats = await documentStore.Maintenance.SendAsync(indexStatsOp); + IndexRunningStatus status = indexStats.Status; // will be "Paused" + #endregion + + #region server_ex_async + // Define operation, e.g. get the server build number + IServerOperation getBuildNumberOp = new GetBuildNumberOperation(); + + // Execute the operation by passing the operation to Maintenance.Server.Send + BuildNumber buildNumberResult = await documentStore.Maintenance.Server.SendAsync(getBuildNumberOp); + + // Access the operation result + int version = buildNumberResult.BuildVersion; + #endregion + + #region kill_ex_async + // Define operation, e.g. delete all discontinued products + // Note: This operation implements interface: 'IOperation' + IOperation deleteByQueryOp = + new DeleteByQueryOperation("from Products where Discontinued = true"); + + // Execute the operation + // SendAsync returns an 'Operation' object that can be 'killed' + Operation operation = await documentStore.Operations.SendAsync(deleteByQueryOp); + + // Call 'KillAsync' to abort operation + await operation.KillAsync(); + + // Assert that operation is no longer running + await Assert.ThrowsAsync(() => + operation.WaitForCompletionAsync(TimeSpan.FromSeconds(30))); + #endregion + } + + #region wait_timeout_ex_async + public async Task WaitForCompletionWithTimoutAsync( + TimeSpan timeout, + DocumentStore documentStore) + { + // Define operation, e.g. delete all discontinued products + // Note: This operation implements interface: 'IOperation' + IOperation deleteByQueryOp = + new DeleteByQueryOperation("from Products where Discontinued = true"); + + // Execute the operation + // SendAsync returns an 'Operation' object that can be awaited on + Operation operation = await documentStore.Operations.SendAsync(deleteByQueryOp); + + try + { + // Call method 'WaitForCompletionAsync' to wait for the operation to complete. + // If a timeout is specified, the method will only wait for the specified time frame. + BulkOperationResult result = + await operation.WaitForCompletionAsync(timeout) + .ConfigureAwait(false) as BulkOperationResult; + + // The operation has finished within the specified timeframe + long numberOfItemsDeleted = result.Total; // Access the operation result + } + catch (TimeoutException e) + { + // The operation did Not finish within the specified timeframe + } + } + #endregion + + #region wait_token_ex_async + public async Task WaitForCompletionWithCancellationTokenAsync( + CancellationToken token, + DocumentStore documentStore) + { + // Define operation, e.g. delete all discontinued products + // Note: This operation implements interface: 'IOperation' + IOperation deleteByQueryOp = + new DeleteByQueryOperation("from Products where Discontinued = true"); + + // Execute the operation + // SendAsync returns an 'Operation' object that can be awaited on + Operation operation = await documentStore.Operations.SendAsync(deleteByQueryOp); + + try + { + // Call method 'WaitForCompletionAsync' to wait for the operation to complete. + // Pass a CancellationToken in order to stop waiting upon a cancellation request. + BulkOperationResult result = + await operation.WaitForCompletionAsync(token) + .ConfigureAwait(false) as BulkOperationResult; + + // The operation has finished, no cancellation request was made + long numberOfItemsDeleted = result.Total; // Access the operation result + } + catch (TimeoutException e) + { + // The operation did Not finish at cancellation time + } + } + #endregion + } +} diff --git a/Documentation/6.1/Samples/java/src/test/java/net/ravendb/ClientApi/Operations/WhatAreOperations.java b/Documentation/6.1/Samples/java/src/test/java/net/ravendb/ClientApi/Operations/WhatAreOperations.java new file mode 100644 index 0000000000..be5519c6f8 --- /dev/null +++ b/Documentation/6.1/Samples/java/src/test/java/net/ravendb/ClientApi/Operations/WhatAreOperations.java @@ -0,0 +1,101 @@ +package net.ravendb.ClientApi.Operations; + +import net.ravendb.client.documents.DocumentStore; +import net.ravendb.client.documents.IDocumentStore; +import net.ravendb.client.documents.attachments.AttachmentType; +import net.ravendb.client.documents.operations.CompactDatabaseOperation; +import net.ravendb.client.documents.operations.DeleteByQueryOperation; +import net.ravendb.client.documents.operations.Operation; +import net.ravendb.client.documents.operations.attachments.CloseableAttachmentResult; +import net.ravendb.client.documents.operations.attachments.GetAttachmentOperation; +import net.ravendb.client.documents.operations.configuration.GetClientConfigurationOperation; +import net.ravendb.client.documents.operations.indexes.StopIndexOperation; +import net.ravendb.client.documents.queries.IndexQuery; +import net.ravendb.client.serverwide.CompactSettings; + +public class WhatAreOperations { + + private interface IFoo { + /* + //region Client_Operations_api + public void send(IVoidOperation operation) + + public void send(IVoidOperation operation, SessionInfo sessionInfo) + + public TResult send(IOperation operation) + + public TResult send(IOperation operation, SessionInfo sessionInfo) + + public PatchStatus send(PatchOperation operation, SessionInfo sessionInfo) + + public PatchOperation.Result send(Class entityClass, PatchOperation operation, SessionInfo sessionInfo) + //endregion + + //region Client_Operations_api_async + public Operation sendAsync(IOperation operation) + + public Operation sendAsync(IOperation operation, SessionInfo sessionInfo) + //endregion + + //region Maintenance_Operations_api + public void send(IVoidMaintenanceOperation operation) + + public TResult send(IMaintenanceOperation operation) + //endregion + + //region Maintenance_Operations_api_async + public Operation sendAsync(IMaintenanceOperation operation) + //endregion + + //region Server_Operations_api + public void send(IVoidServerOperation operation) + + public TResult send(IServerOperation operation) + //endregion + + //region Server_Operations_api_async + public Operation sendAsync(IServerOperation operation) + //endregion + */ + } + + public WhatAreOperations() { + try (IDocumentStore store = new DocumentStore()) { + //region Client_Operations_1 + try (CloseableAttachmentResult fetchedAttachment = store + .operations() + .send(new GetAttachmentOperation("users/1", "file.txt", AttachmentType.DOCUMENT, null))) { + // do stuff with the attachment stream --> fetchedAttachment.data + } + //endregion + + { + //region Client_Operations_1_async + IndexQuery indexQuery = new IndexQuery(); + indexQuery.setQuery("from users where Age == 5"); + DeleteByQueryOperation operation = new DeleteByQueryOperation(indexQuery); + Operation asyncOp = store.operations().sendAsync(operation); + //endregion + } + + //region Maintenance_Operations_1 + store.maintenance().send(new StopIndexOperation("Orders/ByCompany")); + //endregion + + //region Server_Operations_1 + GetClientConfigurationOperation.Result result + = store.maintenance().send(new GetClientConfigurationOperation()); + //endregion + + { + //region Server_Operations_1_async + CompactSettings settings = new CompactSettings(); + settings.setDocuments(true); + settings.setDatabaseName("Northwind"); + Operation operation = store.maintenance().server().sendAsync(new CompactDatabaseOperation(settings)); + operation.waitForCompletion(); + //endregion + } + } + } +} diff --git a/Documentation/6.1/Samples/nodejs/client-api/operations/whatAreOperations.js b/Documentation/6.1/Samples/nodejs/client-api/operations/whatAreOperations.js new file mode 100644 index 0000000000..497c650bb9 --- /dev/null +++ b/Documentation/6.1/Samples/nodejs/client-api/operations/whatAreOperations.js @@ -0,0 +1,93 @@ +import { DocumentStore } from "ravendb"; + +const documentStore = new DocumentStore(); + +async function operations() { + //region operations_ex + // Define operation, e.g. get all counters info for a document + const getCountersOp = new GetCountersOperation("products/1-A"); + + // Execute the operation by passing the operation to operations.send + const allCountersResult = await documentStore.operations.send(getCountersOp); + + // Access the operation result + const numberOfCounters = allCountersResult.counters.length; + //endregion + + //region maintenance_ex + // Define operation, e.g. stop an index + const stopIndexOp = new StopIndexOperation("Orders/ByCompany"); + + // Execute the operation by passing the operation to maintenance.send + await documentStore.maintenance.send(stopIndexOp); + + // This specific operation returns void + // You can send another operation to verify the index running status + const indexStatsOp = new GetIndexStatisticsOperation("Orders/ByCompany"); + const indexStats = await documentStore.maintenance.send(indexStatsOp); + const status = indexStats.status; // will be "Paused" + //endregion + + //region server_ex + // Define operation, e.g. get the server build number + const getBuildNumberOp = new GetBuildNumberOperation(); + + // Execute the operation by passing the operation to maintenance.server.send + const buildNumberResult = await documentStore.maintenance.server.send(getBuildNumberOp); + + // Access the operation result + const version = buildNumberResult.buildVersion; + //endregion + + //region wait_ex + // Define operation, e.g. delete all discontinued products + // Note: This operation implements interface: 'IOperation' + const deleteByQueryOp = new DeleteByQueryOperation("from Products where Discontinued = true"); + + // Execute the operation + // 'send' returns an object that can be awaited on + const asyncOperation = await documentStore.operations.send(deleteByQueryOp); + + // Call method 'waitForCompletion' to wait for the operation to complete + await asyncOperation.waitForCompletion(); + //endregion + + //region kill_ex + // Define operation, e.g. delete all discontinued products + // Note: This operation implements interface: 'IOperation' + const deleteByQueryOp = new DeleteByQueryOperation("from Products where Discontinued = true"); + + // Execute the operation + // 'send' returns an object that can be 'killed' + const asyncOperation = await documentStore.operations.send(deleteByQueryOp); + + // Call method 'kill' to abort operation + await asyncOperation.kill(); + //endregion +} + +{ + //region operations_send + // Available overloads: + await send(operation); + await send(operation, sessionInfo); + await send(operation, sessionInfo, documentType); + + await send(patchOperaton); + await send(patchOperation, sessionInfo); + await send(patchOperation, sessionInfo, resultType); + //endregion + + //region maintenance_send + await send(operation); + //endregion + + //region server_send + await send(operation); + //endregion + + //region wait_kill_syntax + await waitForCompletion(); + await kill() + //endregion +} diff --git a/Documentation/6.1/Samples/python/ClientApi/Operations/WhatAreOperations.py b/Documentation/6.1/Samples/python/ClientApi/Operations/WhatAreOperations.py new file mode 100644 index 0000000000..b86c46e82f --- /dev/null +++ b/Documentation/6.1/Samples/python/ClientApi/Operations/WhatAreOperations.py @@ -0,0 +1,151 @@ +import datetime +from typing import TypeVar, Optional, Union, Generic + +from ravendb import ( + PatchOperation, + PatchStatus, + DocumentStore, + StopIndexOperation, + GetIndexStatisticsOperation, + DeleteByQueryOperation, + RavenCommand, +) +from ravendb.documents.conventions import DocumentConventions +from ravendb.documents.operations.counters import GetCountersOperation +from ravendb.documents.operations.definitions import ( + IOperation, + OperationIdResult, + _T, + VoidMaintenanceOperation, + MaintenanceOperation, +) +from ravendb.documents.operations.operation import Operation +from ravendb.documents.session.misc import SessionInfo +from ravendb.http.http_cache import HttpCache +from ravendb.serverwide.operations.common import ServerOperation, GetBuildNumberOperation + +from examples_base import ExampleBase + +_Operation_T = TypeVar("_Operation_T") +_T_OperationResult = TypeVar("_T_OperationResult") + + +class WhatAreOperations(ExampleBase): + class SendSyntax: + # region operations_send + # Available overloads: + def send(self, operation: IOperation[_Operation_T], session_info: SessionInfo = None) -> _Operation_T: ... + + def send_async(self, operation: IOperation[OperationIdResult]) -> Operation: ... + + def send_patch_operation(self, operation: PatchOperation, session_info: SessionInfo) -> PatchStatus: ... + + def send_patch_operation_with_entity_class( + self, entity_class: _T, operation: PatchOperation, session_info: Optional[SessionInfo] = None + ) -> PatchOperation.Result[_T]: ... + + # endregion + + class MaintenanceSyntax: + # region maintenance_send + def send( + self, operation: Union[VoidMaintenanceOperation, MaintenanceOperation[_Operation_T]] + ) -> Optional[_Operation_T]: ... + + def send_async(self, operation: MaintenanceOperation[OperationIdResult]) -> Operation: ... + + # endregion + + # region ioperation + + # (It's beginning with capital I to mirror the different clients API - and is similar to what is an interface) + class IOperation(Generic[_Operation_T]): + def get_command( + self, store: "DocumentStore", conventions: "DocumentConventions", cache: HttpCache + ) -> "RavenCommand[_Operation_T]": + pass + + # endregion + + class ServerSend: + # region server_send + def send(self, operation: ServerOperation[_T_OperationResult]) -> Optional[_T_OperationResult]: ... + + def send_async(self, operation: ServerOperation[OperationIdResult]) -> Operation: ... + + def test_examples(self): + with self.embedded_server.get_document_store("WhatAreOperations") as store: + # region operations_ex + # Define operation, e.g. get all counters info for a document + get_counters_op = GetCountersOperation("products/1-A") + + # Execute the operation by passing the operation to operations.send + all_counters_result = store.operations.send(get_counters_op) + + # Access the operation result + number_of_counters = len(all_counters_result.counters) + # endregion + + # region maintenance_ex + # Define operation, e.g. stop an index + stop_index_op = StopIndexOperation("Orders/ByCompany") + + # Execute the operation by passing the operation to maintenance.send + store.maintenance.send(stop_index_op) + + # This specific operation returns void + # You can send another operation to verify the index running status + index_stats_op = GetIndexStatisticsOperation("Orders/ByCompany") + index_stats = store.maintenance.send(index_stats_op) + status = index_stats.status # will be "Paused" + # endregion + + # region server_ex + # Define operation, e.g. get the server build number + get_build_number_op = GetBuildNumberOperation() + + # Execute the operation by passing to maintenance.server.send + build_number_result = store.maintenance.server.send(get_build_number_op) + + # Access the operation result + version = build_number_result.build_version + # endregion + + # region kill_ex + # Define operation, e.g. delete all discontinued products + # Note: This operation implements class: IOperation[OperationIdResult] + + delete_by_query_op = DeleteByQueryOperation("from Products where Discontinued = true") + + # Execute the operation + # Send returns an 'Operation' object that can be 'killed' + operation = store.operations.send_async(delete_by_query_op) + + # Call 'kill' to abort operation + # todo: skip it - wait for the merge of the ticket linked in the checklist + operation.kill() + # endregion + + # region wait_timeout_ex + + def wait_for_completion_with_timeout(timeout: datetime.timedelta, document_store: DocumentStore): + # Define operation, e.g. delete all discontinued products + # Note: This operation implements:'IOperation[OperationIdResult]' + delete_by_query_op = DeleteByQueryOperation("from Products where Discontinued = true") + + # Execute the operation + # Send returns an 'Operation' object that can be awaited on + operation = document_store.operations.send_async(delete_by_query_op) + + try: + # Call method 'WaitForCompletion' to wait for the operation to complete. + # If a timeout is specified, the method will only wait for the specified time frame. + result = operation.wait_for_completion_with_timeout(timeout) # todo: skip, wait for the merge + + # The operation has finished within the specified timeframe + number_of_items_deleted = result.total + except TimeoutError: + # The operation did not finish within the specified timeframe + ... + + # endregion From 9c7350afa93db6968e88e34f7177d287905ab4b5 Mon Sep 17 00:00:00 2001 From: danielle9897 Date: Thu, 11 Jul 2024 11:54:32 +0300 Subject: [PATCH 03/25] RDoc-2882 Fix the ongoing tasks operations examples --- .../ongoing-task-operations.dotnet.markdown | 8 ++ .../OngoingTasks/OngoingTaskOperations.cs | 94 ++++++++++++++----- 2 files changed, 76 insertions(+), 26 deletions(-) diff --git a/Documentation/6.1/Raven.Documentation.Pages/client-api/operations/maintenance/ongoing-tasks/ongoing-task-operations.dotnet.markdown b/Documentation/6.1/Raven.Documentation.Pages/client-api/operations/maintenance/ongoing-tasks/ongoing-task-operations.dotnet.markdown index 4cf85021ca..d23865acb2 100644 --- a/Documentation/6.1/Raven.Documentation.Pages/client-api/operations/maintenance/ongoing-tasks/ongoing-task-operations.dotnet.markdown +++ b/Documentation/6.1/Raven.Documentation.Pages/client-api/operations/maintenance/ongoing-tasks/ongoing-task-operations.dotnet.markdown @@ -72,4 +72,12 @@ Use `ToggleOngoingTaskStateOperation` to enable/disable the task state. {CODE syntax_4@ClientApi\Operations\Maintenance\OngoingTasks\OngoingTaskOperations.cs /} +
+ +| Return value of `store.Maintenance.Send(GetOngoingTaskInfoOperation)` | | +|-------------------------------------------------------------------------|----------------------------------------| +| `OngoingTaskReplication` | Object with information about the task | + +{CODE syntax_5@ClientApi\Operations\Maintenance\OngoingTasks\OngoingTaskOperations.cs /} + {PANEL/} diff --git a/Documentation/6.1/Samples/csharp/Raven.Documentation.Samples/ClientApi/Operations/Maintenance/OngoingTasks/OngoingTaskOperations.cs b/Documentation/6.1/Samples/csharp/Raven.Documentation.Samples/ClientApi/Operations/Maintenance/OngoingTasks/OngoingTaskOperations.cs index e308887e0a..2cbe5e184d 100644 --- a/Documentation/6.1/Samples/csharp/Raven.Documentation.Samples/ClientApi/Operations/Maintenance/OngoingTasks/OngoingTaskOperations.cs +++ b/Documentation/6.1/Samples/csharp/Raven.Documentation.Samples/ClientApi/Operations/Maintenance/OngoingTasks/OngoingTaskOperations.cs @@ -1,61 +1,83 @@ -using System.Threading.Tasks; +using System; +using System.Threading.Tasks; using Raven.Client.Documents; -using Raven.Client.Documents.Operations.Indexes; +using Raven.Client.Documents.Operations.OngoingTasks; +using Raven.Client.Documents.Operations.Replication; namespace Raven.Documentation.Samples.ClientApi.Operations.Maintenance.OngoingTasks { public class OngoingTaskOperations { - - public CreateTask() + public void CreateTask() { - #region create_task - // Define a simple External Replication task - var taskDefintion = new ExternalReplication("sourceDatabaseName", "ConnectionStringName") + using (var store = new DocumentStore()) { - Name = "MyExtRepTask" - }; - - // Deploy the task to the server - var taskOp = new UpdateExternalReplicationOperation(taskDefintion); - var sendResult = store.Maintenance.Send(taskOp); - - // The task ID is available in the send result - var taskId = sendResult.TaskId; - #endregion + #region create_task + // Define a simple External Replication task + var taskDefintion = new ExternalReplication + { + Name = "MyExtRepTask", + ConnectionStringName = "MyConnectionStringName" + }; + + // Deploy the task to the server + var taskOp = new UpdateExternalReplicationOperation(taskDefintion); + var sendResult = store.Maintenance.Send(taskOp); + + // The task ID is available in the send result + var taskId = sendResult.TaskId; + #endregion + } } - public GetTask() + public void GetTaskInfo() { using (var store = new DocumentStore()) { + var taskId = 1; // Placeholder value for compilation purpose + #region get // Define the get task operation, pass: // * The ongoing task ID or the task name // * The task type - var getTaskOp = new GetOngoingTaskInfoOperation(taskId, OngoingTaskType.Replication); + var getTaskInfoOp = new GetOngoingTaskInfoOperation(taskId, OngoingTaskType.Replication); // Execute the operation by passing it to Maintenance.Send - store.Maintenance.Send(getTaskOp); + var taskInfo = (OngoingTaskReplication)store.Maintenance.Send(getTaskInfoOp); + + // Access the task info + var taskState = taskInfo.TaskState; + var taskDelayTime = taskInfo.DelayReplicationFor; + var destinationUrls= taskInfo.TopologyDiscoveryUrls; + // ... #endregion } } - public async Task GetTaskAsync() + public async Task GetTaskInfoAsync() { using (var store = new DocumentStore()) { + var taskId = 1; + #region get_async - var getTaskOp = new GetOngoingTaskInfoOperation(taskId, OngoingTaskType.Replication); - await store.Maintenance.SendAsync(getTaskOp); + var getTaskInfoOp = new GetOngoingTaskInfoOperation(taskId, OngoingTaskType.Replication); + var taskInfo = (OngoingTaskReplication) await store.Maintenance.SendAsync(getTaskInfoOp); + + var taskState = taskInfo.TaskState; + var taskDelayTime = taskInfo.DelayReplicationFor; + var destinationUrls= taskInfo.TopologyDiscoveryUrls; + // ... #endregion } } - public ToggleTask() + public void ToggleTask() { using (var store = new DocumentStore()) { + var taskId = 1; + #region toggle // Define the delete task operation, pass: // * The ongoing task ID @@ -73,6 +95,8 @@ public async Task ToggleTaskAsync() { using (var store = new DocumentStore()) { + var taskId = 1; + #region toggle_async var toggleTaskOp = new ToggleOngoingTaskStateOperation(taskId, OngoingTaskType.Replication, true); await store.Maintenance.SendAsync(toggleTaskOp); @@ -80,10 +104,12 @@ public async Task ToggleTaskAsync() } } - public DeleteTask() + public void DeleteTask() { using (var store = new DocumentStore()) { + var taskId = 1; + #region delete // Define the delete task operation, pass: // * The ongoing task ID @@ -100,6 +126,8 @@ public async Task DeleteTaskAsync() { using (var store = new DocumentStore()) { + var taskId = 1; + #region delete_async var deleteTaskOp = new DeleteOngoingTaskOperation(taskId, OngoingTaskType.Replication); await store.Maintenance.SendAsync(deleteTaskOp); @@ -128,8 +156,9 @@ private interface IFoo */ } + /* #region syntax_4 - public enum OngoingTaskType + private enum OngoingTaskType { Replication, RavenEtl, @@ -144,5 +173,18 @@ public enum OngoingTaskType QueueSink, } #endregion + */ + + #region syntax_5 + public sealed class OngoingTaskReplication : OngoingTask + { + public OngoingTaskReplication() => this.TaskType = OngoingTaskType.Replication; + public string DestinationUrl { get; set; } + public string[] TopologyDiscoveryUrls { get; set; } + public string DestinationDatabase { get; set; } + public string ConnectionStringName { get; set; } + public TimeSpan DelayReplicationFor { get; set; } + } + #endregion } } From 38648ba869738e0487a36da3dcbf722e6dbf6f27 Mon Sep 17 00:00:00 2001 From: danielle9897 Date: Sun, 14 Jul 2024 15:00:12 +0300 Subject: [PATCH 04/25] RDoc-2882 The ongoing tasks overview article - under the Studio folder --- .../tasks/ongoing-tasks/general-info.markdown | 109 ++++++++++++++++++ .../ongoing-tasks/images/task-list-1.png | Bin 0 -> 94976 bytes .../ongoing-tasks/images/task-list-2.png | Bin 0 -> 130973 bytes .../ongoing-tasks/images/task-list-3.png | Bin 0 -> 128027 bytes 4 files changed, 109 insertions(+) create mode 100644 Documentation/6.1/Raven.Documentation.Pages/studio/database/tasks/ongoing-tasks/general-info.markdown create mode 100644 Documentation/6.1/Raven.Documentation.Pages/studio/database/tasks/ongoing-tasks/images/task-list-1.png create mode 100644 Documentation/6.1/Raven.Documentation.Pages/studio/database/tasks/ongoing-tasks/images/task-list-2.png create mode 100644 Documentation/6.1/Raven.Documentation.Pages/studio/database/tasks/ongoing-tasks/images/task-list-3.png diff --git a/Documentation/6.1/Raven.Documentation.Pages/studio/database/tasks/ongoing-tasks/general-info.markdown b/Documentation/6.1/Raven.Documentation.Pages/studio/database/tasks/ongoing-tasks/general-info.markdown new file mode 100644 index 0000000000..8b574c006f --- /dev/null +++ b/Documentation/6.1/Raven.Documentation.Pages/studio/database/tasks/ongoing-tasks/general-info.markdown @@ -0,0 +1,109 @@ +# Ongoing Tasks - Overview +--- + +{NOTE: } + +* Ongoing tasks are **work tasks** defined for the database. + +* Each task is assigned a responsible node from the [Database Group nodes](../../../../studio/database/settings/manage-database-group) to handle the work. + * If not specified by the user, the cluster decides which node will be responsible for the task. See [Members Duties](../../../../studio/database/settings/manage-database-group#database-group-topology---members-duties). + * If a node is down, the cluster will reassign the work to another node for the duration. + +* Once enabled, an **ongoing task** runs in the background, + and its responsible node executes the defined task work whenever relevant data changes occur. + +* In this page: + * [The ongoing tasks](../../../../studio/database/tasks/ongoing-tasks/general-info#the-ongoing-tasks) + * [The ongoing tasks list - View](../../../../studio/database/tasks/ongoing-tasks/general-info#the-ongoing-tasks-list---view) + * [The ongoing tasks list - Actions](../../../../studio/database/tasks/ongoing-tasks/general-info#the-ongoing-tasks-list---actions) + +{NOTE/} + +--- + +{PANEL: The ongoing tasks} + +The available ongoing tasks are: + +![Figure 3. Ongoing Tasks New Task](images/task-list-1.png "Add ongoing task") + +**Replication:** + +* **[External Replication](../../../../studio/database/tasks/ongoing-tasks/external-replication-task)** + Create a live replica of your database in another RavenDB database in another cluster. + This replication is initiated by the source database. +* **[Hub/Sink Replication](../../../../studio/database/tasks/ongoing-tasks/hub-sink-replication/overview)** + Create a live replica of your database, or a part of it, in another RavenDB database. + The replication is initiated by the *Sink* task. + The replication can be *bidirectional* or limited to a *single direction*. + The replication can be *filtered* to allow the delivery of selected documents. + +**Backups & Subscriptions:** + +* **[Backup](../../../../studio/database/tasks/backup-task)** + Schedule a backup or a snapshot of the database at a specified point in time. +* **[Subscription](../../../../client-api/data-subscriptions/what-are-data-subscriptions)** + Send batches of documents that match a pre-defined query for processing on a client. + +**ETL (RavenDB => Target):** + +* **[RavenDB ETL](../../../../studio/database/tasks/ongoing-tasks/ravendb-etl-task)** + Write all or chosen database documents to another RavenDB database. + Data can be filtered and modified with transformation scripts. +* **[SQL ETL](../../../../server/ongoing-tasks/etl/sql)** + Write the database data to a relational database. + Data can be filtered and modified with transformation scripts. +* **[OLAP ETL](../../../../studio/database/tasks/ongoing-tasks/olap-etl-task)** + Convert database data to the _Parquet_ file format for OLAP purposes. + Data can be filtered and modified with transformation scripts. +* **[Elasticsearch ETL](../../../../studio/database/tasks/ongoing-tasks/elasticsearch-etl-task)** + Write all or chosen database documents to an Elasticsearch destination. + Data can be filtered and modified with transformation scripts. +* **[Kafka ETL](../../../../studio/database/tasks/ongoing-tasks/kafka-etl-task)** + Write all or chosen database documents to topics of a Kafka broker. + Data can be filtered and modified with transformation scripts. +* **[RabbitMQ ETL](../../../../studio/database/tasks/ongoing-tasks/rabbitmq-etl-task)** + Write all or chosen database documents to a RabbitMQ exchange. + Data can be filtered and modified with transformation scripts. +* **[Azure Queue Storage ETL](../../../../studio/database/tasks/ongoing-tasks/azure-queue-storage-etl-task)** + Write all or chosen database documents to Azure Queue Storage. + Data can be filtered and modified with transformation scripts. + +**Sink (Source => RavendB)** + +* **[Kafka Sink](../../../../studio/database/tasks/ongoing-tasks/kafka-queue-sink)** + Consume and process incoming messages from Kafka topics. + Add scripts to Load, Put, or Delete documents in RavenDB based on the incoming messages. +* **[RabbitMQ Sink](../../../../studio/database/tasks/ongoing-tasks/rabbitmq-queue-sink)** + Consume and process incoming messages from RabbitMQ queues. + Add scripts to Load, Put, or Delete documents in RavenDB based on the incoming messages. + +{PANEL/} + +{PANEL: The ongoing tasks list - View} + +![Figure 1. Ongoing Tasks View](images/task-list-2.png "Ongoing tasks list for database DB1") + +1. Navigate to **Tasks > Ongoing Tasks** + +2. The list of the current tasks defined for the database. + +3. The task name. + +4. The node that is currently responsible for executing the task. + +{PANEL/} + +{PANEL: The ongoing tasks list - Actions} + +![Figure 2. Ongoing Tasks Actions](images/task-list-3.png "Ongoing tasks - actions") + +1. **Add Task** - Create a new task for the database. +2. **Enable / Disable** the task. +3. **Details** - Click to see a short task details summary in this view. +4. **Edit** - Click to edit the task. +5. **Delete** the task. + +The ongoing tasks can also be managed via the Client API. See [Ongoing tasks operations](../../../../client-api/operations/maintenance/ongoing-tasks/ongoing-task-operations). + +{PANEL/} diff --git a/Documentation/6.1/Raven.Documentation.Pages/studio/database/tasks/ongoing-tasks/images/task-list-1.png b/Documentation/6.1/Raven.Documentation.Pages/studio/database/tasks/ongoing-tasks/images/task-list-1.png new file mode 100644 index 0000000000000000000000000000000000000000..00f120d0bee06b8c597b1b98b53792c7d1024432 GIT binary patch literal 94976 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 cpzbvvO}hfIBgP#R%+e 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 literal 0 HcmV?d00001 From 14bdf686373a4f17e29d6faa05391655dc82c050 Mon Sep 17 00:00:00 2001 From: danielle9897 Date: Sun, 14 Jul 2024 15:52:16 +0300 Subject: [PATCH 05/25] RDoc-2882 Fix links --- .../authorization/security-clearance-and-permissions.markdown | 2 +- .../server/extensions/refresh.dotnet.markdown | 1 - .../server/extensions/refresh.js.markdown | 1 - .../server/ongoing-tasks/backup-overview.markdown | 2 +- .../6.0/Raven.Documentation.Pages/sharding/etl.markdown | 2 +- 5 files changed, 3 insertions(+), 5 deletions(-) diff --git a/Documentation/5.2/Raven.Documentation.Pages/server/security/authorization/security-clearance-and-permissions.markdown b/Documentation/5.2/Raven.Documentation.Pages/server/security/authorization/security-clearance-and-permissions.markdown index 55fc1115b6..9d3f9acd22 100644 --- a/Documentation/5.2/Raven.Documentation.Pages/server/security/authorization/security-clearance-and-permissions.markdown +++ b/Documentation/5.2/Raven.Documentation.Pages/server/security/authorization/security-clearance-and-permissions.markdown @@ -125,7 +125,7 @@ The following operations are **forbidden**: - Creating documents or modifying existing documents - Changing any configurations or settings -- Creating or modifying [ongoing tasks](../../../server/ongoing-tasks/general-info) +- Creating or modifying [ongoing tasks](../../../studio/database/tasks/ongoing-tasks/general-info) - Defining [static indexes](../../../indexes/creating-and-deploying#static-indexes) (the database will create [auto-indexes](../../../indexes/creating-and-deploying#auto-indexes) if there is no existing index that satisfies a query.) diff --git a/Documentation/5.4/Raven.Documentation.Pages/server/extensions/refresh.dotnet.markdown b/Documentation/5.4/Raven.Documentation.Pages/server/extensions/refresh.dotnet.markdown index 2ca8e2f40e..05eadb4a23 100644 --- a/Documentation/5.4/Raven.Documentation.Pages/server/extensions/refresh.dotnet.markdown +++ b/Documentation/5.4/Raven.Documentation.Pages/server/extensions/refresh.dotnet.markdown @@ -92,4 +92,3 @@ How to set a document to refresh 1 hour from now: ### Server - [What is a Change Vector](../../server/clustering/replication/change-vector) -- [Ongoing Tasks: General Info](../../server/ongoing-tasks/general-info) diff --git a/Documentation/5.4/Raven.Documentation.Pages/server/extensions/refresh.js.markdown b/Documentation/5.4/Raven.Documentation.Pages/server/extensions/refresh.js.markdown index 4291fe7227..2cf5cf3bd8 100644 --- a/Documentation/5.4/Raven.Documentation.Pages/server/extensions/refresh.js.markdown +++ b/Documentation/5.4/Raven.Documentation.Pages/server/extensions/refresh.js.markdown @@ -95,4 +95,3 @@ Alternatively, document refreshing can also be configured in the studio, under _ ### Server - [What is a Change Vector](../../server/clustering/replication/change-vector) -- [Ongoing Tasks: General Info](../../server/ongoing-tasks/general-info) diff --git a/Documentation/6.0/Raven.Documentation.Pages/server/ongoing-tasks/backup-overview.markdown b/Documentation/6.0/Raven.Documentation.Pages/server/ongoing-tasks/backup-overview.markdown index 415c68bb84..781e6df1e9 100644 --- a/Documentation/6.0/Raven.Documentation.Pages/server/ongoing-tasks/backup-overview.markdown +++ b/Documentation/6.0/Raven.Documentation.Pages/server/ongoing-tasks/backup-overview.markdown @@ -81,7 +81,7 @@ Backed-up data includes both database-level and cluster-level contents, as detai | [Compare-exchange values](../../client-api/operations/compare-exchange/overview) | ✔ | ✔ | | [Identities](../../client-api/document-identifiers/working-with-document-identifiers#identities) | ✔ | ✔ | | [Indexes](../../indexes/creating-and-deploying) | Index definitions are saved and used to rebuild indexes during database restoration | ✔ | -| [Ongoing Tasks configuration](../../server/ongoing-tasks/general-info) | ✔ | ✔ | +| [Ongoing Tasks configuration](../../studio/database/tasks/ongoing-tasks/general-info) | ✔ | ✔ | | [Subscriptions](../../client-api/data-subscriptions/what-are-data-subscriptions) | ✔ | ✔ | {PANEL/} diff --git a/Documentation/6.0/Raven.Documentation.Pages/sharding/etl.markdown b/Documentation/6.0/Raven.Documentation.Pages/sharding/etl.markdown index 88919edf57..0b47882964 100644 --- a/Documentation/6.0/Raven.Documentation.Pages/sharding/etl.markdown +++ b/Documentation/6.0/Raven.Documentation.Pages/sharding/etl.markdown @@ -116,7 +116,7 @@ and relevant code samples [here](../server/ongoing-tasks/etl/olap#athena-example {PANEL: Retrieving Shard-Specific ETL Task Info} -* The [GetOngoingTaskInfoOperation](../server/ongoing-tasks/general-info#get-ongoing-task-info-operation) +* The [GetOngoingTaskInfoOperation](../client-api/operations/maintenance/ongoing-tasks/ongoing-task-operations) store operation can be used on a non-sharded database to retrieve a task's information. * `GetOngoingTaskInfoOperation` can also be used on a sharded database. From 585f4c6bdbc7f7112f3307e9b5d481001c7e9b0e Mon Sep 17 00:00:00 2001 From: danielle9897 Date: Sun, 14 Jul 2024 16:11:18 +0300 Subject: [PATCH 06/25] RDoc-2882 Small fixes --- .../database/tasks/ongoing-tasks/olap-etl-task.markdown | 3 +-- .../ongoing-tasks/external-replication-task.markdown | 2 +- .../database/tasks/ongoing-tasks/kafka-etl-task.markdown | 7 +++++-- .../tasks/ongoing-tasks/kafka-queue-sink.markdown | 4 ++-- .../tasks/ongoing-tasks/rabbitmq-etl-task.markdown | 9 ++++++--- .../tasks/ongoing-tasks/rabbitmq-queue-sink.markdown | 4 ++-- 6 files changed, 17 insertions(+), 12 deletions(-) diff --git a/Documentation/5.3/Raven.Documentation.Pages/studio/database/tasks/ongoing-tasks/olap-etl-task.markdown b/Documentation/5.3/Raven.Documentation.Pages/studio/database/tasks/ongoing-tasks/olap-etl-task.markdown index 6317f54d9c..7eaabfca0b 100644 --- a/Documentation/5.3/Raven.Documentation.Pages/studio/database/tasks/ongoing-tasks/olap-etl-task.markdown +++ b/Documentation/5.3/Raven.Documentation.Pages/studio/database/tasks/ongoing-tasks/olap-etl-task.markdown @@ -1,6 +1,5 @@ # OLAP ETL Task - --- +--- {NOTE: } diff --git a/Documentation/6.0/Raven.Documentation.Pages/studio/database/tasks/ongoing-tasks/external-replication-task.markdown b/Documentation/6.0/Raven.Documentation.Pages/studio/database/tasks/ongoing-tasks/external-replication-task.markdown index 226f82f9dc..e8c8d054b0 100644 --- a/Documentation/6.0/Raven.Documentation.Pages/studio/database/tasks/ongoing-tasks/external-replication-task.markdown +++ b/Documentation/6.0/Raven.Documentation.Pages/studio/database/tasks/ongoing-tasks/external-replication-task.markdown @@ -1,4 +1,4 @@ -# Studio: External Replication Task +# External Replication Task --- {NOTE: } diff --git a/Documentation/6.0/Raven.Documentation.Pages/studio/database/tasks/ongoing-tasks/kafka-etl-task.markdown b/Documentation/6.0/Raven.Documentation.Pages/studio/database/tasks/ongoing-tasks/kafka-etl-task.markdown index 38889c718d..5b9e812be3 100644 --- a/Documentation/6.0/Raven.Documentation.Pages/studio/database/tasks/ongoing-tasks/kafka-etl-task.markdown +++ b/Documentation/6.0/Raven.Documentation.Pages/studio/database/tasks/ongoing-tasks/kafka-etl-task.markdown @@ -1,4 +1,4 @@ -# Studio: Kafka ETL Task +# Kafka ETL Task --- {NOTE: } @@ -7,11 +7,14 @@ * **Extract** selected data from RavenDB documents * **Transform** the data to new JSON objects and add the new objects to CloudEvents messages. * **Load** the messages to **topics** of a Kafka broker. + * Messages enqueued in Kafka topics are added at the queue's tail. When the messages reach the queue's head, Kafka clients can access and consume them. + * Kafka ETL tasks transfer **documents only**. Document extensions like attachments, counters, or time series, are not transferred. -* This page explains how to create a Kafka ETL task using Studio. + +* This page explains how to create a Kafka ETL task using the Studio. [Learn here](../../../../server/ongoing-tasks/etl/queue-etl/kafka) how to define a Kafka ETL task using code. * In this page: diff --git a/Documentation/6.0/Raven.Documentation.Pages/studio/database/tasks/ongoing-tasks/kafka-queue-sink.markdown b/Documentation/6.0/Raven.Documentation.Pages/studio/database/tasks/ongoing-tasks/kafka-queue-sink.markdown index b98d60bb99..515498264e 100644 --- a/Documentation/6.0/Raven.Documentation.Pages/studio/database/tasks/ongoing-tasks/kafka-queue-sink.markdown +++ b/Documentation/6.0/Raven.Documentation.Pages/studio/database/tasks/ongoing-tasks/kafka-queue-sink.markdown @@ -1,4 +1,4 @@ -# Studio: Kafka Queue Sink Task +# Kafka Queue Sink Task --- {NOTE: } @@ -15,7 +15,7 @@ can read batches of JSON formatted enqueued messages from Kafka topics, construct documents using user-defined scripts, and store the documents in RavenDB collections. -* This page explains how to create a Kafka queue sink task using Studio. +* This page explains how to create a Kafka queue sink task using the Studio. Learn more about RavenDB queue sinks [here](../../../../server/ongoing-tasks/queue-sink/overview). Learn how to define a Kafka queue sink using the API [here](../../../../server/ongoing-tasks/queue-sink/kafka-queue-sink). diff --git a/Documentation/6.0/Raven.Documentation.Pages/studio/database/tasks/ongoing-tasks/rabbitmq-etl-task.markdown b/Documentation/6.0/Raven.Documentation.Pages/studio/database/tasks/ongoing-tasks/rabbitmq-etl-task.markdown index 5b65bc75c2..21181597e9 100644 --- a/Documentation/6.0/Raven.Documentation.Pages/studio/database/tasks/ongoing-tasks/rabbitmq-etl-task.markdown +++ b/Documentation/6.0/Raven.Documentation.Pages/studio/database/tasks/ongoing-tasks/rabbitmq-etl-task.markdown @@ -1,4 +1,4 @@ -# Studio: RabbitMQ ETL Task +# RabbitMQ ETL Task --- {NOTE: } @@ -7,13 +7,16 @@ * **Extract** selected data from RavenDB documents * **Transform** the data to new JSON objects and add the new objects to CloudEvents messages. * **Load** the messages to a **RabbitMQ exchange**. + * The RabbitMQ exchange enqueues incoming messages at the tail of RabbitMQ queue/s. When the enqueued messages advance to the queue head, RabbitMQ clients can access and consume them. + * RabbitMQ ETL tasks transfer **documents only**. Document extensions like attachments, counters, or time series, are not transferred. -* This page explains how to create a RabbitMQ ETL task using Studio. + +* This page explains how to create a RabbitMQ ETL task using the Studio. [Learn here](../../../../server/ongoing-tasks/etl/queue-etl/rabbit-mq) how to define a RabbitMQ ETL task using code. - + * In this page: * [Open RabbitMQ ETL Task View](../../../../studio/database/tasks/ongoing-tasks/rabbitmq-etl-task#open-rabbitmq-etl-task-view) * [Define RabbitMQ ETL Task](../../../../studio/database/tasks/ongoing-tasks/rabbitmq-etl-task#define-rabbitmq-etl-task) diff --git a/Documentation/6.0/Raven.Documentation.Pages/studio/database/tasks/ongoing-tasks/rabbitmq-queue-sink.markdown b/Documentation/6.0/Raven.Documentation.Pages/studio/database/tasks/ongoing-tasks/rabbitmq-queue-sink.markdown index 4858b8bf5c..fa6b2e2e16 100644 --- a/Documentation/6.0/Raven.Documentation.Pages/studio/database/tasks/ongoing-tasks/rabbitmq-queue-sink.markdown +++ b/Documentation/6.0/Raven.Documentation.Pages/studio/database/tasks/ongoing-tasks/rabbitmq-queue-sink.markdown @@ -1,4 +1,4 @@ -# Studio: RabbitMQ Queue Sink Task +# RabbitMQ Queue Sink Task --- {NOTE: } @@ -17,7 +17,7 @@ queues, construct documents using user-defined scripts, and store the documents in RavenDB collections. -* This page explains how to create a RabbitMQ sink task using Studio. +* This page explains how to create a RabbitMQ sink task using the Studio. Learn more about RavenDB queue sinks [here](../../../../server/ongoing-tasks/queue-sink/overview). Learn how to define a RabbitMQ queue sink using the API [here](../../../../server/ongoing-tasks/queue-sink/rabbit-mq-queue-sink). From 229ee3409b847f7476e1b0beb9a374ff4636037e Mon Sep 17 00:00:00 2001 From: danielle9897 Date: Mon, 15 Jul 2024 16:23:22 +0300 Subject: [PATCH 07/25] RDoc-2882 The Azure Queue Storage ETL Task article - under the Studio folder --- .../database/tasks/ongoing-tasks/.docs.json | 6 + .../azure-queue-storage-etl.markdown | 217 ++++++++++++++++++ .../images/queue/add-ongoing-task.png | Bin 0 -> 70760 bytes .../images/queue/add-or-edit-script.png | Bin 0 -> 25740 bytes .../images/queue/aqs-etl-advanced.png | Bin 0 -> 79835 bytes .../images/queue/aqs-etl-conn-str-method.png | Bin 0 -> 32551 bytes .../images/queue/aqs-etl-define-task.png | Bin 0 -> 144072 bytes .../images/queue/aqs-etl-entra-id-method.png | Bin 0 -> 33408 bytes .../queue/aqs-etl-passwordless-method.png | Bin 0 -> 26937 bytes .../queue/aqs-etl-transformation-script.png | Bin 0 -> 88123 bytes .../images/queue/aqs-task-selection.png | Bin 0 -> 88053 bytes .../images/queue/ongoing-tasks.png | Bin 0 -> 49373 bytes 12 files changed, 223 insertions(+) create mode 100644 Documentation/6.1/Raven.Documentation.Pages/studio/database/tasks/ongoing-tasks/azure-queue-storage-etl.markdown create mode 100644 Documentation/6.1/Raven.Documentation.Pages/studio/database/tasks/ongoing-tasks/images/queue/add-ongoing-task.png create mode 100644 Documentation/6.1/Raven.Documentation.Pages/studio/database/tasks/ongoing-tasks/images/queue/add-or-edit-script.png create mode 100644 Documentation/6.1/Raven.Documentation.Pages/studio/database/tasks/ongoing-tasks/images/queue/aqs-etl-advanced.png create mode 100644 Documentation/6.1/Raven.Documentation.Pages/studio/database/tasks/ongoing-tasks/images/queue/aqs-etl-conn-str-method.png create mode 100644 Documentation/6.1/Raven.Documentation.Pages/studio/database/tasks/ongoing-tasks/images/queue/aqs-etl-define-task.png create mode 100644 Documentation/6.1/Raven.Documentation.Pages/studio/database/tasks/ongoing-tasks/images/queue/aqs-etl-entra-id-method.png create mode 100644 Documentation/6.1/Raven.Documentation.Pages/studio/database/tasks/ongoing-tasks/images/queue/aqs-etl-passwordless-method.png create mode 100644 Documentation/6.1/Raven.Documentation.Pages/studio/database/tasks/ongoing-tasks/images/queue/aqs-etl-transformation-script.png create mode 100644 Documentation/6.1/Raven.Documentation.Pages/studio/database/tasks/ongoing-tasks/images/queue/aqs-task-selection.png create mode 100644 Documentation/6.1/Raven.Documentation.Pages/studio/database/tasks/ongoing-tasks/images/queue/ongoing-tasks.png diff --git a/Documentation/6.1/Raven.Documentation.Pages/studio/database/tasks/ongoing-tasks/.docs.json b/Documentation/6.1/Raven.Documentation.Pages/studio/database/tasks/ongoing-tasks/.docs.json index 966fa056d8..6afa71e6fe 100644 --- a/Documentation/6.1/Raven.Documentation.Pages/studio/database/tasks/ongoing-tasks/.docs.json +++ b/Documentation/6.1/Raven.Documentation.Pages/studio/database/tasks/ongoing-tasks/.docs.json @@ -41,6 +41,12 @@ "DiscussionId": "89c14b90-9ddd-426d-b0f4-60a49d5865c0", "Mappings": [] }, + { + "Path": "azure-queue-storage-etl.markdown", + "Name": "Azure Queue Storage ETL Task", + "DiscussionId": "89c14b90-9ddd-426d-b0f4-60a49d5865c0", + "Mappings": [] + }, { "Path": "kafka-etl-task.markdown", "Name": "Kafka ETL Task", diff --git a/Documentation/6.1/Raven.Documentation.Pages/studio/database/tasks/ongoing-tasks/azure-queue-storage-etl.markdown b/Documentation/6.1/Raven.Documentation.Pages/studio/database/tasks/ongoing-tasks/azure-queue-storage-etl.markdown new file mode 100644 index 0000000000..d041a6ac3a --- /dev/null +++ b/Documentation/6.1/Raven.Documentation.Pages/studio/database/tasks/ongoing-tasks/azure-queue-storage-etl.markdown @@ -0,0 +1,217 @@ +# Azure Queue Storage ETL Task +--- + +{NOTE: } + +* The RavenDB **Azure Queue Storage ETL task** - + * **Extracts** selected data from RavenDB documents. + * **Transforms** the data into JSON objects that are added to messages following the [CloudEvents format](https://cloudevents.io/). + * **Loads** the messages to an Azure Queue Storage. + +* The Azure Queue Storage ETL task transfers **documents only**. + Document extensions like attachments, counters, time series, and revisions are not sent. + The maximum message size in Azure Queue Storage is 64KB, documents larger than this won’t be loaded. + +* The Azure Queue Storage enqueues incoming messages at the tail of a queue. + [Azure Functions](https://learn.microsoft.com/en-us/azure/azure-functions/functions-bindings-storage-queue-trigger?tabs=python-v2%2Cisolated-process%2Cnodejs-v4%2Cextensionv5&pivots=programming-language-csharp) + can be triggered to access and consume messages when the enqueued messages advance to the queue head. + +* This page explains how to create an Azure Queue Storage ETL task using the Studio. + [Learn here](../../../../server/ongoing-tasks/etl/queue-etl/azure-queue-storage) how to define an Azure Queue Storage ETL task using code. + +* In this page: + * [Open Azure Queue Storage ETL task view](../../../../studio/database/tasks/ongoing-tasks/azure-queue-storage-etl#open-azure-queue-storage-etl-task-view) + * [Define Azure Queue Storage ETL task](../../../../studio/database/tasks/ongoing-tasks/azure-queue-storage-etl#define-azure-queue-storage-etl-task) + * [Authentication method](../../../../studio/database/tasks/ongoing-tasks/azure-queue-storage-etl#authentication-method) + * [Options per queue](../../../../studio/database/tasks/ongoing-tasks/azure-queue-storage-etl#options-per-queue) + * [Add transformation script](../../../../studio/database/tasks/ongoing-tasks/azure-queue-storage-etl#add-transformation-script) + +{NOTE/} + +--- + +{PANEL: Open Azure Queue Storage ETL task view} + +![Ongoing Tasks View](images/queue/add-ongoing-task.png "Add Ongoing Task") + +1. **Ongoing Tasks** + Click to open the ongoing tasks view. +2. **Add a Database Task** + Click to create a new ongoing task. + +--- + +![Define ETL Task](images/queue/aqs-task-selection.png "Define ETL Task") + +{PANEL/} + +{PANEL: Define Azure Queue Storage ETL task} + +![Define Azure Queue Storage ETL Task](images/queue/aqs-etl-define-task.png "Define Azure Queue Storage ETL Task") + +1. **Task Name** (Optional) + * Enter a name for your task + * If no name is provided, the server will create a name based on the defined connection string name, + e.g. *"Queue ETL to <ConStrName>"* + +2. **Task State** + Select the task state: + Enabled - The task runs in the background, transforming and sending documents as defined in this view. + Disabled - No documents are transformed and sent. + +3. **Set Responsible Node** (Optional) + * Select a node from the [Database Group](../../../../studio/database/settings/manage-database-group) to be responsible for this task. + * If no node is selected, the cluster will assign a responsible node (see [Members Duties](../../../../studio/database/settings/manage-database-group#database-group-topology---members-duties)). + +4. **Create new Azure Queue Storage connection String** + * The connection string contains the necessary information to connect to an Azure storage account. + Toggle OFF to select an existing connection string from the list, or toggle ON to create a new one. + * **Name** - Enter a name for the connection string. + * **Authentication method** - Select the authentication method by which to connect to an Azure storage account. + Learn more about the available authentication methods [below](../../../../studio/database/tasks/ongoing-tasks/azure-queue-storage-etl#authentication-method). + +5. **Test Connection** + After defining the connection string, click to test the connection to the Azure storage account. + +6. **Add Transformation Script** + The sent data can be filtered and modified by multiple transformation JavaScript scripts that are added to the task. + Click to add a transformation script. + +7. **Advanced** + Click to open the [advanced section](../../../../studio/database/tasks/ongoing-tasks/azure-queue-storage-etl#options-per-queue) where you can configure the deletion of RavenDB documents per queue. + +{PANEL/} + +{PANEL: Authentication method} + +The available authentication methods to an Azure storage account are: + +--- + +* **Connection String** + + * A single string that includes all the options required to connect the Azure storage account. + Learn more about Azure Storage connection strings [here](https://learn.microsoft.com/en-us/azure/storage/common/storage-configure-connection-string). + * The following connection string parameters are mandatory: + * `AccountName` + * `DefaultEndpointsProtocol` + * `QueueEndpoint` (when using http protocol) + + ![Connection string method](images/queue/aqs-etl-conn-str-method.png "Connection string method") + +* **Entra ID** + + * Use the Entra ID authorization method to achieve enhanced security by leveraging Microsoft Entra’s robust identity solutions. + * This approach minimizes the risks associated with exposed credentials commonly found in connection strings and enables more granular control through [Role-Based Access Controls](https://learn.microsoft.com/en-us/azure/role-based-access-control/). + + ![Entra ID method](images/queue/aqs-etl-entra-id-method.png "Entra ID method") + +* **Passwordless** + + * This authorization method authorizes a dedicated machine and can only be used in self-hosted mode. + * Passwordless authorization works only when the account on the machine is assigned the Storage Account Queue Data Contributor role; the Contributor role alone is inadequate. + + ![Passwordless method](images/queue/aqs-etl-passwordless-method.png "passwordless method") + +{PANEL/} + +{PANEL: Options per queue} + +You can configure the ETL process to delete documents from RavenDB that have already been sent to the queues. + +![Options per queue](images/queue/aqs-etl-advanced.png "Advanced options") + +1. **Add queue options** + Click to add a per-queue option. +2. **Queue Name** + Enter the name of the Azure Queue Storage the documents are loaded to. +3. **Delete processed documents** + Enable this option to remove documents that were processed and loaded to the Azure Queue Storage from the RavenDB database. +4. **Delete queue option** + Click to delete the queue option from the list. + +{PANEL/} + +{PANEL: Add transformation script} + +![Add or Edit Transformation Script](images/queue/add-or-edit-script.png "Add or edit transformation script") + +1. **Add transformation script** + Click to add a new transformation script that will process documents from RavenDB collection(s). +2. **Edit transformation script** + Click to edit this script. +3. **Delete script** + Click to remove this script. + +--- + +![Define Transformation Script](images/queue/aqs-etl-transformation-script.png "Define transform script") + +1. **Script Name** - Enter a name for the script (Optional). + A default name will be generated if no name is entered, e.g. _Script_1_. + +2. **Script** - Edit the transformation script. + Sample script: + + {CODE-BLOCK:javascript} + { + // Define a "document object" whose contents will be extracted from RavenDB documents + // and sent to the Azure Queue Storage. e.g. 'var orderData': + var orderData = { + // Verify that one of the properties of this object is given the value 'id(this)'. + Id: id(this), // Property with RavenDB document ID + OrderLinesCount: this.Lines.length, + TotalCost: 0 + }; + + for (var i = 0; i < this.Lines.length; i++) { + var line = this.Lines[i]; + var cost = (line.Quantity * line.PricePerUnit) * ( 1 - line.Discount); + orderData.TotalCost += cost; + } + + // Use the 'loadTo' method + // to transfer the document object to the Azure Queue destination. + loadToOrders(orderData, { // Load to a Queue by the name of "Orders" with optional params + Id: id(this), + Type: 'com.github.users', + Source: '/registrations/direct-signup' + }); + } + {CODE-BLOCK/} + +3. **Syntax** - Click for a transformation script syntax Sample. + +4. **Collections** + * **Select (or enter) a collection** + Type or select the names of the RavenDB collections your script is using. + * **Collections Selected** + A list of collections that were already selected. + +5. **Apply script to documents from beginning of time (Reset)** + * This toggle is available only when editing an existing script. + * When this option is **enabled**: + The script will be executed over all existing documents in the specified collections the first time the task runs. + * When this option is **disabled**: + The script will be executed only over new and modified documents. + +6. **Add/Update** - Click to add a new script or update an existing script. + **Cancel** - Click to cancel your changes. + +7. **Test Script** - Click to test the transformation script. + +{PANEL/} + +## Related Articles + +### Server + +- [ETL Basics](../../../../server/ongoing-tasks/etl/basics) +- [Queue ETL Overview](../../../../server/ongoing-tasks/etl/queue-etl/overview) +- [Kafka ETL](../../../../server/ongoing-tasks/etl/queue-etl/kafka) +- [RabbitMQ ETL](../../../../server/ongoing-tasks/etl/queue-etl/rabbit-mq) +- [Azure Queue Storage ETL](../../../../server/ongoing-tasks/etl/queue-etl/azure-queue-storage) + +### Studio + +- [Studio: Kafka ETL Task](../../../../studio/database/tasks/ongoing-tasks/kafka-etl-task) diff --git a/Documentation/6.1/Raven.Documentation.Pages/studio/database/tasks/ongoing-tasks/images/queue/add-ongoing-task.png b/Documentation/6.1/Raven.Documentation.Pages/studio/database/tasks/ongoing-tasks/images/queue/add-ongoing-task.png new file mode 100644 index 0000000000000000000000000000000000000000..126649b259af9150e6c03fa80a33f73510710667 GIT binary patch literal 70760 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

ShexC>b;p6ZJe$P#$2He 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 literal 0 HcmV?d00001 diff --git a/Documentation/6.1/Raven.Documentation.Pages/studio/database/tasks/ongoing-tasks/images/queue/aqs-etl-advanced.png b/Documentation/6.1/Raven.Documentation.Pages/studio/database/tasks/ongoing-tasks/images/queue/aqs-etl-advanced.png new file mode 100644 index 0000000000000000000000000000000000000000..b3f8f8a04b64846894198b7d578e55fcea137e1e GIT binary patch literal 79835 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 literal 0 HcmV?d00001 diff --git a/Documentation/6.1/Raven.Documentation.Pages/studio/database/tasks/ongoing-tasks/images/queue/aqs-etl-conn-str-method.png b/Documentation/6.1/Raven.Documentation.Pages/studio/database/tasks/ongoing-tasks/images/queue/aqs-etl-conn-str-method.png new file mode 100644 index 0000000000000000000000000000000000000000..c58c437e257007b096a80124297805a28c4a0fe3 GIT binary patch literal 32551 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 literal 0 HcmV?d00001 diff --git a/Documentation/6.1/Raven.Documentation.Pages/studio/database/tasks/ongoing-tasks/images/queue/aqs-etl-define-task.png b/Documentation/6.1/Raven.Documentation.Pages/studio/database/tasks/ongoing-tasks/images/queue/aqs-etl-define-task.png new file mode 100644 index 0000000000000000000000000000000000000000..3db0e36e41f15c258340ae4fc14217b29c5cb71d GIT binary patch literal 144072 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 literal 0 HcmV?d00001 diff --git a/Documentation/6.1/Raven.Documentation.Pages/studio/database/tasks/ongoing-tasks/images/queue/aqs-etl-entra-id-method.png b/Documentation/6.1/Raven.Documentation.Pages/studio/database/tasks/ongoing-tasks/images/queue/aqs-etl-entra-id-method.png new file mode 100644 index 0000000000000000000000000000000000000000..b42638f85f6184e038e55027bc22cf2a3c237680 GIT binary patch literal 33408 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 literal 0 HcmV?d00001 diff --git a/Documentation/6.1/Raven.Documentation.Pages/studio/database/tasks/ongoing-tasks/images/queue/aqs-etl-passwordless-method.png b/Documentation/6.1/Raven.Documentation.Pages/studio/database/tasks/ongoing-tasks/images/queue/aqs-etl-passwordless-method.png new file mode 100644 index 0000000000000000000000000000000000000000..d08495d6f5d25cc39a20a9dc075ae44c4206a1ca GIT binary patch literal 26937 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 literal 0 HcmV?d00001 diff --git a/Documentation/6.1/Raven.Documentation.Pages/studio/database/tasks/ongoing-tasks/images/queue/aqs-etl-transformation-script.png b/Documentation/6.1/Raven.Documentation.Pages/studio/database/tasks/ongoing-tasks/images/queue/aqs-etl-transformation-script.png new file mode 100644 index 0000000000000000000000000000000000000000..f40b5509b28ae71a02d54e97a89dc223a3a9d767 GIT binary patch literal 88123 zcmcG$cT`hd6fcOPpwdL7NmCS1>AizeY%~FB(m_C4XhP@+ND&02NG}RV?;Qe!-a?UH zLPBps2t7a`nH#@1@6G)6*37IqYu!b1a!=dsoc-JT@b#_wONv|fZV?d?QM`Voq(wwT zybC;>H%NdQdsDa#@aLxUD+4zoBFZkpbL9s&B@<9d`suZrGU+BM6*&uiAqTpSi0D4i zYo+J!Jkxg&VBdFENZkI2q;}lv;CFAXUb!0h?DPF!Id`dVcST$A>g!I_%E|kELb$sl zCaofyiXmlI)9$=7VkP0XPD0<1KG6!fZFeK^NX*SYK=rkP!p*@)4;qpDaVhDNZo{%P z35~-Tz84BwU^43eif!x;PTFPv>(DIae-*J}jsgBA!SEqYP+0hXMI(~G71l}K((!PGZH8-zz``?OfwO!rZ6#OZ#V|1+#dnkqw*Qg6S zi`-~vu7vz<4I`&)c}N(DE4IdDOU;$_I+!~4XLYzsdzZO~P!pUX);7lpY}nG$YKSrh zxwT^^c}`nX=l$qz?GswLJ|?_RV;y*Xlv=-*6cxAk@S-e}-|rrE)oIe8mKqLvHC?XL@Q$W|-Ynn+ZI3Nu9_V zSI7(#5+INA`?n@;1^9@z(rT_{pq04+-E{ieVwz1h&{c&s1VAbp zGeN3q?1}*Ky5>o|f8^o;f7eeWJY~LLAf3Y-I z4=n_glEDtZKlGBk2qc=~`H=OtnuPNH13A{1HS@!DUI*B$|BT=KuAOeViHeE8e?jU) zcCE;I72j`8%Z+gUoA$dTqI1C1WTflU-3@tpCanHZM3l_H89&=S&X^#2`?IM1lJg3ztSCW*N`Vad8$htQy}(mhQ_vh`sRh zdZ(v%{dgv7iJXiWmR(gr(#yZfMf;jC^AdS z$}CWGY%?|cz3+`bX{c_j@{uzN1+nS!T6TuINBOtfrb=X}7ZnvbLlD3>bB5e}n?Lmn zL>{|+YgjZCbR@X?VX3qVgR*vBs9jPUz15$#z&m|Iwi9mf+Q{Dlc%C?^PepEl z3h&uqRpDPh!}(oYQ8js6bWp38l7vZd*heaQL?^$Bf31k((cgi5vzC?4 zmsimDm`?)FtXpb=SoFlq8S&B6r-LbjHTu~*Xxni?S6k1$AD{yy-J!x=?B-WU}WEHS8#W3}BqMvn;-`YgQ)z$Uqt+^Z@aT2P5<%!XUX9&fB+>(-SJK7|I zkL~aO_@VQS$>$ylUQ5Po`OKQrZ)}`V&fx}&)T8Tl81!^ZG>i1!7{29dTkcny29F-v zuAUx}lh@m$!PK2$!W%>No-TD@XqKsLFxiMaY1)wb`}b74=aWuBmtwUHdA1hyvrqV* z-umJpAJf|jUhtn?Jj~9v+>9Ih(O2*>BJx)MZ0nD)xVW~J{hMEB)TDh5Pt5A!U!x*7 z+5#_URHgU#Z|)4i)vT1ShnmMF%mmtLh++>hqrVinq&V^yU3~h65IwjHKmA178Gb&w zE8`+xV>G%%)OccOC8lBlU98@N^B0sAvGeex*RZyzUkt_5b-{V%I7Sy^4Lcc;Uxd2@ zTC%@0vCgSFe9K6(`5j*k34*Y}>8cLhx6Fd90s~y7);tKL*5z7-wR_31%IWV>D=T+1 zgg&>1`Wv~9hJ+yk&d)aD;^MBh;V!YWP3}y9yDk+SAt*Tm3Ez2|5UqIdI+-UTHg1PNS68_uFjQ%`GT-sxoJe|8^ZTZ4&*nF(( zCQ(C&F+(V(G$JD6*169_9Iz;D6HWE})er0sV{q@)#vj?g6{F$GR4zXvkBgJ~ldloL zsUa8k?b~2mcT%QpOaJC{mKYKFI5XIR#ocOOJt_V?3;JQ*}&M?Zu0m0v92axnvD z&L_^HRPs^kEYk6*a~Xn`!)AToV`os&ZT@~(iZ<)&(PBNeP)Zh^4gHte2Ab4I{U^EC zE1G{@2Jm?tw3|Lm6RE)>Bw8LaEl7r_aB_UPFnaQulP*!b*$4d<*dJbTk3Y)#2u342 z=P~k&9f!l+Tb~3R2T~jmO||WQ_=CQMWRIzLbM-Mx{Wh7u0ohdHZ~YGAZ@HU4-u@YP z>2)?K8FiICC_db}!eA0im~GAjt~Y=cvXVJXWkCb?bGkzs<(>(#V0w z4|`-iQ9%8ut9xnR^Au>Ae4O<1ic`|5eOXgbLBT6^7Rk6XGP!kx*I~Fuc#fYcd3npe zu6DE4P+n0{-0}9b&?BEmG+Y_oy9nw2{@FJs$V`&rnXN6xPuo-RqQ!a@=ABYJunz0` z*jT~ONIxM-&%OK7VDGROT|FFt2%oK|Y4ndQg!QgGkj%CZMs3bWhP3#2?BhtC&Ytd* z_z5+)Lo4=(xI;$`1l2rR`B)tE z6W21{nN0pCjfMShG|QXC!sNDE7!pLkZ*D&3Yy2ps+pE7`PW)n?6kB$cnlkFeePCCtg;zlU0zwa0d5SB ziu!Hu8c}awYbEHqdIRaTqC-SZ&P>Tg^yEqZBQCCLUK?rXfmQ}3co)%1l;vyn*H*AZwRgI#jnd6E9CV{) z@nE$RnvL>0Lxwm1&X}d@@z*g`RYJJ4BdF(Mt7-gvqcB1XqV@iLKsweKJU@I|X<0cN zT}lt_t$O_ANohTzqr=#^T1LP7!M0m(&7ldA0D16UMX3B{m}JHy&aP_9-e^lZ6?>qA zjyPp913O=p4X-_SwD}D6*;TW2^O|aSsXgW=?5a|tTZRt>LQVvjlO7oRzZ#mB|nq4T|X!XyS_=c|)VG7`xESRKJsFvb>h zaf#hR^8Pr8xRvRHQ%3q?5p9+&KF1c9JyFjkNBW1Wcp@Sr^&!@@@H&wBk?l(VCOpfp zHqnV}Ds{J3M^|UrW120%MAszLJauMAO&(L?k5q*I2nI&PuE z*Ra`BrCNl8-Ya|RgZ?c_QOqUP=?O%cBDAV2SBc$diRkX#yL;#9;s%Ybw165;lbvzd zU7jBUwu+jSu1A?ZePq@~t$oea1*M~Ruwek*I8HKMr586MZTqsn;(7cVFN8*kH>~wA z1r+LoxC= zeJAWWMcU)Xd(m0yuU{{n;bl4x@m`@NfyDR77A0KSDgE59{bE#0Ns$$D*M#H^kl97v2Mt!3d=tKYRv_ZwFJgc>VFT8crUJW!T} z9(pVLo{#x>m)qKjbMsE_4;p|Qp1=DT6Sk);^CFC2#g=(S10TG~Ahjtl%@$v@1kMJ7Cp*!=ifq~@9 zzuT)QSb4QyZ!}A@(8ka+Pp|~@49Wx0^X|Z4(qLq0fZQd2BA@AVcXu5#h?N0>WAkME z2OT>}SM*yzEFmGv4G7RwX>maNFVWdpNJdbQF9{XnbB`0}Y|FVNSLHv2+Cn)mW4Htb zzh;R!WoKv02;9uzW{=bERlhG-NX(~q?TN7#qpTfstfpo{5{s!-b9Q!mph57~TrCsu zql?SUZw#WLH}tNhiIw%DPKHh28fZS(ai=XbhR`rFD*Gz1i}@T5a`FxJetu7n@g1*b ztne#ObK9MV(PGwW=l=Q(vtmZUcL`r=8r>m zPWF?he9Ks66$S6Iu2WATVXQ^<>}*oj$gKs3Bd)ZBgfa(Y!_t?S6=#V)W`S@}p{&4A z>TM%U&0#9}lKVFBM5&dzm1P=6p%2$IHIc{Tm%@MejhnxBD4?$=nRmWeaaGeOiHz}T`p&Z$N2%&ei6f}VPNn?5?&vdACoD9j0@6FAfi-8?cp*7h84jc2i@Sk5){NAy?^mih4vG zlk+G#1$^lRMS6?@*?%-K=KVX~(B9xL&Cn?J@bKO|(!$2+mb-pAFTZ@&Nb6})|M2vf zj*d>H?-si*kD;o*zC@_`;zvc-)(f?kmSz! zHpFB7068yygY0nF=Pf|7MI}#w!7KT^OwLlB1w}=xrZhZ+Lh8{t}h@zUxvH?-7>bK6MiosSWOC zmAk0BI-Y0338)}@sX-*g?$`wnEW4RHzRj!CdrcEVrpz=C0%!bQ7jrZj88&XD*flgT z8C_frca0MwFQ~qox^=m-kF4b(CL@kny8`R{%L^KAb)%9`W9V0ehUXi0Xe3m=vBR?S7aKCJ9(pX7pN3YETx5@Vu6GLfxqCc(>!s)M&vEqwppabJgX^9* zKIMp$=Wup0)ipgw)_B#Q1>pcn#krqR`d^M*(ADFxu)|2NwG|N^Lu>=LFQS4|F_*-xdb^9b&KIgDq){(AR_$;c?;|^9Qd2 z`D=Wjc1Fyy~J?Em$VwUp(8H1)&iBBSPLX0CTYSklV3o6YAQKNTgWnGv=59Dq-| z1M>2exBiLwOx?hyPpO_lP?cOAEob^zv22gy7G2Dl)DptK?-Y|tWGYPDQh#+J!EzCQ z(Q&2h!ci{dH%aIgbkl6=FQ4h*Jp!_md#njGt^2Khj39rv7^TQrS)D?mW@eL9F|kK- z3IjVIW*wfIYg_fDdIR*Q#h}(k`02cfA?6kgVhc%IOucAR68;ZE1fVO{I&W=JDVO4a z)EGcJ^cHw|U{`s_$J?p~->dYb=qL7K){GS>VVy9tH>c3+97kyLjq^jep!=sssBHBM z@6C1#DvcJG@A(TnC52Vkp7k_b1O%O}Xm&?V2TqvkdtLy9vhBQgV^3c{^m^j;#K0}G zzsR;-s42}N1r~&n{E#h~!MPhF(S%&89e+C7XYF>3%;uqa4;c z6g_0!3#zxA+nI4Zc~7%_2I=Si2Wr+>-`XvG1p=wNi9gTP*$eY@;%HqbgR!mi^2Frp zV!X&=dbMrv!69_`4106)Njc}C%lGE+y`dXU6NPzcqOkF^smyZ54bTK*@qe0-MgY!BQ|(p9qVX5r)2jah`D!#jPByb+yhn~bk=)Dc){@yG}mxQ6(hPmlve9RJNFOX zdqjZuNG9*$qXQTvVd7;7$mA_mBO7y1nO0|Xq0VoN-cq6awzPNYqA_G(mu(uvfcpcQ zDD0Z9QTdOE|6z04=QJ~CandAp&p0xlT}PJO-1US^lRn*ZkN%6@MYC(5$`0HigFcv1 z&wn04-J5?2fi(T`cKge!4r$E z{&iI?;Ws8S42P@QEWIF59~nAUvUw0$eXoxps?OPmXC8$1XN{2`obGZO7ZFgaNFfm$ zZv%-}z{wprXB|!kk?|#3 z3f4Y3=likV2QTaXm0)3F6$_U6*zdff_!ffUIw3i1P-r3?gP2nQj=k!8l1{LVefz>` zkSl~9f#T|U>wiMg|68#6|J|#X&Qv8?eluZ!S`o^sfVZhG%fw0{FwuWyEQqDHgms7e z`hQ>9OEn9;%ZmTkumArb^ZyTf{gQB9Uq2DUE!DiZ=%3?eR9UJd{g)rMsoIhb{V|9cv(*?+2K@9Y&3|DDL(o`8N zr2kfj9*g?b?-g@9?(|iA9;#4{K+(S{$jOQCt`ZbRi6FSwfRpwMy=0fXsGGASg0a19 zHSshQpvJbIZ~dGj0h<(i%4>B01LYgBdycr9P0nK8-SwdP& zlDEc3hFg1t2|30R^jPpP+Bi$Fd-Y;mHI7D+Dc6#n0_PQ$0UdEU#E8r4C;s01hfR|Z zCeN%nbb8FFt!k|*_8)k@roiNzGeEJ7{7-O_+0^jGD7 z7<|Z-3q5sVj&;UyF(;Gnc|(RFUxldsM~t*(c$9&#quE*StUbkl;QswpTFgY5ao^5# zlHAr-!jGitPiL;JrZtZ?Hvn*X{umE>*aDV9L*=t(%bV{VxdGnS21OUJ=z1fwhmw_R z#_(pdk|^bEndajkzX$$l^>+q_51iI+x+AcyIX;TCrKkZ=acX*SnwQhKO3AQc(4=Ze z{P*kNBv>~}e4%esGsjtqB@nfd=|_jf&WvLM{;t}_SQzvt#mjJ>3x|K4jpG2z7msCeosi~LpHbcx_@)A zR9{=(qBpCTK6S>uED2C;H_mlG)SZc^S=7@@4s==NHCD}SFE6Xvhvg$`6(C~-LVbz0 zo#_i_d!_Z^7LkvNt3eX>0H)&6P=U!D_r@=z6@`1dvs@e>P(qO?dJ zQS^$a3ekiK2yaizR4@PHq(VQqxeK`5?DmU9fUiC<@D%9}=EI+l1oUr?r=`e4Q~enk z8;tmR(xsk$Z1?LP&@sY98g5Qh5*zx@-Ak~HcxA6+pLZ&(25Q_}y|GhkEHE`3An$x= z8C_r8+%yQ-vR4IN5^xu{6ZF=d@rSqdA2Mq)KOWgAw1V0gF6I5q;2xwKmTW0|RPV`6 z=0<-F)j%OAkUVuLblydE4Z!BA9npK|G59=t)q6x5yaC}`e*VJ^6K(((<@SkFfcH!c zF{<$%X;iPB!O9I4v(0Q@$jHbHnm;iTZTlOI2;=>u1BuTMQQ!pt@$t#npkVmk&$!YP zn>a=Mc_^)ZZ`3BM(r(g@h_7kSw+XEBJ3Bk>jLlEg*7nItPi9YO0O}wfsO1)__3EzaI)Kx!vyd$UzQzx=v>~pT z47{R=i5%Vwcb$my8{127Zw)!@h04@rgWO%GjPNhXP{WI}e1NwVVIRgC%k}Oa#OQe( z{tfaY>gt(k{GfFeY%-g|+Q0N%dPK)&t^r$UN8YLRFKl!(#cixS+fV;$b?YUYE2Xy& z2l(6Hj$;Gpdc+|7bbHxUQ%mP=g4?Vbso$NdtBpJfah6SjHHQt)FsE@v3UVVUy#)zh zFG?2Fh%OdVxlUzlSQVvX9?s3Ojtel(c`+~S=syE3X*_VsF?|)}V_?e&s;`GBsj8Ca zN3r$;0hA})+?I%#Z6@*-afC#?Fqirxo!ooFBJk@Y{U2)_3+My%6#f2*Gk{+HzsL^oc$Tnq;2yMiV=8MB!>khLvOc!^m^Y#vl%RAO?aoM*Kv3hRC z?95a?yz7(|{^d*kK<4P=vYy_YqFD6hk27q;Q6>d}rY_zuo7^caXPfS1`ud5N4=(iD zj2u~-d4G62?A~*m2`q0AVr9Va1_h}8ovV4~51(WUOGo+x=>KO#H~eg)iqv_oBf1#w znfoyH#!HdkI?7SEE(M2AzRW%>DB$~Daqui>#L#fzR6E?Gu6#0&VV4zmgVIpn%(aO! z_Q^#uv`XDkc5XJabw5A-qTLSwx=QpLBW~u$^b*kIzjrw`WP)3~umHRn(~L!8-8-;9 zl8gruUdIDg4%lCmm9I09n5%P{o2%!kr*sV)Lx{1Ej!s5d*K2uRJ8aF^-24>}$Sg!W zW^?nSQJFKkawL7QN6qkY`Qv;b$RdzW(wCEB`-@(lk*D<*^G9xtN>`<(o4VQP}s!iP<+f1>$dU)vs4oje+Lmf z4#`jfjnc86;Xn?d{Ug=84`e~l7QL8G%9j_otu@~n^sUxJCeL58XBy$|%dhiu&F?PP z?Z_|I6`l2tVgJ_jm%F{Q%g9ped^9l2x96t5#7XDi74;yamwGK+ZrM$d_roPsrsuh- z@BUiSJ6+u?i_Q|ScIUs|T*`kGu43+4B)|Lf(<6GiSI$4`|E}ch)E*flQa5sxAtyA9noM0=1Nw;8SS<>Xca*9?0URn z<39(;p4<#>*{%!|sv#aclVJPIln*Y^(}4muW7aQcCf#s&fP&+>^u`y5aY&iZqEy8c z!M}}NJQvw8w&Z-n zQh|tmDk=%7r$yo~k8I}mmfj)t@lNVn5)oIvb{bSWF@gg;t~V+ho_^Sd4_=rFL9yrb z3GZkH*{#@7oy#e;d%D*C0x9yoK1?hRAp&B@4m><^$a7AnTmFk3$m!c#;p-)tNi^s; z%WJh7A`Ej^=EAz!PDIg<=LS|H1Jqu0JV{4vzfsNE-ROHLD}Gl&tk~DUfRPX^DJ*Xt z2CRt78(lhtmNxN^-F_QYvyEuuRfh$2z$g;|R(Yv=w)|Qqz888?+it0+tGnN0=yZ5c z>=xZ93$I(dmY4;DjclYjK_8aBr0VEM|Fjk7t6ILX1eNm`+@OhFU(Mo0F2{&}DKotI zMM($w8dd4GUT{Jo$GR|#h0bS>Ee^G&#(nUF3}Dv*tV?8y;6Mi1IU==K-+OXvdz&bD z(T))K;;ft83U-us@Sp9nR4b?k_FlDKuIIM3TzThn<^&ggOh#exGienWgf^7X9 zFzz;F!ohfFp({Pw{)(>e#F2<2cIk*Z){|t?rw3Hn8G6Y>=Q-naIM&YS+7)}~#V1WS zh!+8A0mCD}d28_`eO`q={FNWBe*+}B@S!Kg`W0uEbb1)*?|`DXyX?+NTAfcAQt9Qj z@`J3nP1GYNbMwcw1RD{)`eS$XOef~*A32%KLRo%GhiTgx^7!c~Sw$~*MpIB$uh-V} zcjob^`Hn1xSed|%0pgN=LuLu}ANg^?wATZ(REi@c-fnMn-mHftPgqJRN=I=F(&u(M zECC%q8l+RN&5y`XHuM5_k_~R+<$;r9haOyBW?2wS=Vb5f6Otd~3VtGMiJjb%3g8)` z`0@QZ2HD~*XghZ80E4nQ;V!?5e1jQVgE0!+kKd~hSYBD~gQvZ;HIR&rja7P~^j*}M zh+DVpYIF4<__g}__y|-c?^(d3uQ&IB;1Vfkf{F(Eb@I40wTYK<_e~ZT^W~JS*Efw4_uS{E18c;>2ITac5sq8IetGEi-uRAQwl)`~ZK9>ypGdhPM zMd+)fJT6kuIN#L-ZST1h24(SRIc5nlG^jbOZo7x_2h`cR+@JX~Ovs62kep0rJxkT; z<kDWo_8_>x+x(2HOM!DS8l+1&JvZ&X(D_e$a5*}f?c;*x_XSUR((i*twx1?t2Bo08#%uSft@Pxb=2}^{<-1#aKG*ns9)wh#2GK5pbwWWqX@gNMrh zaB!9m=X$@aDl`*ibMRlQpeI(~cqA5KtF*qrmbsh~Tc`Y?bb`*;#)v1Ph?gdXyt2u zmU&wFGH%xgeK;vjMr{9wxF*J41KP@1qF2(}GhWS*nWxrs=lJRH z`GVFIZbE3i+|vptSH)-W`nkC%|Hzw-xYsv-NyaLhrTdr#1HRa++X;F}`mxi{X0k*Q7w7O=5f1#_@RWxCV(+8bvgDp_r8t{@WJp+fJ#=C7v*8loMur;ypB7^_ zR_PVBUB)wpo75~`0prD8poz<|5sDRv5;S*TxXq%YXD;R5 zefyHTOZUvk*CK;-YUG4&#m7|FuY;@qp2X)br=Bv2VSrO~Eyz_-3*zyBx0JL^6C;}n zD7*_yP5kzMr*%SN41<_R+GfGWI;RoYoj4FqjBu#A%;xCz^QXQkif-^gS2?lr#E{1H zM)j_&pG2k`N%N*B_vNK%;@)aNE4lv2$|d}g1(&C3iqiphKu|5M9+GPQvxwl8 zvUFHKzH|3B96q7Bwf)kK=ef*;C!$;&H=@*u@v-aai z14GY)V+7zwob9CeKhOBK`xcI26-tTp9{9JZdGd&#S@}daXiO)Icz2(yL>-T?fKxJDfpwe5OAra9v|ZI8RZi#M^;P_w}Ol`f7+EM^-d8-2gwS)$MIvYqjXv35xaH+ zey~2qY8^Zva+RaLScm%>$F}K^(-mVa(1zvaB&+ z^5(T)reG#0v{g2T9?oeIwNiVW2fU0eQ z&Vcy~OBeP6P}P?Ra|ZoHaQ{p4amc&Sn`WmkT78I1tO9$9?fnm&kqB(VhoHy>Q?~it zLzO8y;Ae?~avya&^v_@2$Co_b8-NFkwBL9Hqh@T^&Lp8HAu{JKpXfg?O zS&MIVQFEhdk0uMxzB3*garKw1^Qgko{|e&hcClF$YWs<+(xk~Z!*^zYWYjH+y-?du z0X4d^vgKw7#%25AnZv@kE7y86K1Cs7z>e?jwVryW|8U?^0(@AbAga=F#*G$5Y}o58 zI)-^+%fl+IsE02(} zS7s{wwY9}nl%fYZuufk>Fg^6E`=?j^P;kXM^Gbmci={h}$*+=yq=JNBDhs%O`jBH7 zTMdcOTTj|MN>`vvyu;85x`!*(`jpQ$xkF_p^856)801(HIR0qdPNp_Q&EkRvYy8O72@H%t@Exv zsUg_QbK6avHRh{%P1If)5IT0f;qO{5&?lktt<(34 zO=$ku1Ch6^%Mq=Q1pGj^%Me*n0q5Z)uXgDXkk0cu9g$iIo13kJsqJPyjeuRStQ%r% z9ukImDD|ifi1y*`JDv4(_ykKOhJ-K{G*4%qmbK?h-$cDoJ4O_2iJ?n-Xl67BI;6Aj zr+V)X?1MvHMnO)=7|ptX#PMCyVlkg&d?`~*Z-MBrpoCG`4J~aSYFb)F7ncX{I>+3S zol~w#X-(_u3P>EYa1%5)E>Q+Xq*-jyXP zR2a6g5D4dpm<>x;r{Mdg$r)1-^JR0~`3R3Wmzf~{iShOtnagPYpaBO$7hRSbl&TdS5_`GHl%RxTC z-2ZbhcCdL}mk0pms6owVP1YcT!>=0QPP?2nnql8U%4@$FcADlDZ4-=r&x9%x{yV-s z`MKD#MKoIYdnZUh0MWBG>!F%fzTn4Q(o~-k;Zu%8Y>D3wmgI+$JsUYq7^6g=xVR2tz3<(-=<_3`Otd10rXcvL$Ze4d9yl}&JX%!yS$}#cz?ZF zIIX5;*S(IGmY!`t{Wk~4#Zvprt7r|&k*#{q(L1boc>Kj*q_hO4xmv&Kqu1hP13u74 z0uy8#=x3jG_y@zXn1Yu9xW4J*!vp1_<_~cJ_)9Gh!ys(y`*tmDmT&Y@Ck05SWtZ_Z@l~N=IYvbJ_p;@iFwHWu<@|WkdPuCEcDV9Een14^l1%d zQr(ihhDrl(og!tu+@sxAhNfNc=-om$0NKVI6#Jmf0LV5<%0?03%lFCRX=gD+9Nb;4%WpS|{3+}Xr)*vkFsI__eq)wRA4&@-(r(9L#`!A%J$m?(s@$z)Ebb0#gOl#hqUI0% zu5VP{Y^IOh{QN|Fw>}{jN!@re)pRawqhxL()TQD8{u@*z|ac>(Qh86a5 z#=c-7m|LaX-v|77y0t2Xx#^w?|MsnGnSYQyGuk`kJ62PFc^AApeA2d_1~ea>tXneN z&bm$d4A*+OigGlXWL@0mrx&u`dF*|%(>`GvpCXP?%u`QO&5wRvV$!l3{y^LY?g1o1 zZ#$M36F;S1}BSSI-mW(AnLb=9q>ohF~Xnp$N3cNgu!~ja29ng zAcuP5<}g>0y&XNXI+tRYRkiPNhj$E{6dle}^j)me$DPZ4yXb}S(bEkIqQ8Um|6G%? z`3st{?icOJ?P68lq~g&pUZ#E(k`&dHENAImOX*tWk;JPz&IaO*hk}Q}* zj9A0kSXJ3$kWxznY$OZ*mLM|(YRqj>+ztcwNZ_?;3eH`)z zt}fkgH{pA0FJM90*`v&_u&gZ2S5g|8w^L1I(5Mbe4h`$Uil02Tlckw_(jfi|xK~yM zh*+|OmyG!Qk(-peszrNP76~hxkVqN`p*0KPD({~{npAz1+{gs$wp3zpb*KD1%-hLl z7k+1-{w6DFg?(wOBM5n+qQ%cR{|3JO_D_J`kJj4Xl9X(859L^0U1c3FK~uC)Le21* z3ZpvyfI>B%Z|MCgHGB%}zQvG#7xqNB@iQkgj~T?fUX0u|d^NoCiQ!14+6_2UjX?E6 zdJm$#|L8U*UNG0$r91a%VSdQPW#y$KvZTr?dBzJ0YRfL#5;3AQ}g?`d%3U* zcBC8{H`8zucyl^>GGa}B(OHU^W)R_d=&qVBlL=h$AsIOXWP)w?ZSRn&a(Ph+xvJ*| zRR2$*rIwk|1;P9cGL@B8U!*Mz&jT*pi>b87BMZ1ZoGjt~NO*d4GclZkM@y>h=%zaJ z$)D?6UrtDDvexf&^xsIweVDcm@=>sm(Hpv86rcANr8n^wTUs*zv@;RN1ZqhoJkNtk zMP5r^2t)IKyA!nN`01|z@6GbNJMwM7xYlQXLyY{pl`l3H_@{2Rwx6_JR(oQj8qx`9Q z{A$Ltk>K^y|FQIM7nX2Kc5~mlC_WYiZAVP?EV-6+O1d~Q(6%OeZR!6GN}Xh*{S4f5 zs8WF&RtFc0gA;y2U$@iS;y6r~T$Lt#cv`?3L}Dci6B9#mVs^ms=xcPuGSbJtyzGD= z!9(}C?XLmYyf1u^*VZJ_D$qPOb7!gF^ySz?$(nYSHdN(I!_W{vPQNG7n1lpZxqHlg zX{Gb~xX#KZ>%9{k7-bSZRgWifb+Zp`$$S+}GLw}xy?7#~?Lu#Be}Kt2{SrYKhMlWJ zzD`z%xrfr_Pp##qqV(q>kyq+MDgL1>kgejTtS)8nb#Sb%9bmD5vw@J+U&bNC-G6o| z-Z!$&GWNEm;N>T-le~Tukx~;mXUwOuoNCSDoQwVxB<;NN`$EMHz5>~^p9H~qRdCi@ z7beZyLs>aq>PD02(I!G6)sdV?i}9&s{P6PcvR=R}D=Ow&W4KG%yyut?@uLQH?=2A;WjD$N0T+x=?#Q&NIxx~{ zzmN`(wliuuovp`Id~g(`*HB&jA)iNDXZq=d%!+l{5`A@@fQWDekUY`rs|umu%UE5_ zLBm`Oxfb*>K(vRL7OP0`fTOPw0UqbJY@O?IQ64DzA5}zho)+KvD8W`^omgJPVvTX0 zD%{sk3^8Z+c_yd7!ztD?EIa*ZdR9(AHV(Kcwzs+sF{o*3&}>HtkcS>skJoB**w;4+ zlG8ZFt4A-E{U?{e#NQ=a2}*Rj7^$?$e$v)E36M(&+=@MB-JX&p|D2AXjgkW?HS{NF zsym2D%yJfL|DUwGU%7|*ktNXe6=5w>H0Lie(p*XUIhHslX8SDud9r%aL^7c^O?4`@?YIIe+nRMYwoaP2g5y_U#skVsTmbmnh>ff~P6uF>hP>-&H zaOM-Pp;F(~(g6Nvz<>W206@ShuGSO#%x)%_b&6<|%(ViySZ&7>ulr{Ly|BrRV!lL6 z+Wm~zNrOEuKQj4n!y@eScg=1BZUq$eWbj}^eT1w4B9QS*jlsL+bpnI);adH>Ox*y2 z_vdiOs$~AH>wGWs3`{+_b5AXM!^sWyKX3X!w>0>kvfgDby{~oBcJvCk7cgin9A|Jb zMg&Sn#tt>E898s9ugF>Jq6OGH4E^=X)!L2K`+N?Oi!gqA0pHU<-?KJ)kGVZ}p&D%C zxO(IXnZJHZGAUa#z5)weZZY67J{h9MNTzS9lt0*a!uKRj>?fbZw5*s&$%uymm9|HX zc0Nu>re<+;6pd8RSJx=XjNE+dm7OH_8NY9RkC$0JlV_xN9Xk?V3pDnmtA}l@-^R3c zGQ?^E$y_}+F#E53yqGc}g+itMc+0wX=>~2e@1;RyVY%Zl%qzcJ7JnS75 z4qOtgm(HOlhyET(g91^tHHH0KQlDNe$8C+fGbV1Nv1M%sR2s=;LlS^)?6|ZA;9qs&tg<g;4cRhI zc&`99^eAsCuJ{KqjHT-(;M2Psn?S&ah@(A0w6ZD{+bM9i008 zv=1b)PQ#yl6GhUx|BMFa;XQv(r&)-3+(J*)$(DkL6(NS^s^w>%kmukz(54LwA zhSOO_F#=*9l;kMKKgK-Ov)12)uI*}fjGCNYCx1T_ejH^KZ2QOZ9z#^IMf8}rM{6jq`gmodEoZX_4}XFS1Rt}$;j`S(;iVX8|M_)@sp zN82jz;5z6=didsv1+y2L`P8goQ+#%^&)>hPTa3ulRVQ5ety4@H=qCiu&`dnc)(BBu zEYm8i+&&h61RuVerQB7s)$q`wNriOxq(V%pT(_{a?$S(!JUjpK_x*hCK51?FpDSxD z^56RUZtPc$97#@(CF9mQE=;CeC)c45gfSfISge&g_ypQBX(P% zVjr6A^R_j?Uf67|+$UaROg#gr9mK&6}JdAyBi2b{rOw=Vm zCfm_*MW5~FF(4b6hv*mM_Ruhmxp)i12MmWdVrm#9bz3vJafbf~Z(kWzRrl_@kuCx0 zMv)Mtkq!X?1q2l7F6okPkW@-kq+39wyStI@?ygO5nmf1pzW;OY{dUH=caOmrcC0n) zna?ktxlGqdMXBqv6*TJZUh$eVddgHv-dY}Ll#+<#j89=*f&V>S+h*X;f9jn2?4BN0 z2h1qNI`Iq*{9>T=8*U>E8;*e|qU&qxU1RGEwH19fIS-+e9xEeLFbYU%^2&?w>G4kU z=`Q@GC+lUVMZM)y3Wp2M9de=Q33}t}hEt+PuRLavHy!o7bgaS-VJDQhB9~)`mn@v< zas?bv!kkq8cMxzR%>#4v=k+nV_Tq&WQ_e?6%XoxgV+p*Au;U|@0V^@Y3tkE@Ym>P8fPbkj%P2TLjQ7m0*>X33S24;5Q3Ctua z>q>@pn?~On_QM7+-^cP~OQxh;@+;30VubZ_t`EN&`3DB3lpepA{OAGZucLzK-4uqi zEf)57%4qPTLvf$CMFsk2Nm$L-fn;|Pt}HcpbM zX%INWwJ$$Cs=a@7Qi9eRH#cE+gmd%${R6G~Lu`UM3`V~wL~leVlCCs|%L;oS6+ z1$W0ysQf5)h$lk3g#_CB>XEXIt8xrZ-3Bk>G%nL81FBy&Yi%r=jCHHG%=Jxe@Tud8 zqVNkE;^MrZ{W=l{!bR<{qK-wLIh@_LtTrp{Ee-DaI6CwP0sS(3nR^DL)$#FQV4oI? z_MahdyqU$d;6i&s$t`_1cswRQ7s-l2A-E}{5$s%Ro&}n9M3*gNW%rd_S}s$Q)07+$ zciRH4r&RkdV{u>$il#SL4Dn)RAnF&mN5ccuJ6du3oqn(qnzrZY3>pYv4CzXa67SNx zQbtpZy~}5Z4U7ys#C2bV_X!xbt2k?tgQi+~^bKPgz87zW+QQ=$G?CSj1>8;Ja(FBe zvt}vP1Y0?NU(sc2w$q8l!^xvdpJ3Bc4ica0Ojd^tl==wt<=G;~-iL3f;t^Y_YV`S> zdHb#&ISq&jLS`)Y#7$r+&Rl6)POY=k)8wL+m)4NRDCT*-O5Q%3)18`>;Y~${HOmIw zqfYthqm&>S8`_OAxi}#_fyBGY%Aw_mkOg1`pfp`@JhM&A}H52u!_F&QO=aL_Y86DqG; ze@2r)u0*B3_<0k*`54jNZ}~=xnQAf87U!;{reu{-jqP%${mrbck_#dR^nRYU{>H{9 zBWR3wG{UsH$e0&3)`=reLT)06=F_iMD-ulyotpYP&f7nRux;6vxH?Ggv65E0ySpz( zCJTYplAkuv_^|N+WR)`TNThez?kyAd?jFkP^#DC zB5L?_2*(=3#_+Px_TVaJNL3X(GoEL&TPEf9A}xj$daAu|1T}d)qi37UH^|q$w;dF| zbm#ZBE4aqXmk{OJwr3X-t>K~ImUG5}YyA;z^YAd11M#l;onGaU3e8tW-_y zkZ{cPF#8Q=wmY1$z2p>qGGO)W2Y=*|58^wB7IpZzVqT1w(wrH;p6u1#H@|!C=0ilAJF&p__p@-Mv!=^SE@nnh7m%c zFTT((io5b3hI`MzFwuNCSTtFqWrvCbT%qM2g>)!%HTOOVvDr>sWT<4Pj+){TJQS9C zJ!IhGqBb{Maw?L`k=cA2${qI5PsOjDayq3T|NUj_2cGGZsMFh~ZzOMw7?xH?p6B$# z#-9^qlw^qh8i*}<60OmR#jX$r-Hlm$bRdyYl9|~bd3(Af?(oxE&vJ(%rzu0Y;|}CJ zv1D*`00LrirK?-B=ewAPd?hx?;nzu}*UN@r(c#;Wp^vB5SO4rkUofEbd$dSGj&C7{ z$Q#Ry6WVi$zeRg|dVNn#mH`@8w*8CCt6mL{>eE~!yYWpTk+lx`B=sq7z5VHy!Yj!d z*!gTJx^$ms#X6W9Vf37_n{FGN4jaB)s{%jB1Slt2KJ>97iU^N~TWqmDXYTy9&_lS2 zK#VyF``e1FMm*!lO4%I(2lecxtZp=antq$I_RHWPxGvLkJ|%xtQ44 zzB)Gi7OF1PB_{Ku+g<^pBzc6C#JoFa#-cj*&l5%M0{xR_jXq< z_DFnMiO0Qnv$|n!U5s`b5Kq56E=>368Sfi^x^B6U0`=v(tNSkg>T_xvveKLUokDf3 z+p<*ns8CcYF=tr?F_lG>K#y++alFEro6Z`h>v%-0=XW~^=JvJYS#NIc-7#F0@+n(I zyp)Y$S}JkNle}N;d(Zl53^6gqqif;yXV22(IUwJaEPLi`wcdU! zO+S4*4h|_X`qY&ms7G8W_tWFJhmp}Qj1bL4Qrb|(p>*Y3LBVsa*z9P{qJ-Hm>PMx~ zm7lm8@Abr>kbh8+{%ke(8!aYZoq~>fPyQI;OV(#{$#07kQo-*KwE5(8Yih=OuKpxc zt1?F})nF;NxfKql?3K{iLRkT5<@osIxq@y)clWP}`fC^fEOQ3Q9pP*G*B7NC(XWQ1 zNSPmBW{N!OGb=9_akR<3Zek)B!C%qtkE;&?gfl-bY5JI+ri7Qd|v{&?OrgJpZU8H6Q`N;7cDuZRen6P5qUQ`&f#cG zS9w0&i{^6wmqF6y(@T@;%o1D6qx0UU{T@3_zq3jBcCeFPcgDR^vh7i@OB3$<7xNfB1;@apJ`OP{>j*v#+guFXk<}>~w7T_Rj|N z23-;6B%AwD+AcWo^abj!J(NiYdkGKN5saI+&X*EDZuLd_XQyD_MX@xn;jzQ*22;;E`W&G`>!qwRA zKAvA&cOVe;ly`9mkUR89FOn*c>p3!$4}M%{V}D@?N-dXqf;3C6ovCn1^)W=$-huZA z&e)hIwbfxbbzngRPPuh&q3eZ|y^Ecxf665oZHAZ0*SrV|%bUV~Z5lXrawjT*kXX zQuCxC7UOQ2`FH8VQG5d99aSo7-ux88gY3*jh2^N`;8BZ8%N0<+1g8k$k&^lYr$2e>Hu%`mbQkM+K&QA5?@2NGZnfaJO@}>vM zt29K8)DImE8E&>4o-i^Er{`!skAR|&NVjy>{QBOFAKQHai!L&hCK}6iB>)K(pOeGJ z`dgeJ5cwhxmyHrcw1Y!KcU7iy8*CnUMcoUew_;FfcpVrrUWzE7@&~ugnFywmiD2V^ z2-e25NgL?}cf4~ea+2z?llU3j*RG$YX<65GqTwzioYUd-u-TdrfpLB1uBeWL#S(SM zn=8&+`ovGiKrc)Ly7#Uk1*K=Y=m-f2^w)E05FqGBYXX(L*U?`~NmL6|U~x+gFzAzD z8MdcOC2fdzr@9V2R0sgAKAz-L-8^)S4(tcTIo$UHen*j+nHwzS@cNSMO5l z6498hr=T_I5q6Z$jeLi!q1C^PIA<(*7W!}Vd}p)+rT1V>D+`M(Dp}{Orrt-kTz$Gj zA-s5Q){JOPmm9$|q?Ny^SiC`84$3Z~J4U>nMvW)ctUI@wm~q_NXRh5Y&*Z-0oDbI2 zV4GU*ws)0O?2qYcD83ofe;q7;s?AY7h+l|F^6!t}4-JKtl+4axZR|Pu{Y)jNUb9ft zp8haGeZG`bX-C3L9Y<50*WzPi;dnM}LRNeGfe7RhGIu~jo%N2tcOhcU{8p}lP0>h0 zMq-J*?eP&;+sCZI$_tcLbvzSAU*0bTHcC1By zoY<~6+uJLoM+_QxO-A{jJNq1q1octGpY6ro*yAZT9d}GW)F3vuDPIa=-lGGT}$2?=^Wbw@oU=G)(p02o}S2g zNK-*!7fqB(Zq>HY!(q$tyN}ZJ>5I z9;);2MUY}pp~BN)2p;{W?)^V%4(5e-X-I`DDAc3Xt$3%Z_^S~eE}@}9-lJ+#tzHB z^@mEeW!wW_6Q~w+I+#!J1#d4Yc=rczk)&gZ4OrN;fTUmAIRHd0WOUl)=7!mxpG^_x zd-LtLWZvx_uw{A?lPam2&CfQUkoGGOQTCpV_s}qtkKG#lS+!;*y zWoP)zoal`i^I#4f5f^p^l8n+m!bJPW5w=vZ2^ ze=a*aU@;A7h{swn+z+nd!}U%+)9k1n<4E|?VIAtiTGX122`hf31vlA_r%8j6=6_|7 zb93c#waV^fDG-13m6G41`kqw~#K{=!yNuS^HS33rxhC6(0P(P;A^xTG*>1-)3DI2| zuG(uF}YfbbQg@87kOSn z+i0F}a5Uu`o=R4V-T#qWYsn%0oA3ks3AFxFDPc}2#MDD78_YOwGkoIj_j0B*bBnnB8ItDghPPGr8k1~k*qY~Hx#8aO(*H$f+0}>s~u|Utuceqbz?*`qaYI=`+ z)OOx4Uc>@e*YEl25kE-no@F_ zsZ+k`q-m3RC@!{h1s`BbmCmH?590w^-0t2O?jUck@RMqW#U8SwEMoMIZ} zxII*8r&K+`3WfrV7mc8M!9;$3zRnPAvIKeu0(dy%f@|Vpn(&(^3Wu?E$FDP2Vy-i= zR1CmLi7v2NSe{otSUAr{LivnLpaCE^2P>s@S*ka<1Z~PhUPaHXkXT4~##SLTxlH2p zr>u5Jbry9HlNFuys<%I&XGcU~1YmKe%4mK7Z&aZD@K4c-D!+HqFC4(Je7yjm%E5X0 z7lsrWP4p9`Y`|_!3YGV7mF)wPK1{Hrb=h%j1WU8&$$d$kvl;i{ao0Pc<5JxbU)r`U z!L$TKv>JhbkDwPxYU=%o>L(IH5z8HycQ-CJf6t`)V=^q3mrLtYPKQWvF=d6r?sGXH zVo4hI9?e|szC9oVNu-J;1JW)e#fwSV5|IS)3J~;zZh8$aEDpT9i(v4V?3B%zS>B)8 zy^vkRBg6*xs3;osF@KHzOyu;e(1QrRUi}t_eBFnZ+!08m=d?$^cj2dwn!j>rKjcyz z9~CPYmn}Cd)2KaLa1vi*|-yqp0{Pl5|9i2IxyY8ZCdbD1sl)A#T13{DIL zr!^bcX#z0BvGMW`nkBO8VNrM?Wx4YhB!i6TF|fT}U-_&r6vI@~w{g5i$=huf8d|T) zQnly9`n%&$N^#s{!#_G_TMV9C5elWH?dDTJMeH63DD$Qi{3NI-qnZ#kI9j?Kns&XH z9|l6BLA;^#(f)z-d5pjlIjnAceEfy&Wj`=q>6F;0)Qa3D%+*6REh)OJU7=QX@oN*w zgW1&xZP!EO4j{_IVMi_hFaW<0_O+T&#)$prm8d~!yFiE_C9IGqvDtTNXCqO(mE+*+tcLY!@HjWeJSK z=UsWF*22vkD)q{+-HdEbl6Y~*Zgk=8UZmJ0jDTldfw|Ew@1K& zQovHV%?_WrxVX>=dkTZd1DoP;o%A#4MP8hu%;(<&Y-1=X6t$wz7HOTL*rmQA8*{9b zn7A1*)%(@X=u;t>`UB?d)(5ZQY{Z}|*hSN(qkbXpWp=Zv=v^F}1;_AEHZ{paQ@A#G z<)IuL*yB=By*)@^e{I67Mgi=;<{J*xUf_tBQ2!nu-^Zd11St4YLIJNpWopYOc2TcJ z+Cy=bJAN=qAFABzhbZkuW1HaihHhc;L|)e<0=s zu5c09AcX=>D_@P-0lxD(2)^6o-!n>Jv#o+mzOcIC98l@qM=SS61aYxp!Js@NR%?WV``7RahHPINS` za|?Y|fUX9uXQ%Jvun!{#iqoF>hnPMqCRZIA@R5{-D3_juT-)cja1FENRJCcBK753tT~11gu>k^QUJJC9

#qlBr1o^DI`QC|Fqh%^%k$Do|i_qGmKt7C0#Gtt;4 z$Y3MVe;MlfaZ}&9S(AI>hLJ|*(79P5HHlm0QPc0L0H`vv2P?YH74 zc=7JiwBl{c)}RoD8ESSKk1>E{n{cL>yx@wn_Tg1{RAzYl7*r>Phv4^1z8=g8h$^zG zU=l^AsiDG+S`R96LKOmfk0TRCzo*(_=Graq`S9!p7Y@ReYHXkC}&n!Wx z#S8eT85js8sfPq-Qof9OpTUD<3qvC!0Kj;Zhg#2ect_ z;{l`}0^6~?wQv>12!6sP0K$e_o`I7YAf@q->u!QwZ5A*s{($q}^k04}We#KAi%-o& z)6h_R?SXS%`{^&p@d4$369ljZ!KQ_(ny-0YGWaMrbsauT=&&I}^6yQsM=}A34z{;o z;J@W^3yo67RZX*yv?@b6oji~Clu_{|D75~wdWJz%w)n1lYYV~)n<*HiP2hwq9R7HV z>_erO2DzfANyq8SEwTy=C1G+(jPlINwV5MV@wbQn`*tbL4fy0wNan(A?~W_J)Ds8! z_i6R6&D-%QYYB#(m#{5RNsV{)+_n97Yjgww*wW65bXtT_*F+5kgvTIOx%<-pw|j@z zes2zR&ZG=I+ql>NH=VprK%(oRj=~NTXq3fAn28C_W8!!Fg$*)%IhQ;4mkOiebFm`O z$wz%hP0NwR$xZ-yFqt_7Wz+q7@k+G29aEjHA37+<`Hz1n(CG;NlhpX<=NqBFv%bAs z4=PrM-bx9rlw0$AEQN4sbQjyFMuME1X3vGLsSf0H?a;aQoXT8E88o7N&~{^DkPW(} z^0r_=3K&YVTxDHPXk@#nM&`kF0-3W-+=PR_$(}LFhY_2qL?v{WuDKOp5m_&}*DnU> zL_Dv08o@VMO$*k-^3snR})Exd1#3ZD%XyQ9%5~A-R6N|5+K8ah?`3JXrn0~H?8hL9RGZ8=D#_S zhltpTxz=hxu+unB2l^P*RJF;Q?Dx8bDnJ_$oi&EFos}f0$3PoT0!VNh_$+&cA=> z?8+i}8*=d4FUS6@(aH789o_S7bsvA_4P90vzwbUuh);>W@<4j=LQ(cS1{L58tIjIk zI8`Ox0a}J#UPt7zl5d_L>QoB4C@U(mMiQ|}^zO4lTMYMadQPFxpJ5F?#e_toeu2T? z&FC4vtZuJ8M0NW?MT#8MrAq{!@K7{fp@Gw`>7zXeh|_@?S00x3_5k?{Dcu{AV~jUa z4F-Kfi%mK~ML%o`zZFSKtVzPU#a1}7`sP%W0ZEv8 z(?f306yad8MoY{^^8fn0d%aZIUx*iA9RXTxZN@QoI)&;620HwX_c>5Bj? zwm&sH4$PO;sFD=YRm6UsHF$a+*vP=oAHtq`h-Sle{F}7X|MED4XLoG+|8Sq8(a2cBPP9E^gy&s?9ULCRJ`SlT}dR z-Lq?=1^3UW$ItkHPrHdSJ*j1j;MdyfjOr6|IZRAXodpCP=AWZBa&2|?S0Fr$DG#I_QrOayuU|AyG!S-A^w9qDbspP^>y62 z)%h6zK$pYo>gA$R*_}w9*$OM0?_McMSpfi@BUWM%zFB-vTV`i%8-9HaLkocy*!_?> zT^3>3ZIHT=Umv6t)$>RmzoPMb^zajNh=1QBcYK2O`;I`(;=s|QUK+YK#;BJOpN^N7 zb{gh(yW87A>!O!?sf?5p*mfXXto(uCv@|lQrmwB71XoOyXXJmI#quh@(`XLHe zYE#x0!yquwDDBOL>?3InsSHGNgw zpnfn!>*4{olucu$LpcCtcK>FopHpEnri+r>6lOdUii?*+i4_0{dzYX#+ z*f1N^5~k|R@q^A)0Md*JCwDS41B3{`m`I?f?4nK+bel;J@xu8pF2Xk$l&K1hYcEt- zu|zZAjrd;Ukh_sZ60*VhtByS*Z)`-u`NSY)!rKS9p1EapsF=-mvzOl*-l2d>kp@&f zKeIl5%pg5k{x8yCNM~##DF*kTSWkjCC#lHZPUn5~{nooFYSibqRyglSQX4Zz=@ znh_a_nn<{Qa8T?{0_O9vOdBt4;gybBEbuBYAi_jVep?tcbb{{H@Q4@$i0#obtzmW2*02gz_9J1!juZXxDn!WC9}+gpn1pGZ8ZkgXM7D!%N!s4~cPg#nt7 z;N=g^O9jB0-HNT;HjnKAOd5m?fuHlPC$|Ohu1(>W7ohJlXhOp#?3VIBn;fF~MaVkA z;ED4dZ}bRY*^Rj$TYlAX2UuqMl3Ob^7axn+#*(@wxG7 zhg!Lny_>^(gfprX#Pj!}kp1NwZXgmVM!PRx{>KH_`d=7j*(8#*L907CGrTOF-&GaD z#ZJk81^Pg5sAhwu9vR61n{hkxAr&|FcRX%&Yt}b8vN)>ydVdJA_B=}y`B|glwj;Y0 zFT_zRJNw?!rlRo6z~0!&`49)c2ct(K77uMiP6Zdc{H1@rKseI`Xl4y`N%Wr(#?vH9 zdB&mi2m)=-p5p4mGQUFw+n5`e#^V-&E9C}6|# zok_?);xfQSKmK3MXV3rT#V}h_>jkH6{|3{Ke|ax#JO4iuRTxF<-^hcVv;7HTPi3GR342@~%TzxmhZOHQxLi zmPMo*3TlBmn8o&R{=fK_3JL#t6Oe;XVXy$=Huw5UTVhz1##7FnC*Ftm>O(Kb!ZKfT zE(BB9yh=aR2G6 zH*aqbHs+w^aial`JBlr5HPeFmM6Ki2tNz6TP*0cBBxfzwb5iaRJqd0*;;==*%?YtD zNk;PaH6VSpF=ze1`Ehl}!xLrF8_)QB<0PY1ao9gw6XIC;PIPba#P`$?P2Z4hJ;S3q z+TF$V$F|nL{ui()B=o0_Cs#bTaVyhnzj(;F&py_1yImjeqfPO9w&8ukP`*7I7J?f2 zHDHua;5E79V{o)gh5H7qGkm>|-n&9C%ZaGpC*eRGzm3G|l^#}{ zDjQU<4a69l6%a!peH?DQ2_KOAIAMJnx=vKp`ROkPnE$R!NI}nj~=^ysDEEjnecflbM*lyH6h{B=eW(G zO1r12x%eo_OP5r>m{Q`npT!d0-OcW;c*zx^oEYHSP8~H<}}x_J9k}(j*Xp; zqn8NFpj|PzH7l;EDY8elxt>YJ;Zp0cKgM4Z8|OOgfFnv*3wqep(j5bxZv7l2q_)rU2l6>mH~+jT|MFS= zEWLmtMNetXOH3yuFKO$&M-o9G+j!{r| zbAIy~l!90g=vh8i98dmdU0dFp$~d*h!2gF9kL4FkLbnYRW5xWJ)}&P)Rs$}b`Ip9C zmi*UrcP7j~hMuf0+hgS05<6M?yXvJ(Ehfsth2F5&p%~eV)raOf-!sFkiuU$|&e72K zqoaw#-@-;#)=#E8)?Da_wMEBp)18ycRwvNPSGTBcMM6gm0+-fUbtb?&Rx=&E(LAMm zL#4lLvd8_Vc*<(x$-VNU{O+<{C&~Fsg<_$xhZUR{^gjFJITvLdO{!u}elbz?xCH@rQCpi(2Glq?nl4a+8sYS2@oFBJK((cTe-#-Q&R>AAz?QPBm0QF!)B@BV% z={3|BQLB&E-G@_5fwlmiH1|&(Gh(4C4Xx3a?NL$mH(Xi8vVJPxIWm)vKMi78P~P^0 zk)XR;kLe_1vG*i)9Nk*M^Yutx*o%r&>-sAzBr+jS(l~&Dy#d-7|hy3lP;h^sm_A zOf`Cs54|_i+jTD{fKHjb^*|B9WL&=gBjkQFc=YkSzCsM*{ov)NzQ1DQ&=xb+tNZMQ z*?azzu1_<^L1H(ikPe|0C}G>RN*hX0r~i@PQCws;LDC`q*;%HflAXx?nb@5X#2+>% zg^}7s*j(05rU?5AIKM(-@m-!GW}(aCDVn2|wftf5yjCU%;tv7+%SP9v%QxfA(9X+; z&(OL24GrRlrHg<4+Ia<|0bHHTMUi5j4oKOt4r_jQQApnB?~m3-{VFwI!IMG)6VTgE zm!5iWt}J$E`w)M>={C8AniuX;_-V#0Q$0=p=H$8UEf4T--!ncj>F22(V^@PcW5fVR3txglS<5m}OL)@4fHI z3UCYv?I)Qly^RW5kv9*0Vo;G=*dK^mTEKIxO~#1^YbK8UoHtzLNFQDg%DyG;oFV`} zwGN-mwUJ)DFF3Hr%Ptn?B)`KfJr*_jMA3hd{+1R=zO1o?cb9QLs{)ddFsA}k4U&JZ&c~< zu++ijw(SSG+8S5!az1>EU;7^w>0^It(b5WfR4s>}YApwTp4{j>W_%3Y!mP=jI_w?m znSq1Um)+qf9M8+UokslnX7zowQ7eA3!n247)6t}oS2|=JQ{i}M=O-%>*dHeSvI6FEp8D3|zNBb=&A78{i~Mlvr6s|jXaT929_knQ zQ`QRbPvk0V8+9^ps=3^cE!USn7(dqo(*~1wD@FeD>9aTP1~Za==!j7$*vYdqME|hP zFOHT750}~ZG;hY)U^d@mfnB)D57b12!)z{mxl@6-?F6nWb!g*InIuLQEhwP9J|gRp zXAqn&28#;r_`^ll`=W_M2qm&TxiX*da#|!@&~>Q!Hb&?h$=U9d?9{Ht zQ;v`73v*E*%IV4R$=a_lUA16W%*`*d{|5k?scRoVE3NpZA?PX6BgrJhKl!3G92_ z_gd>(=k+_UwQlZC>+*w!CQBFhM-;lv<`%nrE=w5SHv_k~cBJ^K{6;)JfCmAlfKPUT zOz%uw=$4z&2ltU*K9m=SIza`DH-|_3kEHNO2g@IdXfktsY5Q;kbqhjp@%HVPvg@5( zgSv`bLhv8<(jIoB5v#74BwGF1ysuKcVrsA#8{mp*mqDy8tlI}MN=r6Vt5}_hKBBlv zD5q>sx)iptaJf5fkpN|6sOTIb-uIUo#6@ zmlS-hzl(*8nbL|0F)_)H>OZhw0Y4`iI;-Ygl;(+P2aAmQytn5mtG}NK2&o;g%R03B z9Pci+*ZS;F;l#$D!`3f5pDPLwv~KqoZ_8*yYq;PJv*;T9LMnZASaF0FNSiKCl28`n zLPJlQst1oIgxp%6zR*I8W)VHG#U0rcvtt)MV8tC#_1Ei8E=$r7?bvD-gvp#n7K`1V zKg0wJFN7>X6ToXikoE}@$eY5&YPe}K5PAW=}&I?GGNyhdSepKMGcI(ZJhwblX(R3WxdnAlJ{|U(N3%&W_Bw6_8-MtF1GM!|!49CeFGq+fRrw%PM71S3K?*512zO zMuB{Na5Jr$9vKltZ0y(Av*Ui$ae7H%U4)cgfD`w2UnA!gvn-$U0U@96i_qR0`AEGL9Zp#?5%RYF#xn@t#MICj*!Xhc1>@Y16YVFcaslKg)L= z&E!5Py=RT0tTbDK-$@e0o6+elE)<>lg8$05dqd3QVmtcx0%oy+>B>RL)VgwP0YSoZ z7pK#dpw8_eM$6A~JshH3!8!Hix`&k=!n2bvP%9_kl*g%a*UHLwdO>p~Ydbv7GcxKi zum)2;pGl+o`>Jt9#^yX8Q2ZssqpG!*c~tZ`zb>vt-_w@~&YN$O`wkvFd)MpA9d@;iVlp(_HWRm0Xww5OG9dq{&AL2mb6iT3 zf)y1PL{h)GsYMxqv!fZ&y(^-NG4rKDD{-&a3WZ^tI9$(7 zNS?cFImMb)LJQ=alXvrY6NkZ#MAhPH$@*um;m&GyuiXtT^wM!gTUX{ z82WaZ9ZytO{ESqx94FpB$`{drKN=_1m-g(n2%&g`9UyQYA))Kg0(?M39= zM#`tWqHP=J@&d}ZPskJ+k+qrle>yw4?F@^a($H=jcx2}J_3L8HVYCLiChG}362?kx z^o79`;gpVy7oQfJ-(ezO?r7mf*%+8+a`Tmg4Sle+CpA$zPpPbmJt*NAFFP8|obI{h zj@HP67b$%uVZf$dx0%KR+_tgd)asz(Lg(IEvzOUdf+`p6wpA-J#XbWAcY<&(qgOf6 z?1?N}f?kh7yMeaW)YI)yr$vOY$FrCpQus4k;$ow4xNMSUY9|ewSKE8+4ukKnw*~>E z{hhCeqOPQZ7c*x90VSr7&LddABT;yned#yla5*GZ|7QB7e?z}oa75Gz2|3^~)^lA= z-M3;i=SN5yDv5bQpL0ejZcB$QtpNrwLS z2z!cbS^~)IS4%wT7xv4P&cr`k>+Ikwti`M@sCP)`hG#wyebhuG+w}{X8Zz%`8-6`Z z_UTnuE&B_ePx|_31(|Ku)mazgbeh(Rr)k~>Q;!WPnk9zK=>`-QOZg67I6v2Xn=I~X zAZx1AB#){~nW`Yu4i@brWUVWpfgUjMV+^=5!Qa zb#<|6D!j@}__EZy|3sGiPab*Ie<+Izn_45gkt{6JIfmcj1;Y(pz?r3N5#zWvpDC)z463SQj zjkzok5irU$DcBQ=!FbZt)@7=BTPFj}1HTa*w2jj3aql*Zy|eE*SusO?FnqtwA#lr>L-& zv}XSFWym{t++~<6uK!^Ad~36ikv}`yAv>C5p6nhGsE4aNHNs1TRX3A4~xyS z2q`ewg!GPYqueQw#0S_m9qYdIWwXCuMJOu14&RKG%`I!-1hy1(HNXwG5>W1$rQW5ft&i)J&$3$w}bIh@b}Z2jV-Y zful=Uh(m|Z@hMWLFuwLl0ysyd8V$n!cJDjeEAjIAssg57rVw4#slacMaAHavTn@y{ z_b0^Nmeti`&}REI#SOwHmRA`|Im<8zywy8 zm1q(@T?|@TX%?dPQ5W0|}6^W$xtajAA?6>1!CVKKz~By z4o8lpaogAH(Pg0JP22%$OmIn^2+bU=*@OC=o$L8X5SE{j8Usc#gKK&}k;Hv-|3ULt zx@Rim=2dq%m!qMSqD{upj31cv>QA2J#MkMgoT=1i)~R=88^z7 zvO!Ps^vdWDxld)9kw?A=5f!KT;?vFvLOW$0YQ#T67W;|G+3ev?rZ@KMrN8p}&{XF_3$@_YiQ+IrKMO~Jbcnaw!Y~j?Q@sHVt z@Klu|YOv*$p=)1nE2xx(F4M9bBUEXKy06baQRFrvM`tt74DDNi1Sqt(wyge38dCm< zxq)LH9AxAbNxoWzVN!xT^06yHrZh(76?-?i+Fs54bD{|97)5bh#P|UoNY2I9hP3^Z z5PyObdY>z1v|_M>Aj-!X!vGetFN3CGZZa-byh(#?=A06v6ipT13Ye6>?k|N>uRYXa zC}#!De8ZvXuHnIpq7Yep#r@pwq z(o9)<3O;56J83MSTFiSUTs?Z}d;$S7sZR7oZapp!eE-_Mabe3W{pI~}>E2w}`4_RD z%FpU`9KJ>LRZ!T^I7HRBV5e6*>MyQ_&iP5l%pi;7rccQ6J*;To9K=mnK0)6DBnXmO_+;bH9lIS%%JitH9nVNZ~KI zl%kNb-7X_SF8mAJ1x*RFL)-y%6d<*(k=eu_^F^%(S;&7{5KzKKsjbESjr^N(BCcRc z{RO#g^2vHf)`)_p4QrhjmL|p}Tpm!W>`6A?O-F%7aIFiV{;D>_AKDo!DUzIWvDJQk zVvnqlvo3yf&?qCe%7-Yfn(XGJQsCGEFK^1+R2>0yZ8~o}4m8O8qJ`p4fC&D@j1Kbl z_yJnu$F1$Qzgj9sZQzZl@8EJ!zbc0EczW?B=082b%yz{EO0|o{7yVZ>vJJY0x#S_z z%o&vzEFd{L$0Yx%il?R5UafcgoHpfCVgnI(jZ3F~ReDQ3zI)bVAnI7O8{+=FG?K;0Kc2FAZX1)&$dg8^qquq0ciI{^gYA$sNrTkQuir&=j+%4xIiH)<2~{g) z=szz*eOTeH;o<$Pn47*v^4I zh27D!F1f@C#m(`QRPEkZPa;Pr9Vk8|PX_dx+rD`T!m6N<(pPew1FgJ*u-NYHXfb6) z<MG5 z{n{wh56|6cTINoYI?DyU?CZR~uUC+?oWlj%d4?|ifCqu|Yt~ww65%EBKVh+M#?1yp z`x>{uIwAFG|odns~Vx&4oNm=MK%OIwg^?Sw&goUcZ{tW;*KO&8bQ zrhz6bSm<&1Sqn1V3KksX%9$u-e@MQv^w{w6f1SsCNog9Jh>8N18@GwbAT(S)dvdc1&Lw zSm#k2)#Rg{I8TG``lAlBr^qs5e=x6-d@>#9b%uxVbnZ^ivV6UVmN#&R>#$;kjD=rs zD5^Ec_<15d{}tJ$!4%u2rH>~jl3p{X@>m?Vwx8^`+|U201rSKHhM)2EAxe-(2T5;! zbL&doj`3r~5BnuXEnpzoEhl!Zj)V=>F6htK?wy^FC|_NZ-wE^>0WJRL*7 z9!R7SMCIm)zbms)EQJ$7pT-ROF#npKMF26idqeVYX?+Dll_x1Ux*tpybBjZ^mQz^) z;hiJ_hwWIl_Knl86pa}<7;HYvX-gfkK8PXx7~q(fP#W?B($nMyROPI0Q`cr%-acD& zy6V;PVndO*6gWT28fP^birkc%4l=-KhIbY0-7GWKDqw4qMZJ;`QTxgsq8e1n%aK7b z&4-XEiOc7}A2n+x?BE`w?qox-?r3x_ zulhK1hox~r)I$^(lR3n7M`3F>uX%}ka-(gnm@IJfsHEv?acO>?ZBLUj*U-U*yj&Ae zAcayQZb4GwHAD9P(pPEbcI~;qa5f*jIK4Y`ft#VUEtZePuSo8Lo#>3&6Kdv zz8p7SF0|?iV%F=}#whLB&li1(AtSo@vTb<1L|j2vb*5Uxaa+N>D%PxRy&}PI)FyWh z<&A#5Fp#b<|xhtOt~I|WacIGcVFtwP?IKkZO38W81cJBt~z}v9DKTA#J}s^$O(m*VNPY>z(qw-uSt1*Iav(Q=plgCT46zcqhTO&sPCMQ93*b z;e#J5<9zaq_9bb;KBA;i@O`xLMw?{d^ICo}o$}7f3CG~{z!{R~t}WwG<-imxM^{!; zfvW031)(PW#lp%^Xl#2eA{l}FoWjfAZ6}N?*+nIzt(E&Xdv6b15sN~nq2p>tY;C{y zH`Vtftsn5ob_;X%^U!+^7Y9)2ER&R`rXw4A&ckll2H$)g;E|&@B&ol0OcuD{l&5EI zxM9m|d@!78`FKh6ZG&F1YUNS7q3JEQlYlUIn9Jvro%_#mii(hk@MbmnRWM|P7jx>- zE_V{C`=w8Dngj1C=1jRP=3DPLJe>y{H_)`shT1je5M`q|Tn{EzHjgzCGtQvEVKLI} z?XGvww80)9uU$Xv)u394Dkz{S6N=K;hXY7OXzw%L$mSxnEU0bR&&50h!H3@&zYyLGvU3c7mt&WX^=UAQV2 z%r=cF%oJqsr})kjAkN*#OqDS9;@Clr9zJpP)=PP z1Lob5<>kffB@eeUM-$bV`NhQ2m5<>i*S?Y)Y8$W&Do`(_36G?|Jr;V;FI4A92=~AO z&c!sS5ugqu1+?EfI3PZyA!;yUsT^KZhJVqO#a}zECFbsblbS-* zII-WBhSdJ^J~gWvDoXiDM?&Vp;=8+1--};v3X$#}%d44S{wdIhRYpJ`BmCJR0rSbBe*-e?zm@-Qf8B!W z0}AYtA~>WG$Y+DU%&oWmi+Eu$>XtxSrbPIlghI}0^I4TM7EQvZpfB*r*gFdFi)ch{LbwN@xr2X$Y^SdfK zaBNdA;MexA<9vwnZ{xdX#^o?xi)D=%=WtP}r*?OlDINY#r1$p&$YD7tTVih^Yi8J)=39v4FI?IVPG1K3*XN@EnG<47|GTacDs9IOv?%2V z-U8Fww|xGL9p>CwH5n9VgDLDJ&-uKLUkrST0z}z+La!sO+QBQ@yy_81HT_F#(EO>X zV`PmSTrk17TsdY`lkx*Af}wLdSn2@Pqm>OwZGZjUlnb?lMd(14nnr-*PuGudDS#E> zbQ~TssS(E^?7jI>_b0V1C!#oC`6^J^8w`i-)($WGa?07c+zoB^rJw{|nRxP%3mqK; zB*;JC`Tg3Kvf89pBaBaJ(w;b1bk|AK@Mp|4TN1L|NrXXzen%L=v8LCp&}B^m+>dZM z0=gAJe~Q)O>m&fWGpBdlktTBp<8VTf@Q7o)-*WFfV`-oPccAC<4(@^=M4H(S@lLT31Ynv7nw&x!0HBLndpH+GnH93 zlL?h3*_JAC_6DTx8F(*%P6z6EBUc7+JL;OV@GqEf$dt4b5>bAJl7P`kz$W-;v(;Lfx(1cJ5h z$>XS4o5O#*^bWhTZ}8AcV{hkyo09bb)g`Xf^?u|P>e%XsvT`E6^7IK)SFEIEXFgpK zkf5-~54`HCk*gUo=LP{Uy(I_Vw2}e{O~AOF-LS#m$o;&?TeYm225tvRTrQEo3?rdwNCdi=}1u~r$L7!cAQKc_%oPyAh(zcRuI@HXX9>XS?}!hek*mG_Ss z<=pIzdH;)Tan)*A3X`b{cd<>C`w;345vjHqFvlLz-} zhu4&3MAvXODNG;hDnmY)Wh}Jx%q7%gl3|7F9+l{1pMz574b4BVXPy zBd0_%$MrvHqVyeG2kgb5TtE(<^?zw?m@-m{3GCHba+6kFU}j|G;CDpIF8NcpnOCJB zo?_V7d6G1H*i0pmgGptzBt)7hK(!zNug|SD?6V6(dYUEUL!$*EeQ{-_{bx=!>NvccI+ zA5wmiI%9OEYUew%Bc^L4!(n0X*JmxYxJ|6@Tn7taW)HZ+xg>v(kC}>-6@IJhgD%J= zPE*|Qc#^E95@eE+r_``Bq16Ai4fhU=MpJl}ig96hs{O zy$+RnS@&Vr3^imD(B~bpxsj11oQ^7|)8zv*DvB*Kmw-P1^Mxm%x0mg4jXsn-0TeVs z9Rm=Q{a?AjTlw6dG9PY4+k`Cz1@9w}H`P9Nl#L$YvWG*?LIMH}Kn*-h7I7#cFxIvx znh-%mnDj#aQ1U=fuX8ZGs-?OZ7QDdr7SQV99&WLD*akY}|*o`ty-dzo*w z*t&7)nL-LK5+3l+^t(j^ba+rICn8JyewWP&gE?ksBpkXP)Mr#XH!1>Y91Bm5?mV4l z|F*%9vGyL!MswTUfPU?e)5x{zAdh*Vm0@m^>0h_$(Pt9`twt2(sp;UKEtRjjXz2VB zWj>NVm;ZKqCTpe=DpTw7>zon$gdDn?AdIa{0K2bf#VC}gQ@BS%FQEkS#V)5Q-f)0u zpGEAWmZFpaIz3VIpOB|gO-h_8Vftdu1kCh>1|k3#5? zRKQvKWXf!aqDgO9Go3M&^jVJ1{^6XVdj?Pn81Dgu8J|BSg)@Qst2I$(Hgn7Hrsx|3 zOKTFBT$D=Hi`NB9h#ExcvBsyV4XA|^a53G=HS#;uV2NQ*ut7!shO32>Zhxnmj|iwu zz=(Np_eNl838597DAOPW4^jW}`UW+GvZfVS%Ysv)UBlhH`sMs1!}ESiKXl4ju9Rmd z%;|t{327UhN8HGzBA5%8dFpDvIabj^c;FxfWfypl#T-7?otC45_GzI$*oo6`@~3K^ z-S$iKr*&58wq`UtYBYX2tR71aBB237G868mQ4-_kaHw_1Ba5*E>7a0?ErpEAaO)(A zon#=-YNu_sfJ!d5_hV?Pr+gx;5_#waP!My&$jZ2Q5rJiVf{}7;V}B6;RSv$bp0LyV zD-}X0wAPG~Tr{oQTP2?l2H{u^mCGpyTIXe>F|)Sy3Ek1zh6@UWzVuT~s>gvIYAjk~ zhx`{7{?Ahi(WE~8+k1t;NsXhev!QI&Q0vw`GE91Ny8IOmA~Oa#|L1}iddEZX-`UtW z6Dg5nB1cQ8*UU5^S0+3+Gj35Ky#A=H8tAF{n(q?DnPLGI^t<<6&3hSCaL|0aRd((X zS#UK#Idytz-@PvP(UkxgHIOU)e~Nh3nr#3xatQw8&Q3WAJSIxQhv3f4i~ZAqA^aIf zvZ(ZWx!3|o#SZ-{niTYJ)-iJ3wPw$R-ql-Uhh>U2-eKK})8cciy??uPMh_D8(2>R| zCi-7qk4(6>4O=L)`rK)3fF}d-wPqK~8d1l*-K%!8Vy=Lriwja8rPx_-RA~g?)F+9l zo`ezcT=x}yrsliknd-Zgi%S?cCl~t5&50WErL%HaEF9=al@XM2%QV!}UUJUM?ALTz zwQlAm4(&NS^FU+(l+N68-!D4`M<`YD)Y{-L4z?0#F4yeKJ9^)kq{ay+1qF`vOB$3Mp= zQ6M_SekTp+0ANYL`Iq2+#ERCk*VL;mh%!9OUuH*^DP6fcqy~M?`ZU`3F==s?)o|AE zV(08Gf5ADIhstO^ZN&^`m6pZOF>R(9@!thg2S~1t^TuD^ul-y$NZiiz;uGpZj(SK1 zJVL?Ih;yc+h`oM;%ot;m&yhS%AZ#Cxf7wzEF}H7~}T)#6B3Z3|aq_AVn1a0vbBc?jUf% zyyyEM&YNtOD(Ni0PF)P@)@)zYnGv**K#CBF0aL^4u3B)GkFcFObOE zO}ML^#DT;<=Ao{t3A>Y%)#x8P8L+HMG%TT@aTgKp_u+tTk=|!c`SdhNR$_FAdN;zu zmU$NoJmMK^ehi^6ySXz#M?81 z5(4gyUFKK0s^3kx8aJNsGlJw)nps?#uq(V?s9>z5fC)9kAN*raEP@dgFbXesw99LD zWLT3xOeV8P!&} z0Qlvr6%_5r0{{qK`8K(MEOK{b$L{?=56V2UV?I7zM{)bwXBd!M1IDG{-huP{?d4&4 z6Z=O=A*~!bHF%u`cTl(lykS?*-LBb)UYhPl3+@4Uz)0R!BVAS!d0RBN?e`D*m1IQ% z=Egq<63XvCn>-b8A5vehLvfflQ|~kRA`7-cA;+vsUSBrdw@_!Q{7s)66`+JHY>E=f zgy7MGuFg;~p$Zv8h+}wwuO`xb>3$QmZ;VQKV;>D5c=nhC?vDo{?!@9@SmbvPx8(z<@gu ztelZxNCPiWjS=90_WALG_Dno*G^J0ZL;X41Pu9 z8Q+aa5m2in!}J&o`u6pFkj_3M8N7*0I-lSXFPtz0p|{IO8&?t!aXYR@0=nhH=iPbjFx5Klc9qtX1{h~G@ZY=U_FL3K3@5=JgO zi63wQbudFHK7pR=*`P|t)spN>sMPUHuINlH{O1BjkSilYkzi!-n5XUjTBDp#Fc@%l zVEYzif-(&Qb`k(@#X$!;HLPl22>j$KEI{{X{tfD2^f}*-cwBS#9R89NszCy}G^3g< zqF5L=@Gjs9EL|c|0A`Xn4JEUkAYj$=t_~h?x!8&tBA>^GMGRMcQzJC#t z3pJ_s>1MKFOK0E@DlJa?UH3#*>>G}tf;tM^ZKk0UM$P{Tik$G$^NmszV|oligJ1VX z*Gzw_T8$J)pt}Nwuw&UZN_m%aco%0rH2#~O_{)9Nh})nC#eM!PWFw-dkFG!5vLwl_ z-tR|&I}I+asb4w1Ae)k80mI=j2*~ZLHolvK!O?e9@Zs^~%|U)#8s|b$K{Fh{A9T2y zV2itBiIrP!Kgy+ZQ;eJ~NmRv+k^u|U$ml}UxAXhav_d8#)1I=Hnx<7Qq}2<%KQ!Ft zrLK`6sBG%LPEdUhG9lqMUM5?NCg_+NKBG_QGE|YfuZgDHN=4DkaSQ{ zLz!^~(Go-kPcT@KM+^#Rumj?4B_NS{D!Q9>quT^L5>`OybjGVFApzR>X@c zXvE;nIxG2fWH;vJ5if@=324rd8?FY>G0Xqd<;;sucEyD6$;%taZI zroVdh=lN7&Wm)>9o*$zuM5Z#JYKw@~PMDkU`mLO>N+VbTpYonuSZYsE14mm@IRNB1 zrsi0c_#g1JaF#}vpsY#l0Dl-*xL`g{K`3kV?Di0P9A)5af(INg~7X1iP7+9_A#7-cnbycJTsgQxYVfJ3aTb%3i@)mdik-BF%vg76B zwi4*8oXZ&nZB@r0kOd|~(A{on&q8*J@Tv2cKe?p4frUue zClxsaz3$X!2F>oG{YMvJRkL+>M+Bp(h~d85-~Hu49gthfeo4>QA+3Q67b#gM zl>Ze1*QmA)4%hngai@po$c^l1lE;XmWnEPuAq!?P!w4>DRaoHE5!l1#I{%A0GZzxG z@gMs?p)+6LS*>Ewnr@QD;;#bT-u`V*Xegy~w(o1!EJGWnkJc}XUH;?UjiIUTI)4r{ zgMF=<2^6PpO@+z(x|MC^*J84?Wnq&gj1$8?BbAZ=xskTuuipS`WhT=Yr3nMr!(X|0 z+M!;G0C8=M_^d#>B~L1bz@1##HWw2h&7f9Y3A+I7^Cmz7NoQQAh3QMRVn}7{3aj^m zXCI~xC-K9ttKj0xhstM2=&FBTrvonPxTXXbha!sIK4;|H?r`+$+hI?+E0_CL&>k(4;VACGawq%xKTdNwmDm3-{r0y82=*xQe*6I)e;#iEC-T3y>Hc>&^#6bT z|34X~|5pcr!>I~5I|9NjD=Dt_=cH%YT=_qmD)&ASoLzQ-B54KS?;)~MijpNS_5J@F DP08nC literal 0 HcmV?d00001 From 68cb482ef8849ecfff7ceea075f5f252ccebbaad Mon Sep 17 00:00:00 2001 From: danielle9897 Date: Mon, 15 Jul 2024 20:18:09 +0300 Subject: [PATCH 08/25] RDoc-2882 The Queue ETL Overview article - under the Server folder --- .../etl/queue-etl/images/overview_stats.png | Bin 0 -> 47965 bytes .../etl/queue-etl/overview.markdown | 99 ++++++++++++++++++ .../azure-queue-storage-etl.markdown | 8 +- 3 files changed, 103 insertions(+), 4 deletions(-) create mode 100644 Documentation/6.1/Raven.Documentation.Pages/server/ongoing-tasks/etl/queue-etl/images/overview_stats.png create mode 100644 Documentation/6.1/Raven.Documentation.Pages/server/ongoing-tasks/etl/queue-etl/overview.markdown diff --git a/Documentation/6.1/Raven.Documentation.Pages/server/ongoing-tasks/etl/queue-etl/images/overview_stats.png b/Documentation/6.1/Raven.Documentation.Pages/server/ongoing-tasks/etl/queue-etl/images/overview_stats.png new file mode 100644 index 0000000000000000000000000000000000000000..df417274169a2d3934143868f445df6e8c4fd2fe GIT binary patch literal 47965 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΍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 literal 0 HcmV?d00001 diff --git a/Documentation/6.1/Raven.Documentation.Pages/server/ongoing-tasks/etl/queue-etl/overview.markdown b/Documentation/6.1/Raven.Documentation.Pages/server/ongoing-tasks/etl/queue-etl/overview.markdown new file mode 100644 index 0000000000..05b78175b0 --- /dev/null +++ b/Documentation/6.1/Raven.Documentation.Pages/server/ongoing-tasks/etl/queue-etl/overview.markdown @@ -0,0 +1,99 @@ +# Queue ETL Overview +--- + +{NOTE: } + +* Message brokers are high-throughput, distributed messaging services that host data they receive + from **producer** applications and serve it to **consumer** clients via FIFO data queues. + +* RavenDB can operate as a _Producer_ within this architecture to the following message brokers: + * **Apache Kafka** + * **RabbitMQ** + * **Azure Queue Storage** + +* This functionality is achieved by defining [Queue ETL tasks](../../../../server/ongoing-tasks/etl/queue-etl/overview#supported-message-brokers) within a RavenDB database. + +* RavenDB can also function as a _Consumer_. + To learn about RavenDB's role as a _Consumer_ please refer to the [Queue Sink section](../../../../server/ongoing-tasks/queue-sink/overview). + +* In this page: + * [Queue ETL tasks](../../../../server/ongoing-tasks/etl/queue-etl/overview#queue-etl-tasks) + * [CloudEvents](../../../../server/ongoing-tasks/etl/queue-etl/overview#cloudevents) + * [Task statistics](../../../../server/ongoing-tasks/etl/queue-etl/overview#task-statistics) + +{NOTE/} + +--- + +{PANEL: Queue ETL tasks} + +RavenDB produces messages to broker queues via the following Queue ETL tasks: + +* **Kafka ETL Task** + You can define a Kafka ETL Task from the [Studio](../../../../studio/database/tasks/ongoing-tasks/kafka-etl-task) + or using the [Client API](../../../../server/ongoing-tasks/etl/queue-etl/kafka). +* **RabbitMQ ETL Task** + You can define a RabbitMQ ETL Task from the [Studio](../../../../studio/database/tasks/ongoing-tasks/rabbitmq-etl-task) + or using the [Client API](../../../../server/ongoing-tasks/etl/queue-etl/rabbit-mq). +* **Azure Queue Storage ETL Task** + You can define an Azure Queue Storage ETL Task from the [Studio](../../../../studio/database/tasks/ongoing-tasks/azure-queue-storage-etl) + or using the [Client API](../../../../server/ongoing-tasks/etl/queue-etl/azure-queue). + +--- + +These ETL tasks: + +* **Extract** selected data from RavenDB documents from specified collections. +* **Transform** the data to new JSON objects. +* Wrap the JSON objects as [CloudEvents messages](https://cloudevents.io) and **Load** them to the designated message broker. + +{PANEL/} + +{PANEL: CloudEvents} + +* After preparing a JSON object that needs to be sent to a message broker, + the ETL task wraps it as a CloudEvents message using the [CloudEvents Library](https://cloudevents.io). + +* To do that, the JSON object is provided with additional [required attributes](https://github.com/cloudevents/spec/blob/main/cloudevents/spec.md#required-attributes), + added as headers to the message, including: + + | Attribute | Type | Description | Default Value | + |-----------------|----------|-----------------------------------------------------------------------------------------------------------|------------------------------------------------------| + | **id** | `string` | [Event identifier](https://github.com/cloudevents/spec/blob/main/cloudevents/spec.md#id) | The document Change Vector | + | **type** | `string` | [Event type](https://github.com/cloudevents/spec/blob/main/cloudevents/spec.md#type) | "ravendb.etl.put" | + | **source** | `string` | [Event context](https://github.com/cloudevents/spec/blob/main/cloudevents/spec.md#source-1) | `//` | + | **specversion** | `string` | [CloudEvents version used](https://github.com/cloudevents/spec/blob/main/cloudevents/spec.md#specversion) | `V1_0` | + +* The optional 'partitionkey' attribute can also be added. + Currently, it is only implemented by [Kafka ETL](../../../../server/ongoing-tasks/etl/queue-etl/kafka). + + | Optional Attribute | Type | Description | Default Value | + |----------------------|------------|----------------------------------------------------------------------------------------------------------------------------------------------|------------------| + | **partitionkey** | `string` | [Events relationship/grouping definition](https://github.com/cloudevents/spec/blob/main/cloudevents/extensions/partitioning.md#partitionkey) | The document ID | + +{PANEL/} + +{PANEL: Task statistics} + +Use the Studio's [Ongoing tasks stats view](../../../../studio/database/stats/ongoing-tasks-stats/overview) to see various statistics related to data extraction, transformation, +and loading to the target broker. + +![Queue Brokers Stats](images/overview_stats.png "Ongoing tasks stats view") + +{PANEL/} + + +## Related Articles + +### Server + +- [ETL Basics](../../../../server/ongoing-tasks/etl/basics) +- [Kafka ETL](../../../../server/ongoing-tasks/etl/queue-etl/kafka) +- [RabbitMQ ETL](../../../../server/ongoing-tasks/etl/queue-etl/rabbit-mq) +- [Azure Queue Storage ETL](../../../../server/ongoing-tasks/etl/queue-etl/azure-queue) + +### Studio + +- [Studio: Kafka ETL Task](../../../../studio/database/tasks/ongoing-tasks/kafka-etl-task) +- [Studio: RabbitMQ ETL Task](../../../../studio/database/tasks/ongoing-tasks/rabbitmq-etl-task) +- [Studio: Azure Queue Storage ETL Task](../../../../studio/database/tasks/ongoing-tasks/azure-queue-storage-etl) diff --git a/Documentation/6.1/Raven.Documentation.Pages/studio/database/tasks/ongoing-tasks/azure-queue-storage-etl.markdown b/Documentation/6.1/Raven.Documentation.Pages/studio/database/tasks/ongoing-tasks/azure-queue-storage-etl.markdown index d041a6ac3a..84a0f43a17 100644 --- a/Documentation/6.1/Raven.Documentation.Pages/studio/database/tasks/ongoing-tasks/azure-queue-storage-etl.markdown +++ b/Documentation/6.1/Raven.Documentation.Pages/studio/database/tasks/ongoing-tasks/azure-queue-storage-etl.markdown @@ -4,9 +4,9 @@ {NOTE: } * The RavenDB **Azure Queue Storage ETL task** - - * **Extracts** selected data from RavenDB documents. - * **Transforms** the data into JSON objects that are added to messages following the [CloudEvents format](https://cloudevents.io/). - * **Loads** the messages to an Azure Queue Storage. + * **Extracts** selected data from RavenDB documents from specified collections. + * **Transforms** the data into JSON object. + * Wraps the JSON objects as [CloudEvents messages](https://cloudevents.io) and **Loads** them to an Azure Queue Storage. * The Azure Queue Storage ETL task transfers **documents only**. Document extensions like attachments, counters, time series, and revisions are not sent. @@ -210,7 +210,7 @@ You can configure the ETL process to delete documents from RavenDB that have alr - [Queue ETL Overview](../../../../server/ongoing-tasks/etl/queue-etl/overview) - [Kafka ETL](../../../../server/ongoing-tasks/etl/queue-etl/kafka) - [RabbitMQ ETL](../../../../server/ongoing-tasks/etl/queue-etl/rabbit-mq) -- [Azure Queue Storage ETL](../../../../server/ongoing-tasks/etl/queue-etl/azure-queue-storage) +- [Azure Queue Storage ETL](../../../../server/ongoing-tasks/etl/queue-etl/azure-queue) ### Studio From cc58da22e1b7ca1e2f682166b710d6adb3e3f160 Mon Sep 17 00:00:00 2001 From: danielle9897 Date: Tue, 16 Jul 2024 15:27:39 +0300 Subject: [PATCH 09/25] RDoc-2882 The ETL Basics article - under the Server folder --- .../server/ongoing-tasks/etl/basics.markdown | 287 ++++++++++++++++++ .../azure-queue-storage-etl.markdown | 2 +- 2 files changed, 288 insertions(+), 1 deletion(-) create mode 100644 Documentation/6.1/Raven.Documentation.Pages/server/ongoing-tasks/etl/basics.markdown diff --git a/Documentation/6.1/Raven.Documentation.Pages/server/ongoing-tasks/etl/basics.markdown b/Documentation/6.1/Raven.Documentation.Pages/server/ongoing-tasks/etl/basics.markdown new file mode 100644 index 0000000000..496fb38d7f --- /dev/null +++ b/Documentation/6.1/Raven.Documentation.Pages/server/ongoing-tasks/etl/basics.markdown @@ -0,0 +1,287 @@ +# Ongoing Tasks: ETL Basics +--- + +{NOTE: } + +* **ETL (Extract, Transform & Load)** is a three-stage RavenDB process that transfers data from a RavenDB database to an external target. + The data can be filtered and transformed along the way. + +* The external target can be: + * Another RavenDB database instance (outside of the [Database Group](../../../studio/database/settings/manage-database-group)) + * A relational database + * Elasticsearch + * OLAP (Online Analytical Processing) + * A message broker such as Apache Kafka, RabbitMQ, or Azure Queue Storage + +* ETL can be used on [sharded](../../../sharding/etl) and non-sharded databases alike. + Learn more about how ETL works on a sharded database [here](../../../sharding/etl). + +* In this page: + * [Why use ETL](../../../server/ongoing-tasks/etl/basics#why-use-etl) + * [Defining ETL Tasks](../../../server/ongoing-tasks/etl/basics#defining-etl-tasks) + * [ETL Stages:](../../../server/ongoing-tasks/etl/basics#etl-stages) + * [Extract](../../../server/ongoing-tasks/etl/basics#extract) + * [Transform](../../../server/ongoing-tasks/etl/basics#transform) + * [Load](../../../server/ongoing-tasks/etl/basics#load) + * [Troubleshooting](../../../server/ongoing-tasks/etl/basics#troubleshooting) +{NOTE/} + +--- + +{PANEL: Why use ETL} + +* **Share relevant data** + Send data in a well-defined format to match specific requirements, ensuring only relevant data is transmitted + (e.g., sending data to an existing reporting solution). + +* **Protect your data - Share partial data** + Limit access to sensitive data. Details that should remain private can be filtered out as you can share partial data. + +* **Reduce system calls** + Distribute data across related services within your system architecture, allowing each service to access its _own copy_ of the data without cross-service calls + (e.g., sharing a product catalog among multiple stores). + +* **Transform the data** + * Modify content sent as needed with JavaScript code. + * Multiple documents can be sent from a single source document. + * Data can be transformed to match the target destination's model. + +* **Aggregate your data** + Data sent from multiple locations can be aggregated in a central server + (e.g., aggregating sales data from point of sales systems for centralized calculations). + +{PANEL/} + +{PANEL: Defining ETL Tasks} + +* The following ETL tasks can be defined: + * [RavenDB ETL](../../../server/ongoing-tasks/etl/raven) - send data to another _RavenDB database_ + * [SQL ETL](../../../server/ongoing-tasks/etl/sql) - send data to an _SQL database_ + * [OLAP ETL](../../../server/ongoing-tasks/etl/OLAP) - send data to an _OLAP destination_ + * [Elasticsearch ETL](../../../server/ongoing-tasks/etl/elasticsearch) - send data to an _Elasticsearch destination_ + * [Kafka ETL](../../../server/ongoing-tasks/etl/queue-etl/kafka) - send data to a _Kafka message broker_ + * [RabbitMQ ETL](../../../server/ongoing-tasks/etl/queue-etl/rabbit-mq) - send data to an _RabbitMQ exchange_ + * [Azure Queue Storage ETL](../../../server/ongoing-tasks/etl/azure-queue) - send data to an _Azure Queue Storage message queue_ + +* All ETL tasks can be defined from the Client API or from the [Studio](../../../studio/database/tasks/ongoing-tasks/general-info). + +* The destination address and access options are set using a pre-defined **connection string**, simplifying deployment across different environments. + For example, with RavenDB ETL, multiple URLs can be configured in the connection string since the target database can reside on multiple nodes within the Database Group of the destination cluster. + If one of the destination nodes is unavailable, RavenDB automatically executes the ETL process against another node specified in the connection string. + Learn more in the [Connection Strings](../../../client-api/operations/maintenance/connection-strings/add-connection-string) article. + +{PANEL/} + +{PANEL: ETL Stages} + +ETL's three stages are: + +* [Extract](../../../server/ongoing-tasks/etl/basics#extract) - Extract the documents from the database +* [Transform](../../../server/ongoing-tasks/etl/basics#transform) - Transform & filter the documents data according to the supplied script (optional) +* [Load](../../../server/ongoing-tasks/etl/basics#load) - Load (write) the transformed data into the target destination + +--- + +### Extract + +The ETL process starts with retrieving the documents from the database. +You can choose which documents will be processed by the next two stages (Transform and Load). + +The possible options are: + +* Documents from a single collection +* Documents from multiple collections +* All documents + +--- + +### Transform + +* This stage transforms and filters the extracted documents according to a provided script. + Any transformation can be done so that only relevant data is shared. + The script is written in JavaScript and its input is a document. + +* A task can be provided with multiple transformation scripts. + Different scripts run in separate processes, allowing multiple scripts to run in parallel. + +* You can do any transformation and send only data you are interested in sharing. + The following is an example of RavenDB ETL script processing documents from the "Employees" collection: + + {CODE-BLOCK:javascript} + +var managerName = null; + +if (this.ReportsTo !== null) +{ + var manager = load(this.ReportsTo); + managerName = manager.FirstName + " " + manager.LastName; +} + +// Load the object to a target collection by the name of "EmployeesWithManager" +loadToEmployeesWithManager({ + Name: this.FirstName + " " + this.LastName, + Title: this.Title , + BornOn: new Date(this.Birthday).getFullYear(), + Manager: managerName +}); + {CODE-BLOCK/} + +{NOTE: } + +#### Syntax + +In addition to the ECMAScript 5.1 API, RavenDB introduces the following functions and members that can be used in the transformation script: + +|---|---|---| +| `this` | object | The current document (with metadata) | +| `id(document)` | function | Returns the document ID | +| `load(id)` | function | Load another document.
This will increase the maximum number of allowed steps in a script.
**Note**:
Changes made to the other _loaded_ document will Not trigger the ETL process.| + +Specific ETL functions: + +|---|---|---| +| `loadTo` | function | Load an object to the specified target.
This command has several different syntax options, see the general details [below](../../../server/ongoing-tasks/etl/basics#load) and in each ETL type documentation.
**Note:**
An object will only be sent to the destination if the `loadTo` method is called. | +| Attachments: ||| +| `loadAttachment(name)` | function | Load an attachment of the current document. | +| `hasAttachment(name)` | function | Check if an attachment with a given name exists for the current document. | +| `getAttachments()` | function | Get a collection of attachments details for the current document. Each item has the following properties:
`Name`, `Hash`, `ContentType`, `Size`. | +| `.addAttachment([name,] attachmentRef)` | function | Add an attachment to a transformed document that will be sent to a target (``).
For details specific to Raven ETL, refer to this [section](../../../server/ongoing-tasks/etl/raven#attachments). | + +{NOTE/} + +{NOTE: } + +#### The `loadTo` method + +{INFO: } +An object will only be sent to the destination if the `loadTo` method is called. +{INFO /} + +An object can be loaded to a specified target using one of the these methods: + +* The target is specified as a part of the `loadTo` command: `loadToTarget(obj)` + E.g., `loadToOrders(obj)` + +* The target is specified as an argument of the `loadTo` command: `loadTo('Target', obj)` + E.g., `loadTo('Orders', obj)` + +--- + +For each ETL type, the target must be: + + * RavenDB ETL: a _collection_ name + * SQL ETL: a _table_ name + * OLAP ETL: a _folder_ name + * Elasticsearch ETL: an _index_ name + * Kafka ETL: a _topic_ name + * RabbitMQ ETL: an _exchange_ name + * Azure Queue Storage ETL: a _queue_ name + +--- + +**Note**: + +* The target name is Not a variable and cannot be used as one; it is simply a string literal of the target's name. + +* Separating the target name from the `loadTo` command makes it possible to include symbols like `-` and `.` in target names. + This is not possible when using `loadToOrders` syntax because special characters are invalid in the name of a JavaScript function. + +* Note that the general syntax specified above, `loadTo('Target', obj)`, varies for some ETL types. + Find the accurate syntax for each ETL type in the type's specific documentation. + +{NOTE/} + +{INFO: } + +**Batch processing**: + +Documents are extracted and transformed by the ETL process in a batch manner. +The number of documents processed depends on the following configuration limits: + +* [`ETL.ExtractAndTransformTimeoutInSec`](../../../server/configuration/etl-configuration#etl.extractandtransformtimeoutinsec) (default: 30 sec) + Time-frame for the extraction and transformation stages (in seconds), after which the loading stage will start. + +* [`ETL.MaxNumberOfExtractedDocuments`](../../../server/configuration/etl-configuration#etl.maxnumberofextracteddocuments) (default: 8192) + Maximum number of extracted documents in an ETL batch. + +* [`ETL.MaxNumberOfExtractedItems`](../../../server/configuration/etl-configuration#etl.maxnumberofextracteditems) (default: 8192) + Maximum number of extracted items (documents, counters) in an ETL batch. + +* [`ETL.MaxBatchSizeInMb`](../../../server/configuration/etl-configuration#etl.maxbatchsizeinmb) (default: 64 MB) + Maximum size of an ETL batch in MB. + +{INFO/} + +--- + +### Load + +* Loading the results to the target destination is the last stage. + +* In contrast to [Replication](../../../server/clustering/replication/replication), + ETL is a push-only process that _writes_ data to the destination whenever documents from the relevant collections are changed. Existing entries on the target will always be **overwritten**. + +* Updates are implemented by executing consecutive DELETEs and INSERTs. + When a document is modified, the delete command is sent before the new data is inserted and both are processed under the same transaction on the destination side. + This applies to all ETL types with two exceptions: + * In RavenDB ETL, when documents are loaded to **the same** collection there is no need to send DELETE because the document on the other side has the same identifier and will just update it. + * in SQL ETL you can configure to use inserts only, which is a viable option for append-only systems. + +{NOTE: } + +**Securing ETL Processes for Encrypted Databases**: + +If your RavenDB database is encrypted, then you must not send data in an ETL process using a non-encrypted channel by default. +It means that the connection to the target must be secured: + +- In RavenDB ETL, a URL of a destination server has to use HTTPS + (a server certificate of the source server needs to be registered as a client certificate on the destination server). +- in SQL ETL, a connection string to an SQL database must specify encrypted connection (specific per SQL engine provided). + +This validation can be turned off by selecting the _Allow ETL on a non-encrypted communication channel_ option in the Studio, +or setting `AllowEtlOnNonEncryptedChannel` if the task is defined using the Client API. +Please note that in such cases, your data encrypted at rest _won't_ be protected in transit. + +{NOTE/} + +{PANEL/} + +{PANEL: Troubleshooting} + +ETL errors and warnings are [logged to files](../../../server/troubleshooting/logging) and displayed in the notification center panel. +You will be notified if any of the following events happen: + +- Connection error to the target +- JS script is invalid +- Transformation error +- Load error +- Slow SQL was detected + + +**Fallback Mode**: +If the ETL cannot proceed the load stage (e.g. it can't connect to the destination) then it enters the fallback mode. +The fallback mode means suspending the process and retrying it periodically. +The fallback time starts from 5 seconds and it's doubled on every consecutive error according to the time passed since the last error, +but it never crosses [`ETL.MaxFallbackTimeInSec`](../../../server/configuration/etl-configuration#etl.maxfallbacktimeinsec) configuration (default: 900 sec). + +Once the process is in the fallback mode, then the _Reconnect_ state is shown in the Studio. + +{PANEL/} + +## Related Articles + +### ETL +- [RavenDB ETL Task](../../../server/ongoing-tasks/etl/raven) +- [SQL ETL Task](../../../server/ongoing-tasks/etl/sql) +- [OLAP ETL Task](../../../server/ongoing-tasks/etl/olap) +- [Elasticsearch ETL Task](../../../server/ongoing-tasks/etl/elasticsearch) +- [Kafka ETL Task](../../../server/ongoing-tasks/etl/queue-etl/kafka) +- [RabbitMQ ETL Task](../../../server/ongoing-tasks/etl/queue-etl/rabbit-mq) +- [Azure Queue Storage ETL Task](../../../server/ongoing-tasks/etl/queue-etl/azure-queue) + +### Studio +- [Define RavenDB ETL Task in Studio](../../../studio/database/tasks/ongoing-tasks/ravendb-etl-task) + +### Sharding +- [Sharding Overview](../../../sharding/overview) +- [Sharding: ETL](../../../sharding/etl) diff --git a/Documentation/6.1/Raven.Documentation.Pages/studio/database/tasks/ongoing-tasks/azure-queue-storage-etl.markdown b/Documentation/6.1/Raven.Documentation.Pages/studio/database/tasks/ongoing-tasks/azure-queue-storage-etl.markdown index 84a0f43a17..3087ca5ea9 100644 --- a/Documentation/6.1/Raven.Documentation.Pages/studio/database/tasks/ongoing-tasks/azure-queue-storage-etl.markdown +++ b/Documentation/6.1/Raven.Documentation.Pages/studio/database/tasks/ongoing-tasks/azure-queue-storage-etl.markdown @@ -17,7 +17,7 @@ can be triggered to access and consume messages when the enqueued messages advance to the queue head. * This page explains how to create an Azure Queue Storage ETL task using the Studio. - [Learn here](../../../../server/ongoing-tasks/etl/queue-etl/azure-queue-storage) how to define an Azure Queue Storage ETL task using code. + [Learn here](../../../../server/ongoing-tasks/etl/queue-etl/azure-queue-storage) how to define an Azure Queue Storage ETL task using the Client API. * In this page: * [Open Azure Queue Storage ETL task view](../../../../studio/database/tasks/ongoing-tasks/azure-queue-storage-etl#open-azure-queue-storage-etl-task-view) From b7766de296c6582ea2bf82857c09f597882dab75 Mon Sep 17 00:00:00 2001 From: danielle9897 Date: Thu, 18 Jul 2024 16:32:33 +0300 Subject: [PATCH 10/25] RDoc-2882 The AQS ETL article - under the Server folder --- .../ongoing-tasks/etl/queue-etl/.docs.json | 44 ++-- .../etl/queue-etl/azure-queue.markdown | 204 +++++++++++++++ .../azure-queue-storage-etl.markdown | 2 + .../ETL/Queue/AzureQueueStorageEtl.cs | 239 ++++++++++++++++++ 4 files changed, 470 insertions(+), 19 deletions(-) create mode 100644 Documentation/6.1/Raven.Documentation.Pages/server/ongoing-tasks/etl/queue-etl/azure-queue.markdown create mode 100644 Documentation/6.1/Samples/csharp/Raven.Documentation.Samples/Server/OngoingTasks/ETL/Queue/AzureQueueStorageEtl.cs diff --git a/Documentation/6.1/Raven.Documentation.Pages/server/ongoing-tasks/etl/queue-etl/.docs.json b/Documentation/6.1/Raven.Documentation.Pages/server/ongoing-tasks/etl/queue-etl/.docs.json index c10a24719e..4da23deceb 100644 --- a/Documentation/6.1/Raven.Documentation.Pages/server/ongoing-tasks/etl/queue-etl/.docs.json +++ b/Documentation/6.1/Raven.Documentation.Pages/server/ongoing-tasks/etl/queue-etl/.docs.json @@ -1,20 +1,26 @@ [ - { - "Path": "overview.markdown", - "Name": "Overview", - "DiscussionId": "e8884541-a5ef-493e-8ba6-411a9b1a1c8a", - "Mappings": [] - }, - { - "Path": "kafka.markdown", - "Name": "Kafka ETL", - "DiscussionId": "98400991-8eb2-41f5-b364-d315890458f8", - "Mappings": [] - }, - { - "Path": "rabbit-mq.markdown", - "Name": "RabbitMQ ETL", - "DiscussionId": "1b5b21e5-5e51-4717-a467-4a31694271cf", - "Mappings": [] - } -] \ No newline at end of file + { + "Path": "overview.markdown", + "Name": "Overview", + "DiscussionId": "e8884541-a5ef-493e-8ba6-411a9b1a1c8a", + "Mappings": [] + }, + { + "Path": "kafka.markdown", + "Name": "Kafka ETL", + "DiscussionId": "98400991-8eb2-41f5-b364-d315890458f8", + "Mappings": [] + }, + { + "Path": "rabbit-mq.markdown", + "Name": "RabbitMQ ETL", + "DiscussionId": "1b5b21e5-5e51-4717-a467-4a31694271cf", + "Mappings": [] + }, + { + "Path": "azure-queue.markdown", + "Name": "Azure Queue Storage ETL", + "DiscussionId": "1b5b21e5-5e51-4717-a467-4a31694271cf", + "Mappings": [] + } +] diff --git a/Documentation/6.1/Raven.Documentation.Pages/server/ongoing-tasks/etl/queue-etl/azure-queue.markdown b/Documentation/6.1/Raven.Documentation.Pages/server/ongoing-tasks/etl/queue-etl/azure-queue.markdown new file mode 100644 index 0000000000..6ad2f6e80b --- /dev/null +++ b/Documentation/6.1/Raven.Documentation.Pages/server/ongoing-tasks/etl/queue-etl/azure-queue.markdown @@ -0,0 +1,204 @@ +# Queue ETL: Azure Queue Storage +--- + +{NOTE: } + +* Azure Queue Storage is a Microsoft Azure service that allows for the storage and retrieval of large numbers of messages, + enabling communication between applications by allowing them to asynchronously send and receive messages. + Each message in a queue can be up to 64 KB in size, and a queue can contain millions of messages, + providing a robust and scalable solution for data processing. + +* Create an **Azure Queue Storage ETL Task** to: + * Extract data from a RavenDB database + * Transform the data using one or more custom scripts + * Load the resulting JSON object to an Azure Queue destination as a CloudEvents message + +* Utilizing this task allows RavenDB to act as an event producer in an Azure Queue architecture. + +* [Azure Functions](https://learn.microsoft.com/en-us/azure/azure-functions/functions-overview?pivots=programming-language-csharp) + can be triggered to consume and process messages that are sent to Azure queues, + enabling powerful and flexible workflows. + +* Read more about Azure Queue Storage in the platform's [official documentation](https://learn.microsoft.com/en-us/azure/storage/queues/storage-queues-introduction). + +--- + +* This article focuses on how to create an Azure Queue Storage ETL task using from using the Client API. + To define an Azure Queue Storage ETL task from the Studio, see [Studio: Azure Queue Storage ETL Task](../../../../studio/database/tasks/ongoing-tasks/azure-queue-storage-etl). + For an **overview of Queue ETL tasks**, see [Queue ETL tasks overview](../../../../server/ongoing-tasks/etl/queue-etl/overview). + +* In this page: + * [Add an Azure Queue Storage connection string](../../../../server/ongoing-tasks/etl/queue-etl/azure-queue#add-an-azure-queue-storage-connection-string) + * [Authentication methods](../../../../server/ongoing-tasks/etl/queue-etl/azure-queue#authentication-methods) + * [Exmaple](../../../../server/ongoing-tasks/etl/queue-etl/azure-queue#example) + * [Syntax](../../../../server/ongoing-tasks/etl/queue-etl/azure-queue#syntax) + * [Add an Azure Queue Storage ETL task](../../../../server/ongoing-tasks/etl/queue-etl/azure-queue#add-an-azure-queue-storage-etl-task) + * [Example - basic](../../../../server/ongoing-tasks/etl/queue-etl/azure-queue#example-basic) + * [Example - delete processed documents](../../../../server/ongoing-tasks/etl/queue-etl/azure-queue#delete-processed-documents) + * [Syntax](../../../../server/ongoing-tasks/etl/queue-etl/azure-queue#syntax-1) + * [The transformation script](../../../../server/ongoing-tasks/etl/queue-etl/azure-queue#the-transformation-script) + * [The loadTo method](../../../../server/ongoing-tasks/etl/queue-etl/azure-queue#the-loadto-method) + +{NOTE/} + +--- + +{PANEL: Add an Azure Queue Storage connection string} + +Prior to setting up the ETL task, define a connection string that the task will use to access your Azure account. +The connection string includes the authorization credentials required to connect. + +--- + +#### Authentication methods: +There are three authenticaton methods available: + +* **Connection string** + * Provide a single string that includes all the options required to connect to your Azure account. + Learn more about Azure Storage connection strings [here](https://learn.microsoft.com/en-us/azure/storage/common/storage-configure-connection-string). + * Note: the following connection string parameters are mandatory: + * `AccountName` + * `DefaultEndpointsProtocol` + * `QueueEndpoint` (when using http protocol) +* **Entra ID** + * Use the Entra ID authorization method to achieve enhanced security by leveraging Microsoft Entra’s robust identity solutions. + * This approach minimizes the risks associated with exposed credentials commonly found in connection strings and enables + more granular control through [Role-Based Access Controls](https://learn.microsoft.com/en-us/azure/role-based-access-control/). +* **Paswordless** + * This authorization method authorizes a dedicated machine and can only be used in self-hosted mode. + * Passwordless authorization works only when the account on the machine is assigned the Storage Account Queue Data Contributor role; the Contributor role alone is inadequate. + +--- + +#### Example: + +{CODE add_azure_connection_string@Server\OngoingTasks\ETL\Queue\AzureQueueStorageEtl.cs /} + +--- + +#### Syntax: + +{CODE queue_connection_string@Server\OngoingTasks\ETL\Queue\AzureQueueStorageEtl.cs /} +{CODE queue_broker_type@Server\OngoingTasks\ETL\Queue\AzureQueueStorageEtl.cs /} +{CODE azure_con_str_settings@Server\OngoingTasks\ETL\Queue\AzureQueueStorageEtl.cs /} + +{PANEL/} + +{PANEL: Add an Azure Queue Storage ETL task} + +{NOTE: } + +
__Example - basic__: + +--- + +* In this example, the Azure Queue Storage ETL Task will - + * Extract source documents from the "Orders" collection in RavenDB. + * Process each "Order" document via a defined a script that creates a new `orderData` object. + * Load the `orderData` object to the "OrdersQueue" in an Azure Queue Storage. +* For more details about the script and the `loadTo` method, see [The transromation script](../../../../server/ongoing-tasks/etl/queue-etl/azure-queue#the-transformation-script) below. + +{CODE add_azure_etl_task@Server\OngoingTasks\ETL\Queue\AzureQueueStorageEtl.cs /} + +{NOTE/} +{NOTE: } + + __Example - delete processed documents__: + +--- + +* You have the option to delete documents from your RavenDB database once they have been processed by the Queue ETL task. + +* Set the optional `Queues` property in your ETL configuration with the list of Azure queues for which processed documents should be deleted. + +{CODE azure_delete_documents@Server\OngoingTasks\ETL\Queue\AzureQueueStorageEtl.cs /} + +{NOTE/} + +--- + +#### Syntax + +{CODE etl_configuration@Server\OngoingTasks\ETL\Queue\AzureQueueStorageEtl.cs /} + +{PANEL/} + +{PANEL: The transformation script} + +The [basic characteristics](../../../../server/ongoing-tasks/etl/basics) of an Azure Queue Storage ETL script are similar to those of other ETL types. +The script defines what data to **extract** from the source document, how to **transform** this data, and which Azure Queue to **load** it to. + +--- + +#### The loadTo method + +To specify which Azure queue to load the data into, use either of the following methods in your script. +The two methods are equivalent, offering alternative syntax: + +* **`loadTo(obj, {attributes})`** + * Here the target is specified as part of the function name. + * The target _<QueueName>_ in this syntax is Not a variable and cannot be used as one, + it is simply a string literal of the target's name. + +* **`loadTo('QueueName', obj, {attributes})`** + * Here the target is passed as an argument to the method. + * Separating the target name from the `loadTo` command makes it possible to include symbols like `'-'` and `'.'` in target names. + This is not possible when the `loadTo` syntax is used because including special characters in the name of a JavaScript function makes it invalid. + + | Parameter | Type | Description | + |----------------|--------|----------------------------------------------------------------------------------------------------------------------------------| + | **QueueName** | string | The name of the Azure Queue | + | **obj** | object | The object to transfer | + | **attributes** | object | An object with optional & required [CloudEvents attributes](../../../../server/ongoing-tasks/etl/queue-etl/overview#cloudevents) | + +For example, the following two calls, which load data to "OrdersQueue", are equivalent: + +* `loadToOrdersQueue(obj, {attributes})` +* `loadTo('OrdersQueue', obj, {attributes})` + +--- + +A sample script that process documents from the Orders collection: + +{CODE-BLOCK: JavaScript} +// Create an orderData object +// ========================== +var orderData = { + Id: id(this), + OrderLinesCount: this.Lines.length, + TotalCost: 0 +}; + +// Update the orderData's TotalCost field +// ====================================== +for (var i = 0; i < this.Lines.length; i++) { + var line = this.Lines[i]; + var cost = (line.Quantity * line.PricePerUnit) * ( 1 - line.Discount); + orderData.TotalCost += cost; +} + +// Load the object to the "OrdersQueue" in Azure +// ============================================= +loadToOrdersQueue(orderData, { + Id: id(this), + Type: 'com.example.promotions', + Source: '/promotion-campaigns/summer-sale' +}) +{CODE-BLOCK/} + +{PANEL/} + +## Related Articles + +### Server + +- [ETL Basics](../../../../server/ongoing-tasks/etl/basics) +- [Queue ETL Overview](../../../../server/ongoing-tasks/etl/queue-etl/overview) +- [RabbitMQ ETL](../../../../server/ongoing-tasks/etl/queue-etl/rabbit-mq) +- [Kafka ETL](../../../../server/ongoing-tasks/etl/queue-etl/kafka) + +### Studio + +- [Studio: Kafka ETL Task](../../../../studio/database/tasks/ongoing-tasks/kafka-etl-task) +- [Studio: RabbitMQ ETL Task](../../../../studio/database/tasks/ongoing-tasks/rabbitmq-etl-task) +- [Studio: Azure Queue Storage ETL Task](../../../../studio/database/tasks/ongoing-tasks/azure-queue-storage-etl) diff --git a/Documentation/6.1/Raven.Documentation.Pages/studio/database/tasks/ongoing-tasks/azure-queue-storage-etl.markdown b/Documentation/6.1/Raven.Documentation.Pages/studio/database/tasks/ongoing-tasks/azure-queue-storage-etl.markdown index 3087ca5ea9..b0c5ce8d06 100644 --- a/Documentation/6.1/Raven.Documentation.Pages/studio/database/tasks/ongoing-tasks/azure-queue-storage-etl.markdown +++ b/Documentation/6.1/Raven.Documentation.Pages/studio/database/tasks/ongoing-tasks/azure-queue-storage-etl.markdown @@ -16,6 +16,8 @@ [Azure Functions](https://learn.microsoft.com/en-us/azure/azure-functions/functions-bindings-storage-queue-trigger?tabs=python-v2%2Cisolated-process%2Cnodejs-v4%2Cextensionv5&pivots=programming-language-csharp) can be triggered to access and consume messages when the enqueued messages advance to the queue head. +--- + * This page explains how to create an Azure Queue Storage ETL task using the Studio. [Learn here](../../../../server/ongoing-tasks/etl/queue-etl/azure-queue-storage) how to define an Azure Queue Storage ETL task using the Client API. diff --git a/Documentation/6.1/Samples/csharp/Raven.Documentation.Samples/Server/OngoingTasks/ETL/Queue/AzureQueueStorageEtl.cs b/Documentation/6.1/Samples/csharp/Raven.Documentation.Samples/Server/OngoingTasks/ETL/Queue/AzureQueueStorageEtl.cs new file mode 100644 index 0000000000..5fbc00d42a --- /dev/null +++ b/Documentation/6.1/Samples/csharp/Raven.Documentation.Samples/Server/OngoingTasks/ETL/Queue/AzureQueueStorageEtl.cs @@ -0,0 +1,239 @@ +using System.Collections.Generic; +using Raven.Client.Documents; +using Raven.Client.Documents.Operations.ConnectionStrings; +using Raven.Client.Documents.Operations.ETL; +using Raven.Client.Documents.Operations.ETL.Queue; +namespace Raven.Documentation.Samples.Server.OngoingTasks.ETL.Queue +{ + public class AzureQueueStorageEtl + { + public void AddConnectionString() + { + using (var store = new DocumentStore()) + { + #region add_azure_connection_string + // Prepare the connection string: + // ============================== + var conStr = new QueueConnectionString + { + // Provide a name for this connection string + Name = "myAzureQueueConStr", + + // Set the broker type + BrokerType = QueueBrokerType.AzureQueueStorage, + + // In this example we provide a simple string for the connection string + AzureQueueStorageConnectionSettings = new AzureQueueStorageConnectionSettings() + { + ConnectionString = @"DefaultEndpointsProtocol=https; + AccountName=myAccountName; + AccountKey=myAccountKey; + EndpointSuffix=core.windows.net" + } + }; + + // Deploy (send) the connection string to the server via the PutConnectionStringOperation: + // ======================================================================================= + var res = store.Maintenance.Send( + new PutConnectionStringOperation(conStr)); + #endregion + } + } + + public void AddAzureQueueStorageEtlTask() + { + using (var store = new DocumentStore()) + { + #region add_azure_etl_task + // Define a transformation script for the task: + // ============================================ + Transformation transformation = new Transformation + { + // Define the input collections + Collections = { "Orders" }, + ApplyToAllDocuments = false, + + // The transformation script + Name = "scriptName", + Script = @" // Create an orderData object + // ========================== + var orderData = { + Id: id(this), + OrderLinesCount: this.Lines.length, + TotalCost: 0 + }; + + // Update the orderData's TotalCost field + // ====================================== + for (var i = 0; i < this.Lines.length; i++) { + var line = this.Lines[i]; + var cost = (line.Quantity * line.PricePerUnit) * ( 1 - line.Discount); + orderData.TotalCost += cost; + } + + // Load the object to the 'OrdersQueue' in Azure + // ============================================= + loadToOrdersQueue(orderData, { + Id: id(this), + Type: 'com.example.promotions', + Source: '/promotion-campaigns/summer-sale' + });" + }; + + // Define the Azure Queue Storage ETL task: + // ======================================== + var etlTask = new QueueEtlConfiguration() + { + BrokerType = QueueBrokerType.AzureQueueStorage, + + Name = "myAzureQueueEtlTaskName", + ConnectionStringName = "myAzureQueueConStr", + + Transforms = { transformation }, + + // Set to false to allow failover to another node + PinToMentorNode = false + }; + + // Deploy (send) the task to the server vial the AddEtlOperation: + // ============================================================== + store.Maintenance.Send(new AddEtlOperation(etlTask)); + #endregion + } + } + + public void DeleteProcessedDocuments() + { + using (var store = new DocumentStore()) + { + Transformation transformation = new Transformation(); + + #region azure_delete_documents + var etlTask = new QueueEtlConfiguration() + { + BrokerType = QueueBrokerType.AzureQueueStorage, + + Name = "myAzureQueueEtlTaskName", + ConnectionStringName = "myAzureQueueConStr", + + Transforms = { transformation }, + + // Define whether to delete documents from RavenDB after they sent to the target queue + Queues = new List() + { + new() + { + // The name of the Azure queue + Name = "Orders", + + // When set to 'true', + // documents that were processed by the transformation script will be deleted + // from RavenDB after the message is loaded to the "Orders" queue in Azure. + DeleteProcessedDocuments = true + } + } + }; + + store.Maintenance.Send(new AddEtlOperation(etlTask)); + #endregion + } + } + + private interface IFoo + { + #region queue_broker_type + public enum QueueBrokerType + { + None, + Kafka, + RabbitMq, + AzureQueueStorage + } + #endregion + } + + private class Definition + { + #region queue_connection_string + public class QueueConnectionString : ConnectionString + { + // Set the broker type to QueueBrokerType.AzureQueueStorage + // for an Azure Queue Storage connection string + public QueueBrokerType BrokerType { get; set; } + + // Configure this when setting a connection string for Kafka + public KafkaConnectionSettings KafkaConnectionSettings { get; set; } + + // Configure this when setting a connection string for RabbitMQ + public RabbitMqConnectionSettings RabbitMqConnectionSettings { get; set; } + + // Configure this when setting a connection string for Azure Queue Storage + public AzureQueueStorageConnectionSettings AzureQueueStorageConnectionSettings { get; set; } + } + #endregion + + public abstract class ConnectionString + { + public string Name { get; set; } + } + + #region azure_con_str_settings + public class AzureQueueStorageConnectionSettings + { + public EntraId EntraId { get; set; } + public string ConnectionString { get; set; } + public Passwordless Passwordless { get; set; } + } + + public class EntraId + { + public string StorageAccountName { get; set; } + public string TenantId { get; set; } + public string ClientId { get; set; } + public string ClientSecret { get; set; } + } + + public class Passwordless + { + public string StorageAccountName { get; set; } + } + #endregion + + #region etl_configuration + public sealed class QueueEtlConfiguration + { + // Set to QueueBrokerType.AzureQueueStorage to define an Azure Queue Storage ETL task + public QueueBrokerType BrokerType { get; set; } + // The ETL task name + public string Name { get; set; } + // The registered connection string name + public string ConnectionStringName { get; set; } + // List of transformation scripts + public List Transforms { get; set; } + // Optional configuration per queue + public List Queues { get; set; } + } + + public class Transformation + { + // The script name + public string Name { get; set; } + // The source RavenDB collections that serve as the input for the script + public List Collections { get; set; } + // Set whether to apply the script on all collections + public bool ApplyToAllDocuments { get; set; } + // The script itself + public string Script { get; set; } + } + + public class EtlQueue + { + // The Azure queue name + public string Name { get; set; } + // Delete processed documents whe set to 'true' + public bool DeleteProcessedDocuments { get; set; } + } + #endregion + } + } +} From 73fa12e559fa294827d0c0f5fbf0bb33592be1c0 Mon Sep 17 00:00:00 2001 From: danielle9897 Date: Thu, 18 Jul 2024 16:49:55 +0300 Subject: [PATCH 11/25] RDoc-2882 Remove 'partitionKey' from RabbitMQ sample script (for RavenDb-22630) --- .../etl/queue-etl/rabbit-mq.markdown | 1 - .../Server/OngoingTasks/ETL/Queue/Queue.cs | 38 +++++++++---------- .../etl/queue-etl/rabbit-mq.markdown | 1 - .../Server/OngoingTasks/ETL/Queue/Queue.cs | 38 +++++++++---------- 4 files changed, 36 insertions(+), 42 deletions(-) diff --git a/Documentation/5.4/Raven.Documentation.Pages/server/ongoing-tasks/etl/queue-etl/rabbit-mq.markdown b/Documentation/5.4/Raven.Documentation.Pages/server/ongoing-tasks/etl/queue-etl/rabbit-mq.markdown index a9e947a7eb..ced7c90ac2 100644 --- a/Documentation/5.4/Raven.Documentation.Pages/server/ongoing-tasks/etl/queue-etl/rabbit-mq.markdown +++ b/Documentation/5.4/Raven.Documentation.Pages/server/ongoing-tasks/etl/queue-etl/rabbit-mq.markdown @@ -73,7 +73,6 @@ for (var i = 0; i < this.Lines.length; i++) { // Attributes: Id, PartitionKey, Type, Source loadToOrders(orderData, `users`, { Id: id(this), - PartitionKey: id(this), Type: 'special-promotion', Source: '/promotion-campaigns/summer-sale' }); diff --git a/Documentation/5.4/Samples/csharp/Raven.Documentation.Samples/Server/OngoingTasks/ETL/Queue/Queue.cs b/Documentation/5.4/Samples/csharp/Raven.Documentation.Samples/Server/OngoingTasks/ETL/Queue/Queue.cs index 84328d688b..3c3cdce609 100644 --- a/Documentation/5.4/Samples/csharp/Raven.Documentation.Samples/Server/OngoingTasks/ETL/Queue/Queue.cs +++ b/Documentation/5.4/Samples/csharp/Raven.Documentation.Samples/Server/OngoingTasks/ETL/Queue/Queue.cs @@ -1,18 +1,18 @@ using System; -using System.Collections.Generic; -using Raven.Client.Documents; +using System.Collections.Generic; +using Raven.Client.Documents; using Raven.Client.Documents.Operations.Backups; -using Raven.Client.Documents.Operations.ConnectionStrings; -using Raven.Client.Documents.Operations.ETL; +using Raven.Client.Documents.Operations.ConnectionStrings; +using Raven.Client.Documents.Operations.ETL; using Raven.Client.Documents.Operations.ETL.ElasticSearch; using Raven.Client.Documents.Operations.ETL.OLAP; using Raven.Client.Documents.Operations.ETL.Queue; using Raven.Client.Documents.Operations.ETL.SQL; -namespace Raven.Documentation.Samples.Server.OngoingTasks.ETL.Queue -{ - public class ConnectionStrings +namespace Raven.Documentation.Samples.Server.OngoingTasks.ETL.Queue +{ + public class ConnectionStrings { - private interface IFoo + private interface IFoo { #region QueueBrokerType public enum QueueBrokerType @@ -23,13 +23,13 @@ public enum QueueBrokerType } #endregion - } - - public ConnectionStrings() - { - using (var store = new DocumentStore()) - { - #region add_rabbitMQ_connection-string + } + + public ConnectionStrings() + { + using (var store = new DocumentStore()) + { + #region add_rabbitMQ_connection-string var res = store.Maintenance.Send( new PutConnectionStringOperation( new QueueConnectionString @@ -42,9 +42,9 @@ public ConnectionStrings() #endregion } - using (var store = new DocumentStore()) + using (var store = new DocumentStore()) { - #region add_kafka_connection-string + #region add_kafka_connection-string var res = store.Maintenance.Send( new PutConnectionStringOperation( new QueueConnectionString @@ -241,7 +241,6 @@ public void AddRabbitmqEtlTask() loadToOrders(orderData, `routingKey`, { Id: id(this), - PartitionKey: id(this), Type: 'special-promotion', Source: '/promotion-campaigns/summer-sale' });", @@ -310,7 +309,6 @@ public void AddRabbitmqEtlTaskDeleteProcessedDocuments() loadToOrders(orderData, `routingKey`, { Id: id(this), - PartitionKey: id(this), Type: 'special-promotion', Source: '/promotion-campaigns/summer-sale' });", @@ -387,4 +385,4 @@ public class CloudEventAttributes #endregion } } -} +} diff --git a/Documentation/6.0/Raven.Documentation.Pages/server/ongoing-tasks/etl/queue-etl/rabbit-mq.markdown b/Documentation/6.0/Raven.Documentation.Pages/server/ongoing-tasks/etl/queue-etl/rabbit-mq.markdown index b2a55710aa..9921020b25 100644 --- a/Documentation/6.0/Raven.Documentation.Pages/server/ongoing-tasks/etl/queue-etl/rabbit-mq.markdown +++ b/Documentation/6.0/Raven.Documentation.Pages/server/ongoing-tasks/etl/queue-etl/rabbit-mq.markdown @@ -73,7 +73,6 @@ for (var i = 0; i < this.Lines.length; i++) { // Attributes: Id, PartitionKey, Type, Source loadToOrders(orderData, `users`, { Id: id(this), - PartitionKey: id(this), Type: 'special-promotion', Source: '/promotion-campaigns/summer-sale' }); diff --git a/Documentation/6.0/Samples/csharp/Raven.Documentation.Samples/Server/OngoingTasks/ETL/Queue/Queue.cs b/Documentation/6.0/Samples/csharp/Raven.Documentation.Samples/Server/OngoingTasks/ETL/Queue/Queue.cs index 84328d688b..3c3cdce609 100644 --- a/Documentation/6.0/Samples/csharp/Raven.Documentation.Samples/Server/OngoingTasks/ETL/Queue/Queue.cs +++ b/Documentation/6.0/Samples/csharp/Raven.Documentation.Samples/Server/OngoingTasks/ETL/Queue/Queue.cs @@ -1,18 +1,18 @@ using System; -using System.Collections.Generic; -using Raven.Client.Documents; +using System.Collections.Generic; +using Raven.Client.Documents; using Raven.Client.Documents.Operations.Backups; -using Raven.Client.Documents.Operations.ConnectionStrings; -using Raven.Client.Documents.Operations.ETL; +using Raven.Client.Documents.Operations.ConnectionStrings; +using Raven.Client.Documents.Operations.ETL; using Raven.Client.Documents.Operations.ETL.ElasticSearch; using Raven.Client.Documents.Operations.ETL.OLAP; using Raven.Client.Documents.Operations.ETL.Queue; using Raven.Client.Documents.Operations.ETL.SQL; -namespace Raven.Documentation.Samples.Server.OngoingTasks.ETL.Queue -{ - public class ConnectionStrings +namespace Raven.Documentation.Samples.Server.OngoingTasks.ETL.Queue +{ + public class ConnectionStrings { - private interface IFoo + private interface IFoo { #region QueueBrokerType public enum QueueBrokerType @@ -23,13 +23,13 @@ public enum QueueBrokerType } #endregion - } - - public ConnectionStrings() - { - using (var store = new DocumentStore()) - { - #region add_rabbitMQ_connection-string + } + + public ConnectionStrings() + { + using (var store = new DocumentStore()) + { + #region add_rabbitMQ_connection-string var res = store.Maintenance.Send( new PutConnectionStringOperation( new QueueConnectionString @@ -42,9 +42,9 @@ public ConnectionStrings() #endregion } - using (var store = new DocumentStore()) + using (var store = new DocumentStore()) { - #region add_kafka_connection-string + #region add_kafka_connection-string var res = store.Maintenance.Send( new PutConnectionStringOperation( new QueueConnectionString @@ -241,7 +241,6 @@ public void AddRabbitmqEtlTask() loadToOrders(orderData, `routingKey`, { Id: id(this), - PartitionKey: id(this), Type: 'special-promotion', Source: '/promotion-campaigns/summer-sale' });", @@ -310,7 +309,6 @@ public void AddRabbitmqEtlTaskDeleteProcessedDocuments() loadToOrders(orderData, `routingKey`, { Id: id(this), - PartitionKey: id(this), Type: 'special-promotion', Source: '/promotion-campaigns/summer-sale' });", @@ -387,4 +385,4 @@ public class CloudEventAttributes #endregion } } -} +} From 083e78ce7711fd206a95dededb642f8a94aff9cf Mon Sep 17 00:00:00 2001 From: danielle9897 Date: Thu, 18 Jul 2024 22:34:48 +0300 Subject: [PATCH 12/25] RDoc-2882 Update Kafka & RabbitMQ articles (under Server) to match + Place common content in overview --- .../server/ongoing-tasks/etl/basics.markdown | 40 ++- .../etl/queue-etl/azure-queue.markdown | 9 +- .../etl/queue-etl/kafka.markdown | 179 ++++++++++++++ .../etl/queue-etl/overview.markdown | 50 +++- .../etl/queue-etl/rabbit-mq.markdown | 199 +++++++++++++++ .../ETL/Queue/AzureQueueStorageEtl.cs | 64 ++--- .../Server/OngoingTasks/ETL/Queue/KafkaEtl.cs | 227 +++++++++++++++++ .../OngoingTasks/ETL/Queue/RabbitMqEtl.cs | 229 ++++++++++++++++++ 8 files changed, 938 insertions(+), 59 deletions(-) create mode 100644 Documentation/6.1/Raven.Documentation.Pages/server/ongoing-tasks/etl/queue-etl/kafka.markdown create mode 100644 Documentation/6.1/Raven.Documentation.Pages/server/ongoing-tasks/etl/queue-etl/rabbit-mq.markdown create mode 100644 Documentation/6.1/Samples/csharp/Raven.Documentation.Samples/Server/OngoingTasks/ETL/Queue/KafkaEtl.cs create mode 100644 Documentation/6.1/Samples/csharp/Raven.Documentation.Samples/Server/OngoingTasks/ETL/Queue/RabbitMqEtl.cs diff --git a/Documentation/6.1/Raven.Documentation.Pages/server/ongoing-tasks/etl/basics.markdown b/Documentation/6.1/Raven.Documentation.Pages/server/ongoing-tasks/etl/basics.markdown index 496fb38d7f..19b290e332 100644 --- a/Documentation/6.1/Raven.Documentation.Pages/server/ongoing-tasks/etl/basics.markdown +++ b/Documentation/6.1/Raven.Documentation.Pages/server/ongoing-tasks/etl/basics.markdown @@ -117,7 +117,7 @@ if (this.ReportsTo !== null) managerName = manager.FirstName + " " + manager.LastName; } -// Load the object to a target collection by the name of "EmployeesWithManager" +// Load the object to a target destination by the name of "EmployeesWithManager" loadToEmployeesWithManager({ Name: this.FirstName + " " + this.LastName, Title: this.Title , @@ -130,7 +130,8 @@ loadToEmployeesWithManager({ #### Syntax -In addition to the ECMAScript 5.1 API, RavenDB introduces the following functions and members that can be used in the transformation script: +In addition to the ECMAScript 5.1 API, +RavenDB introduces the following functions and members that can be used in the transformation script: |---|---|---| | `this` | object | The current document (with metadata) | @@ -140,7 +141,7 @@ In addition to the ECMAScript 5.1 API, RavenDB introduces the following function Specific ETL functions: |---|---|---| -| `loadTo` | function | Load an object to the specified target.
This command has several different syntax options, see the general details [below](../../../server/ongoing-tasks/etl/basics#load) and in each ETL type documentation.
**Note:**
An object will only be sent to the destination if the `loadTo` method is called. | +| `loadTo` | function | Load an object to the specified target.
This command has several syntax options,
see details [below](../../../server/ongoing-tasks/etl/basics#themethod).
**Note:**
An object will only be sent to the destination if the `loadTo` method is called. | | Attachments: ||| | `loadAttachment(name)` | function | Load an attachment of the current document. | | `hasAttachment(name)` | function | Check if an attachment with a given name exists for the current document. | @@ -157,13 +158,20 @@ Specific ETL functions: An object will only be sent to the destination if the `loadTo` method is called. {INFO /} -An object can be loaded to a specified target using one of the these methods: +To specify which target to load the data into, use either of the following overloads in your script. +The two methods are equivalent, offering alternative syntax. -* The target is specified as a part of the `loadTo` command: `loadToTarget(obj)` - E.g., `loadToOrders(obj)` +* **`loadTo(obj, {attributes})`** + * Here the target is specified as part of the function name. + * The _<TargetName>_ in this syntax is Not a variable and cannot be used as one, + it is simply a string literal of the target's name. -* The target is specified as an argument of the `loadTo` command: `loadTo('Target', obj)` - E.g., `loadTo('Orders', obj)` +* **`loadTo('TargetName', obj, {attributes})`** + * Here the target is passed as an argument to the method. + * Separating the target name from the `loadTo` function name makes it possible to include symbols like `'-'` and `'.'` in target names. + This is not possible when the `loadTo` syntax is used because including special characters in the name of a JavaScript function makes it invalid. + * This syntax may vary for some ETL types. + Find the accurate syntax for each ETL type in the type's specific documentation. --- @@ -176,24 +184,12 @@ For each ETL type, the target must be: * Kafka ETL: a _topic_ name * RabbitMQ ETL: an _exchange_ name * Azure Queue Storage ETL: a _queue_ name - ---- - -**Note**: - -* The target name is Not a variable and cannot be used as one; it is simply a string literal of the target's name. - -* Separating the target name from the `loadTo` command makes it possible to include symbols like `-` and `.` in target names. - This is not possible when using `loadToOrders` syntax because special characters are invalid in the name of a JavaScript function. - -* Note that the general syntax specified above, `loadTo('Target', obj)`, varies for some ETL types. - Find the accurate syntax for each ETL type in the type's specific documentation. {NOTE/} {INFO: } -**Batch processing**: +#### Batch processing Documents are extracted and transformed by the ETL process in a batch manner. The number of documents processed depends on the following configuration limits: @@ -219,7 +215,7 @@ The number of documents processed depends on the following configuration limits: * Loading the results to the target destination is the last stage. * In contrast to [Replication](../../../server/clustering/replication/replication), - ETL is a push-only process that _writes_ data to the destination whenever documents from the relevant collections are changed. Existing entries on the target will always be **overwritten**. + ETL is a push-only process that _writes_ data to the destination whenever documents from the relevant collections are changed. **Existing entries on the target will always be overwritten**. * Updates are implemented by executing consecutive DELETEs and INSERTs. When a document is modified, the delete command is sent before the new data is inserted and both are processed under the same transaction on the destination side. diff --git a/Documentation/6.1/Raven.Documentation.Pages/server/ongoing-tasks/etl/queue-etl/azure-queue.markdown b/Documentation/6.1/Raven.Documentation.Pages/server/ongoing-tasks/etl/queue-etl/azure-queue.markdown index 6ad2f6e80b..9ef3436dd8 100644 --- a/Documentation/6.1/Raven.Documentation.Pages/server/ongoing-tasks/etl/queue-etl/azure-queue.markdown +++ b/Documentation/6.1/Raven.Documentation.Pages/server/ongoing-tasks/etl/queue-etl/azure-queue.markdown @@ -23,7 +23,7 @@ --- -* This article focuses on how to create an Azure Queue Storage ETL task using from using the Client API. +* This article focuses on how to create an Azure Queue Storage ETL task using the Client API. To define an Azure Queue Storage ETL task from the Studio, see [Studio: Azure Queue Storage ETL Task](../../../../studio/database/tasks/ongoing-tasks/azure-queue-storage-etl). For an **overview of Queue ETL tasks**, see [Queue ETL tasks overview](../../../../server/ongoing-tasks/etl/queue-etl/overview). @@ -94,9 +94,9 @@ There are three authenticaton methods available: * In this example, the Azure Queue Storage ETL Task will - * Extract source documents from the "Orders" collection in RavenDB. - * Process each "Order" document via a defined a script that creates a new `orderData` object. + * Process each "Order" document using a defined script that creates a new `orderData` object. * Load the `orderData` object to the "OrdersQueue" in an Azure Queue Storage. -* For more details about the script and the `loadTo` method, see [The transromation script](../../../../server/ongoing-tasks/etl/queue-etl/azure-queue#the-transformation-script) below. +* For more details about the script and the `loadTo` method, see the [transromation script](../../../../server/ongoing-tasks/etl/queue-etl/azure-queue#the-transformation-script) section below. {CODE add_azure_etl_task@Server\OngoingTasks\ETL\Queue\AzureQueueStorageEtl.cs /} @@ -126,7 +126,8 @@ There are three authenticaton methods available: {PANEL: The transformation script} The [basic characteristics](../../../../server/ongoing-tasks/etl/basics) of an Azure Queue Storage ETL script are similar to those of other ETL types. -The script defines what data to **extract** from the source document, how to **transform** this data, and which Azure Queue to **load** it to. +The script defines what data to **extract** from the source document, how to **transform** this data, +and which Azure Queue to **load** it to. --- diff --git a/Documentation/6.1/Raven.Documentation.Pages/server/ongoing-tasks/etl/queue-etl/kafka.markdown b/Documentation/6.1/Raven.Documentation.Pages/server/ongoing-tasks/etl/queue-etl/kafka.markdown new file mode 100644 index 0000000000..c7b2ffc82f --- /dev/null +++ b/Documentation/6.1/Raven.Documentation.Pages/server/ongoing-tasks/etl/queue-etl/kafka.markdown @@ -0,0 +1,179 @@ +# Queue ETL: Apache Kafka +--- + +{NOTE: } + +* Apache Kafka is a distributed, high-performance, transactional messaging platform that remains performant + as the number of messages it needs to process increases and the number of events it needs to stream climbs to the big-data zone. + +* Create a **Kafka ETL Task** to: + * Extract data from a RavenDB database + * Transform the data using one or more custom scripts + * Load the resulting JSON object to a Kafka destination as a CloudEvents message + +* Utilizing this task allows RavenDB to act as an event producer in a Kafka architecture. + +* Read more about Kafka clusters, brokers, topics, partitions, and other related subjects, + in the platform's [official documentation](https://kafka.apache.org/documentation/#gettingStarted). + +--- + +* This article focuses on how to create a Kafka ETL task using the Client API. + To define a Kafka ETL task from the Studio, see [Studio: Kafka ETL Task](../../../../studio/database/tasks/ongoing-tasks/kafka-etl-task). + For an **overview of Queue ETL tasks**, see [Queue ETL tasks overview](../../../../server/ongoing-tasks/etl/queue-etl/overview). + +* In this page: + * [Add a Kafka connection string](../../../../server/ongoing-tasks/etl/queue-etl/kafka#add-a-kafka-connection-string) + * [Exmaple](../../../../server/ongoing-tasks/etl/queue-etl/kafka#example) + * [Syntax](../../../../server/ongoing-tasks/etl/queue-etl/kafka#syntax) + * [Add a Kafka ETL task](../../../../server/ongoing-tasks/etl/queue-etl/kafka#add-a-kafka-etl-task) + * [Example - basic](../../../../server/ongoing-tasks/etl/queue-etl/kafka#example-basic) + * [Example - delete processed documents](../../../../server/ongoing-tasks/etl/queue-etl/kafka#delete-processed-documents) + * [Syntax](../../../../server/ongoing-tasks/etl/queue-etl/kafka#syntax-1) + * [The transformation script](../../../../server/ongoing-tasks/etl/queue-etl/kafka#the-transformation-script) + * [The loadTo method](../../../../server/ongoing-tasks/etl/queue-etl/kafka#the-loadto-method) + +{NOTE/} + +--- + +{PANEL: Add a Kafka connection string} + +Before setting up the ETL task, define a connection string that the task will use to connect to the message broker's bootstrap servers. + +--- + +#### Example + +{CODE add_kafka_connection_string@Server\OngoingTasks\ETL\Queue\KafkaEtl.cs /} + +--- + +#### Syntax + +{CODE queue_connection_string@Server\OngoingTasks\ETL\Queue\KafkaEtl.cs /} +{CODE queue_broker_type@Server\OngoingTasks\ETL\Queue\KafkaEtl.cs /} +{CODE kafka_con_str_settings@Server\OngoingTasks\ETL\Queue\KafkaEtl.cs /} + +{PANEL/} + +{PANEL: Add a Kafka ETL task} + +{NOTE: } + +
__Example - basic__: + +--- + +* In this example, the Kafka ETL Task will - + * Extract source documents from the "Orders" collection in RavenDB. + * Process each "Order" document using a defined script that creates a new `orderData` object. + * Load the `orderData` object to the "OrdersTopic" in a Kafka broker. +* For more details about the script and the `loadTo` method, see the [transromation script](../../../../server/ongoing-tasks/etl/queue-etl/kafka#the-transformation-script) section below. + +{CODE add_kafka_etl_task@Server\OngoingTasks\ETL\Queue\KafkaEtl.cs /} + +{NOTE/} +{NOTE: } + + __Example - delete processed documents__: + +--- + +* You have the option to delete documents from your RavenDB database once they have been processed by the Queue ETL task. + +* Set the optional `Queues` property in your ETL configuration with the list of Kafka topics for which processed documents should be deleted. + +{CODE kafka_delete_documents@Server\OngoingTasks\ETL\Queue\KafkaEtl.cs /} + +{NOTE/} + +--- + +#### Syntax + +{CODE etl_configuration@Server\OngoingTasks\ETL\Queue\KafkaEtl.cs /} + +{PANEL/} + +{PANEL: The transformation script} + +The [basic characteristics](../../../../server/ongoing-tasks/etl/basics) of a Kafka ETL script are similar to those of other ETL types. +The script defines what data to **extract** from the source document, how to **transform** this data, +and which Kafka Topic to **load** it to. + +--- + +#### The loadTo method + +To specify which Kafka topic to load the data into, use either of the following methods in your script. +The two methods are equivalent, offering alternative syntax: + + * **`loadTo(obj, {attributes})`** + * Here the target is specified as part of the function name. + * The target _<TopicName>_ in this syntax is Not a variable and cannot be used as one, + it is simply a string literal of the target's name. + + * **`loadTo('TopicName', obj, {attributes})`** + * Here the target is passed as an argument to the method. + * Separating the target name from the `loadTo` command makes it possible to include symbols like `'-'` and `'.'` in target names. + This is not possible when the `loadTo` syntax is used because including special characters in the name of a JavaScript function makes it invalid. + + | Parameter | Type | Description | + |----------------|--------|----------------------------------------------------------------------------------------------------------------------------------| + | **TopicName** | string | The name of the Kafka topic | + | **obj** | object | The object to transfer | + | **attributes** | object | An object with optional & required [CloudEvents attributes](../../../../server/ongoing-tasks/etl/queue-etl/overview#cloudevents) | + +For example, the following two calls, which load data to "OrdersTopic", are equivalent: + + * `loadToOrdersTopic(obj, {attributes})` + * `loadTo('OrdersTopic', obj, {attributes})` + +--- + +A sample script that process documents from the Orders collection: + +{CODE-BLOCK: JavaScript} +// Create an orderData object +// ========================== +var orderData = { + Id: id(this), + OrderLinesCount: this.Lines.length, + TotalCost: 0 +}; + +// Update the orderData's TotalCost field +// ====================================== +for (var i = 0; i < this.Lines.length; i++) { + var line = this.Lines[i]; + var cost = (line.Quantity * line.PricePerUnit) * ( 1 - line.Discount); + orderData.TotalCost += cost; +} + +// Load the object to the "OrdersTopic" in Kafka +// ============================================= +loadToOrders(orderData, { + Id: id(this), + PartitionKey: id(this), + Type: 'com.example.promotions', + Source: '/promotion-campaigns/summer-sale' +}) +{CODE-BLOCK/} + +{PANEL/} + +## Related Articles + +### Server + +- [ETL Basics](../../../../server/ongoing-tasks/etl/basics) +- [Queue ETL Overview](../../../../server/ongoing-tasks/etl/queue-etl/overview) +- [RabbitMQ ETL](../../../../server/ongoing-tasks/etl/queue-etl/rabbit-mq) +- [Azure Queue Storage ETL](../../../../server/ongoing-tasks/etl/queue-etl/azure-queue) + +### Studio + +- [Studio: Kafka ETL Task](../../../../studio/database/tasks/ongoing-tasks/kafka-etl-task) +- [Studio: RabbitMQ ETL Task](../../../../studio/database/tasks/ongoing-tasks/rabbitmq-etl-task) +- [Studio: Azure Queue Storage ETL Task](../../../../studio/database/tasks/ongoing-tasks/azure-queue-storage-etl) diff --git a/Documentation/6.1/Raven.Documentation.Pages/server/ongoing-tasks/etl/queue-etl/overview.markdown b/Documentation/6.1/Raven.Documentation.Pages/server/ongoing-tasks/etl/queue-etl/overview.markdown index 05b78175b0..f59d76b6d7 100644 --- a/Documentation/6.1/Raven.Documentation.Pages/server/ongoing-tasks/etl/queue-etl/overview.markdown +++ b/Documentation/6.1/Raven.Documentation.Pages/server/ongoing-tasks/etl/queue-etl/overview.markdown @@ -11,13 +11,17 @@ * **RabbitMQ** * **Azure Queue Storage** -* This functionality is achieved by defining [Queue ETL tasks](../../../../server/ongoing-tasks/etl/queue-etl/overview#supported-message-brokers) within a RavenDB database. +* This functionality is achieved by defining [Queue ETL tasks](../../../../server/ongoing-tasks/etl/queue-etl/overview#queue-etl-tasks) within a RavenDB database. * RavenDB can also function as a _Consumer_. To learn about RavenDB's role as a _Consumer_ please refer to the [Queue Sink section](../../../../server/ongoing-tasks/queue-sink/overview). * In this page: * [Queue ETL tasks](../../../../server/ongoing-tasks/etl/queue-etl/overview#queue-etl-tasks) + * [Data delivery](../../../../server/ongoing-tasks/etl/queue-etl/overview#data-delivery) + * [What is transferred](../../../../server/ongoing-tasks/etl/queue-etl/overview#what-is-transferred) + * [How are messages produced and consumed](../../../../server/ongoing-tasks/etl/queue-etl/overview#how-are-messages-produced-and-consumed) + * [Idempotence and message duplication](../../../../server/ongoing-tasks/etl/queue-etl/overview#idempotence-and-message-duplication) * [CloudEvents](../../../../server/ongoing-tasks/etl/queue-etl/overview#cloudevents) * [Task statistics](../../../../server/ongoing-tasks/etl/queue-etl/overview#task-statistics) @@ -49,6 +53,49 @@ These ETL tasks: {PANEL/} +{PANEL: Data delivery} + +{NOTE: } + +#### What is transferred + +* **Documents only** + A Queue ETL task transfers documents only. + Document extensions like attachments, counters, or time series, will not be transferred. +* **CloudEvents messages** + JSON objects produced by the task's transformation script are wrapped + and delivered as [CloudEvents Messages](../../../../server/ongoing-tasks/etl/queue-etl/overview#cloudevents). + +{NOTE/} +{NOTE: } + +#### How are messages produced and consumed + +* The Queue ETL task will send the messages it produces to the target using a **connection string**, + which specifies the destination and credentials required to authorize the connection. + Find the specific syntax for defining a connection string per task in each task's documentation. +* Each message will be added to the tail of its assigned queue according to the transformation script. + As earlier messages are processed, it will advance to the head of the queue, becoming available for consumers. +* RavenDB publishes messages to the designated brokers using [transactions and batches](../../../../server/ongoing-tasks/etl/basics#batch-processing), + creating a batch of messages and opening a transaction to the destination queue for the batch. + +{NOTE/} +{NOTE: } + +#### Idempotence and message duplication + +* RavenDB is an **idempotent producer**, which typically does not send duplicate messages to queues. +* However, it is possible that duplicate messages will be sent to the broker. + For example: + Different nodes of a RavenDB cluster are regarded as different producers by the broker. + If the node responsible for the ETL task fails while sending a batch of messages, + the new responsible node may resend messages that were already received by the broker. +* Therefore, if processing each message only once is important to the consumer, + it is **the consumer's responsibility** to verify the uniqueness of each consumed message. + +{NOTE/} +{PANEL/} + {PANEL: CloudEvents} * After preparing a JSON object that needs to be sent to a message broker, @@ -62,7 +109,6 @@ These ETL tasks: | **id** | `string` | [Event identifier](https://github.com/cloudevents/spec/blob/main/cloudevents/spec.md#id) | The document Change Vector | | **type** | `string` | [Event type](https://github.com/cloudevents/spec/blob/main/cloudevents/spec.md#type) | "ravendb.etl.put" | | **source** | `string` | [Event context](https://github.com/cloudevents/spec/blob/main/cloudevents/spec.md#source-1) | `//` | - | **specversion** | `string` | [CloudEvents version used](https://github.com/cloudevents/spec/blob/main/cloudevents/spec.md#specversion) | `V1_0` | * The optional 'partitionkey' attribute can also be added. Currently, it is only implemented by [Kafka ETL](../../../../server/ongoing-tasks/etl/queue-etl/kafka). diff --git a/Documentation/6.1/Raven.Documentation.Pages/server/ongoing-tasks/etl/queue-etl/rabbit-mq.markdown b/Documentation/6.1/Raven.Documentation.Pages/server/ongoing-tasks/etl/queue-etl/rabbit-mq.markdown new file mode 100644 index 0000000000..8c21558627 --- /dev/null +++ b/Documentation/6.1/Raven.Documentation.Pages/server/ongoing-tasks/etl/queue-etl/rabbit-mq.markdown @@ -0,0 +1,199 @@ +# Queue ETL: RabbitMQ +--- + +{NOTE: } + +* RabbitMQ exchanges are designed to disperse data to multiple queues, + creating a flexible data channeling system that can easily handle complex message streaming scenarios. + +* Create a **RabbitMQ ETL Task** to: + * Extract data from a RavenDB database + * Transform the data using one or more custom scripts + * Load the resulting JSON object to a RabbitMQ destination as a CloudEvents message + +* Utilizing this task allows RavenDB to act as an event producer in a RabbitMQ architecture. + +* Read more about RabbitMQ in the platform's [official documentation](https://www.rabbitmq.com/). + +--- + +* This article focuses on how to create a RabbitMQ ETL task using the Client API. + To define a RabbitMQ ETL task from the Studio see [Studio: RabbitMQ ETL Task](../../../../studio/database/tasks/ongoing-tasks/rabbitmq-etl-task). + For an **overview of Queue ETL tasks**, see [Queue ETL tasks overview](../../../../server/ongoing-tasks/etl/queue-etl/overview). + +* In this page: + * [Add a RabbitMQ connection string](../../../../server/ongoing-tasks/etl/queue-etl/rabbit-mq#add-a-rabbitmq-connection-string) + * [Exmaple](../../../../server/ongoing-tasks/etl/queue-etl/rabbit-mq#example) + * [Syntax](../../../../server/ongoing-tasks/etl/queue-etl/rabbit-mq#syntax) + * [Add a RabbitMQ ETL task](../../../../server/ongoing-tasks/etl/queue-etl/rabbit-mq#add-a-rabbitmq-etl-task) + * [Example - basic](../../../../server/ongoing-tasks/etl/queue-etl/rabbit-mq#example-basic) + * [Example - delete processed documents](../../../../server/ongoing-tasks/etl/queue-etl/rabbit-mq#delete-processed-documents) + * [Syntax](../../../../server/ongoing-tasks/etl/queue-etl/rabbit-mq#syntax-1) + * [The transformation script](../../../../server/ongoing-tasks/etl/queue-etl/rabbit-mq#the-transformation-script) + * [The loadTo method](../../../../server/ongoing-tasks/etl/queue-etl/rabbit-mq#the-loadto-method) + * [Available method overloads](../../../../server/ongoing-tasks/etl/queue-etl/rabbit-mq#available-method-overloads) + +{NOTE/} + +--- + +{PANEL: Add a RabbitMQ connection string} + +Before setting up the ETL task, define a connection string that the task will use to connect to RabbitMQ. + +--- + +#### Example + +{CODE add_rabbitMq_connection_string@Server\OngoingTasks\ETL\Queue\RabbitMqEtl.cs /} + +--- + +#### Syntax + +{CODE queue_connection_string@Server\OngoingTasks\ETL\Queue\RabbitMqEtl.cs /} +{CODE queue_broker_type@Server\OngoingTasks\ETL\Queue\RabbitMqEtl.cs /} +{CODE rabbitMq_con_str_settings@Server\OngoingTasks\ETL\Queue\RabbitMqEtl.cs /} + +{PANEL/} + +{PANEL: Add a RabbitMQ ETL task} + +{NOTE: } + + __Example - basic__: + +--- + +* In this example, the RabbitMQ ETL Task will - + * Extract source documents from the "Orders" collection in RavenDB. + * Process each "Order" document using a defined script that creates a new `orderData` object. + * Load the `orderData` object to the "OrdersExchange" in a RabbitMQ broker. +* For more details about the script and the `loadTo` method overloads, see the [transromation script](../../../../server/ongoing-tasks/etl/queue-etl/rabbit-mq#the-transformation-script) section below. + +{CODE add_rabbitMq_etl_task@Server\OngoingTasks\ETL\Queue\RabbitMqEtl.cs /} + +{NOTE/} +{NOTE: } + + __Example - delete processed documents__: + +--- + +* You have the option to delete documents from your RavenDB database once they have been processed by the Queue ETL task. + +* Set the optional `Queues` property in your ETL configuration with the list of RabbitMQ queues for which processed documents should be deleted. + +{CODE rabbitMq_delete_documents@Server\OngoingTasks\ETL\Queue\RabbitMqEtl.cs /} + +{NOTE/} + +--- + +#### Syntax + +{CODE etl_configuration@Server\OngoingTasks\ETL\Queue\RabbitMqEtl.cs /} + +{PANEL/} + +{PANEL: The transformation script} + +The [basic characteristics](../../../../server/ongoing-tasks/etl/basics) of a RabbitMQ ETL script are similar to those of other ETL types. +The script defines what data to **extract** from the source document, how to **transform** this data, +and which RabbitMQ Exchange to **load** it to. + +--- + +#### The loadTo method + +To specify which RabbitMQ Exchange to load the data into, use either of the following methods in your script. +The two methods are equivalent, offering alternative syntax: + + * **`loadTo(obj, 'routingKey', {attributes})`** + * Here the target is specified as part of the function name. + * The target _<ExchangeName>_ in this syntax is Not a variable and cannot be used as one, + it is simply a string literal of the target's name. + + * **`loadTo('ExchangeName', obj, 'routingKey', {attributes})`** + * Here the target is passed as an argument to the method. + * Separating the target name from the `loadTo` command makes it possible to include symbols like `'-'` and `'.'` in target names. + This is not possible when the `loadTo` syntax is used because including special characters in the name of a JavaScript function makes it invalid. + + | Parameter | Type | Description | + |------------------|---------|------------------------------------------------------------------------------------------------------------------------------| + | **ExchangeName** | string | The name of the RabbitMQ exchange. | + | **obj** | object | The object to transfer. | + | **routingKey** | string | The RabbitMQ exchange evaluates this attribute to determine how to route the message to queues based on the exchange type. | + | **attributes** | object | An object with [CloudEvents attributes](../../../../server/ongoing-tasks/etl/queue-etl/overview#cloudevents). | + +For example, the following two calls, which load data to the Orders exchange, are equivalent: + + * `loadToOrdersExchange(obj, 'users', {attributes})` + * `loadTo('OrdersExchange', obj, 'users', {attributes})` + +--- + +#### Available method overloads + + * `loadTo('', obj, 'routingKey', {attributes})` + When replacing the exchange name with an empty string, + the message will be routed using the routingKey via the default exchange, which is predefined by the broker. + + * `loadTo(obj, {attributes})` + When omitting the routingKey, messages delivery will depend on the exchange type. + + * `loadTo(obj, 'routingKey')` + When omitting the attributes, default attribute values will be assigned. + + * `loadTo(obj)` + + {INFO: } + By default we define exchanges on our own with **Fanout** type so the routing keys are ignored. + {INFO/} + +--- + +A sample script that process documents from the Orders collection: + +{CODE-BLOCK: JavaScript} +// Create an orderData object +// ========================== +var orderData = { + Id: id(this), + OrderLinesCount: this.Lines.length, + TotalCost: 0 +}; + +// Update the orderData's TotalCost field +// ====================================== +for (var i = 0; i < this.Lines.length; i++) { + var line = this.Lines[i]; + var cost = (line.Quantity * line.PricePerUnit) * ( 1 - line.Discount); + orderData.TotalCost += cost; +} + +// Load the object to "OrdersExchange" in RabbitMQ +// =============================================== +loadToOrdersExchange(orderData, 'users-queue', { + Id: id(this), + Type: 'com.example.promotions', + Source: '/promotion-campaigns/summer-sale' +}) +{CODE-BLOCK/} + +{PANEL/} + +## Related Articles + +### Server + +- [ETL Basics](../../../../server/ongoing-tasks/etl/basics) +- [Queue ETL Overview](../../../../server/ongoing-tasks/etl/queue-etl/overview) +- [Kafka ETL](../../../../server/ongoing-tasks/etl/queue-etl/kafka) +- [Azure Queue Storage ETL](../../../../server/ongoing-tasks/etl/queue-etl/azure-queue) + +### Studio + +- [Studio: RabbitMQ ETL Task](../../../../studio/database/tasks/ongoing-tasks/rabbitmq-etl-task) +- [Studio: Kafka ETL Task](../../../../studio/database/tasks/ongoing-tasks/kafka-etl-task) +- [Studio: Azure Queue Storage ETL Task](../../../../studio/database/tasks/ongoing-tasks/azure-queue-storage-etl) diff --git a/Documentation/6.1/Samples/csharp/Raven.Documentation.Samples/Server/OngoingTasks/ETL/Queue/AzureQueueStorageEtl.cs b/Documentation/6.1/Samples/csharp/Raven.Documentation.Samples/Server/OngoingTasks/ETL/Queue/AzureQueueStorageEtl.cs index 5fbc00d42a..54d4bf8c55 100644 --- a/Documentation/6.1/Samples/csharp/Raven.Documentation.Samples/Server/OngoingTasks/ETL/Queue/AzureQueueStorageEtl.cs +++ b/Documentation/6.1/Samples/csharp/Raven.Documentation.Samples/Server/OngoingTasks/ETL/Queue/AzureQueueStorageEtl.cs @@ -55,29 +55,29 @@ public void AddAzureQueueStorageEtlTask() // The transformation script Name = "scriptName", - Script = @" // Create an orderData object - // ========================== - var orderData = { - Id: id(this), - OrderLinesCount: this.Lines.length, - TotalCost: 0 - }; + Script = @"// Create an orderData object + // ========================== + var orderData = { + Id: id(this), + OrderLinesCount: this.Lines.length, + TotalCost: 0 + }; - // Update the orderData's TotalCost field - // ====================================== - for (var i = 0; i < this.Lines.length; i++) { - var line = this.Lines[i]; - var cost = (line.Quantity * line.PricePerUnit) * ( 1 - line.Discount); - orderData.TotalCost += cost; - } + // Update the orderData's TotalCost field + // ====================================== + for (var i = 0; i < this.Lines.length; i++) { + var line = this.Lines[i]; + var cost = (line.Quantity * line.PricePerUnit) * ( 1 - line.Discount); + orderData.TotalCost += cost; + } - // Load the object to the 'OrdersQueue' in Azure - // ============================================= - loadToOrdersQueue(orderData, { - Id: id(this), - Type: 'com.example.promotions', - Source: '/promotion-campaigns/summer-sale' - });" + // Load the object to the 'OrdersQueue' in Azure + // ============================================= + loadToOrdersQueue(orderData, { + Id: id(this), + Type: 'com.example.promotions', + Source: '/promotion-campaigns/summer-sale' + });" }; // Define the Azure Queue Storage ETL task: @@ -90,13 +90,13 @@ public void AddAzureQueueStorageEtlTask() ConnectionStringName = "myAzureQueueConStr", Transforms = { transformation }, - - // Set to false to allow failover to another node + + // Set to false to allow task failover to another node if current one is down PinToMentorNode = false }; - // Deploy (send) the task to the server vial the AddEtlOperation: - // ============================================================== + // Deploy (send) the task to the server via the AddEtlOperation: + // ============================================================= store.Maintenance.Send(new AddEtlOperation(etlTask)); #endregion } @@ -106,7 +106,7 @@ public void DeleteProcessedDocuments() { using (var store = new DocumentStore()) { - Transformation transformation = new Transformation(); + Transformation transformation = new Transformation(); // Defined here only for compilation purposes #region azure_delete_documents var etlTask = new QueueEtlConfiguration() @@ -118,17 +118,17 @@ public void DeleteProcessedDocuments() Transforms = { transformation }, - // Define whether to delete documents from RavenDB after they sent to the target queue + // Define whether to delete documents from RavenDB after they are sent to the target queue Queues = new List() { new() { // The name of the Azure queue - Name = "Orders", + Name = "OrdersQueue", // When set to 'true', // documents that were processed by the transformation script will be deleted - // from RavenDB after the message is loaded to the "Orders" queue in Azure. + // from RavenDB after the message is loaded to the "OrdersQueue" in Azure. DeleteProcessedDocuments = true } } @@ -200,7 +200,7 @@ public class Passwordless #endregion #region etl_configuration - public sealed class QueueEtlConfiguration + public class QueueEtlConfiguration { // Set to QueueBrokerType.AzureQueueStorage to define an Azure Queue Storage ETL task public QueueBrokerType BrokerType { get; set; } @@ -212,6 +212,8 @@ public sealed class QueueEtlConfiguration public List Transforms { get; set; } // Optional configuration per queue public List Queues { get; set; } + // Set to 'false' to allow task failover to another node if current one is down + public bool PinToMentorNode { get; set; } } public class Transformation @@ -230,7 +232,7 @@ public class EtlQueue { // The Azure queue name public string Name { get; set; } - // Delete processed documents whe set to 'true' + // Delete processed documents when set to 'true' public bool DeleteProcessedDocuments { get; set; } } #endregion diff --git a/Documentation/6.1/Samples/csharp/Raven.Documentation.Samples/Server/OngoingTasks/ETL/Queue/KafkaEtl.cs b/Documentation/6.1/Samples/csharp/Raven.Documentation.Samples/Server/OngoingTasks/ETL/Queue/KafkaEtl.cs new file mode 100644 index 0000000000..8f14c4e05c --- /dev/null +++ b/Documentation/6.1/Samples/csharp/Raven.Documentation.Samples/Server/OngoingTasks/ETL/Queue/KafkaEtl.cs @@ -0,0 +1,227 @@ +using System.Collections.Generic; +using Raven.Client.Documents; +using Raven.Client.Documents.Operations.ConnectionStrings; +using Raven.Client.Documents.Operations.ETL; +using Raven.Client.Documents.Operations.ETL.Queue; +namespace Raven.Documentation.Samples.Server.OngoingTasks.ETL.Queue +{ + public class KafkaEtl + { + public void AddConnectionString() + { + using (var store = new DocumentStore()) + { + #region add_kafka_connection_string + // Prepare the connection string: + // ============================== + var conStr = new QueueConnectionString + { + // Provide a name for this connection string + Name = "myKafkaConStr", + + // Set the broker type + BrokerType = QueueBrokerType.Kafka, + + // Configure the connection details + KafkaConnectionSettings = new KafkaConnectionSettings() + { BootstrapServers = "localhost:9092" } + }; + + // Deploy (send) the connection string to the server via the PutConnectionStringOperation: + // ======================================================================================= + var res = store.Maintenance.Send( + new PutConnectionStringOperation(conStr)); + #endregion + } + } + + public void AddKafkaEtlTask() + { + using (var store = new DocumentStore()) + { + #region add_kafka_etl_task + // Define a transformation script for the task: + // ============================================ + Transformation transformation = new Transformation + { + // Define the input collections + Collections = { "Orders" }, + ApplyToAllDocuments = false, + + // The transformation script + Name = "scriptName", + Script = @"// Create an orderData object + // ========================== + var orderData = { + Id: id(this), + OrderLinesCount: this.Lines.length, + TotalCost: 0 + }; + + // Update the orderData's TotalCost field + // ====================================== + for (var i = 0; i < this.Lines.length; i++) { + var line = this.Lines[i]; + var cost = (line.Quantity * line.PricePerUnit) * ( 1 - line.Discount); + orderData.TotalCost += cost; + } + + // Load the object to the 'OrdersTopic' in Kafka + // ============================================= + loadToOrdersTopic(orderData, { + Id: id(this), + PartitionKey: id(this), + Type: 'com.example.promotions', + Source: '/promotion-campaigns/summer-sale' + });" + }; + + // Define the Kafka ETL task: + // ========================== + var etlTask = new QueueEtlConfiguration() + { + BrokerType = QueueBrokerType.Kafka, + + Name = "myKafkaEtlTaskName", + ConnectionStringName = "myKafkaConStr", + + Transforms = { transformation }, + + // Set to false to allow task failover to another node if current one is down + PinToMentorNode = false + }; + + // Deploy (send) the task to the server via the AddEtlOperation: + // ============================================================= + store.Maintenance.Send(new AddEtlOperation(etlTask)); + #endregion + } + } + + public void DeleteProcessedDocuments() + { + using (var store = new DocumentStore()) + { + Transformation transformation = new Transformation(); // Defined here only for compilation purposes + + #region kafka_delete_documents + var etlTask = new QueueEtlConfiguration() + { + BrokerType = QueueBrokerType.Kafka, + + Name = "myKafkaEtlTaskName", + ConnectionStringName = "myKafkaConStr", + + Transforms = { transformation }, + + // Define whether to delete documents from RavenDB after they are sent to the target topic + Queues = new List() + { + new() + { + // The name of the Kafka topic + Name = "OrdersTopic", + + // When set to 'true', + // documents that were processed by the transformation script will be deleted + // from RavenDB after the message is loaded to the "OrdersTopic" in Kafka. + DeleteProcessedDocuments = true + } + } + }; + + store.Maintenance.Send(new AddEtlOperation(etlTask)); + #endregion + } + } + + private interface IFoo + { + #region queue_broker_type + public enum QueueBrokerType + { + None, + Kafka, + RabbitMq, + AzureQueueStorage + } + #endregion + } + + private class Definition + { + #region queue_connection_string + public class QueueConnectionString : ConnectionString + { + // Set the broker type to QueueBrokerType.Kafka for a Kafka connection string + public QueueBrokerType BrokerType { get; set; } + + // Configure this when setting a connection string for Kafka + public KafkaConnectionSettings KafkaConnectionSettings { get; set; } + + // Configure this when setting a connection string for RabbitMQ + public RabbitMqConnectionSettings RabbitMqConnectionSettings { get; set; } + + // Configure this when setting a connection string for Azure Queue Storage + public AzureQueueStorageConnectionSettings AzureQueueStorageConnectionSettings { get; set; } + } + #endregion + + public abstract class ConnectionString + { + public string Name { get; set; } + } + + #region kafka_con_str_settings + public class KafkaConnectionSettings + { + // A string containing comma-separated keys of "host:port" URLs to Kafka brokers + public string BootstrapServers { get; set; } + + // Various configuration options + public Dictionary ConnectionOptions { get; set; } + + public bool UseRavenCertificate { get; set; } + } + #endregion + + #region etl_configuration + public class QueueEtlConfiguration + { + // Set to QueueBrokerType.Kafka to define a Kafka ETL task + public QueueBrokerType BrokerType { get; set; } + // The ETL task name + public string Name { get; set; } + // The registered connection string name + public string ConnectionStringName { get; set; } + // List of transformation scripts + public List Transforms { get; set; } + // Optional configuration per queue + public List Queues { get; set; } + // Set to 'false' to allow task failover to another node if current one is down + public bool PinToMentorNode { get; set; } + } + + public class Transformation + { + // The script name + public string Name { get; set; } + // The source RavenDB collections that serve as the input for the script + public List Collections { get; set; } + // Set whether to apply the script on all collections + public bool ApplyToAllDocuments { get; set; } + // The script itself + public string Script { get; set; } + } + + public class EtlQueue + { + // The Kafka topic name + public string Name { get; set; } + // Delete processed documents when set to 'true' + public bool DeleteProcessedDocuments { get; set; } + } + #endregion + } + } +} diff --git a/Documentation/6.1/Samples/csharp/Raven.Documentation.Samples/Server/OngoingTasks/ETL/Queue/RabbitMqEtl.cs b/Documentation/6.1/Samples/csharp/Raven.Documentation.Samples/Server/OngoingTasks/ETL/Queue/RabbitMqEtl.cs new file mode 100644 index 0000000000..b879983321 --- /dev/null +++ b/Documentation/6.1/Samples/csharp/Raven.Documentation.Samples/Server/OngoingTasks/ETL/Queue/RabbitMqEtl.cs @@ -0,0 +1,229 @@ +using System.Collections.Generic; +using Raven.Client.Documents; +using Raven.Client.Documents.Operations.ConnectionStrings; +using Raven.Client.Documents.Operations.ETL; +using Raven.Client.Documents.Operations.ETL.Queue; +namespace Raven.Documentation.Samples.Server.OngoingTasks.ETL.Queue +{ + public class RabbitMqEtl + { + void AddConnectionString() + { + using (var store = new DocumentStore()) + { + #region add_rabbitMq_connection_string + // Prepare the connection string: + // ============================== + var conStr = new QueueConnectionString + { + // Provide a name for this connection string + Name = "myRabbitMqConStr", + + // Set the broker type + BrokerType = QueueBrokerType.RabbitMq, + + // Configure the connection details + RabbitMqConnectionSettings = new RabbitMqConnectionSettings() + { ConnectionString = "amqp://guest:guest@localhost:49154" } + }; + + // Deploy (send) the connection string to the server via the PutConnectionStringOperation: + // ======================================================================================= + var res = store.Maintenance.Send( + new PutConnectionStringOperation(conStr)); + #endregion + } + } + + public void AddRabbitmqEtlTask() + { + using (var store = new DocumentStore()) + { + #region add_rabbitMq_etl_task + // Define a transformation script for the task: + // ============================================ + Transformation transformation = new Transformation + { + // Define the input collections + Collections = { "Orders" }, + ApplyToAllDocuments = false, + + // The transformation script + Name = "scriptName", + Script = @"// Create an orderData object + // ========================== + var orderData = { + Id: id(this), + OrderLinesCount: this.Lines.length, + TotalCost: 0 + }; + + // Update the orderData's TotalCost field + // ====================================== + for (var i = 0; i < this.Lines.length; i++) { + var line = this.Lines[i]; + var cost = (line.Quantity * line.PricePerUnit) * ( 1 - line.Discount); + orderData.TotalCost += cost; + } + + // Load the object to the 'OrdersExchange' in RabbitMQ + // =================================================== + loadToOrdersExchange(orderData, `routingKey`, { + Id: id(this), + Type: 'com.example.promotions', + Source: '/promotion-campaigns/summer-sale' + });" + }; + + // Define the RabbitMQ ETL task: + // ============================= + var etlTask = new QueueEtlConfiguration() + { + BrokerType = QueueBrokerType.RabbitMq, + + Name = "myRabbitMqEtlTaskName", + ConnectionStringName = "myRabbitMqConStr", + + Transforms = { transformation }, + + // Set to false to have the RabbitMQ client library declare the queue if does not exist + SkipAutomaticQueueDeclaration = false, + + // Set to false to allow task failover to another node if current one is down + PinToMentorNode = false + }; + + // Deploy (send) the task to the server via the AddEtlOperation: + // ============================================================= + store.Maintenance.Send(new AddEtlOperation(etlTask)); + #endregion + } + } + + public void DeleteProcessedDocuments() + { + using (var store = new DocumentStore()) + { + Transformation transformation = new Transformation(); // Defined here only for compilation purposes + + #region rabbitMq_delete_documents + var etlTask = new QueueEtlConfiguration() + { + BrokerType = QueueBrokerType.RabbitMq, + + Name = "myRabbitMqEtlTaskName", + ConnectionStringName = "myRabbitMqConStr", + + Transforms = { transformation }, + + // Define whether to delete documents from RavenDB after they are sent to RabbitMQ + Queues = new List() + { + new() + { + // The name of the target queue + Name = "OrdersQueue", + + // When set to 'true', + // documents that were processed by the transformation script will be deleted + // from RavenDB after the message is loaded to the "OrdersQueue" in RabbitMQ. + DeleteProcessedDocuments = true + } + } + }; + + store.Maintenance.Send(new AddEtlOperation(etlTask)); + #endregion + } + } + + private interface IFoo + { + #region queue_broker_type + public enum QueueBrokerType + { + None, + Kafka, + RabbitMq, + AzureQueueStorage + } + #endregion + } + + private class Definition + { + #region queue_connection_string + public class QueueConnectionString : ConnectionString + { + // Set the broker type to QueueBrokerType.RabbitMq for a RabbitMQ connection string + public QueueBrokerType BrokerType { get; set; } + + // Configure this when setting a connection string for Kafka + public KafkaConnectionSettings KafkaConnectionSettings { get; set; } + + // Configure this when setting a connection string for RabbitMQ + public RabbitMqConnectionSettings RabbitMqConnectionSettings { get; set; } + + // Configure this when setting a connection string for Azure Queue Storage + public AzureQueueStorageConnectionSettings AzureQueueStorageConnectionSettings { get; set; } + } + #endregion + + public abstract class ConnectionString + { + public string Name { get; set; } + } + + #region rabbitMq_con_str_settings + public sealed class RabbitMqConnectionSettings + { + // A single string that specifies the RabbitMQ exchange connection details + public string ConnectionString { get; set; } + } + #endregion + + #region etl_configuration + public class QueueEtlConfiguration + { + // Set to QueueBrokerType.RabbitMq to define a RabbitMQ ETL task + public QueueBrokerType BrokerType { get; set; } + // The ETL task name + public string Name { get; set; } + // The registered connection string name + public string ConnectionStringName { get; set; } + // List of transformation scripts + public List Transforms { get; set; } + // Optional configuration per queue + public List Queues { get; set; } + // Set to 'false' to allow task failover to another node if current one is down + public bool PinToMentorNode { get; set; } + + // Set to 'false' to have the RabbitMQ client library declare the queue if does not exist. + // Set to 'true' to skip automatic queue declaration, + // use this option when you prefer to define Exchanges, Queues & Bindings manually. + public bool SkipAutomaticQueueDeclaration { get; set; } + } + + public class Transformation + { + // The script name + public string Name { get; set; } + // The source RavenDB collections that serve as the input for the script + public List Collections { get; set; } + // Set whether to apply the script on all collections + public bool ApplyToAllDocuments { get; set; } + // The script itself + public string Script { get; set; } + } + + public class EtlQueue + { + // The RabbitMQ target queue name + public string Name { get; set; } + // Delete processed documents when set to 'true' + public bool DeleteProcessedDocuments { get; set; } + } + #endregion + } + } +} From 5043e3a55f7983f78b63867efa7f8e42bf47b80c Mon Sep 17 00:00:00 2001 From: danielle9897 Date: Sun, 21 Jul 2024 10:24:12 +0300 Subject: [PATCH 13/25] RDoc-2882 RabbitMQ: remove the unclear text until clarified by @Djordje --- .../server/ongoing-tasks/etl/queue-etl/rabbit-mq.markdown | 4 ---- 1 file changed, 4 deletions(-) diff --git a/Documentation/6.1/Raven.Documentation.Pages/server/ongoing-tasks/etl/queue-etl/rabbit-mq.markdown b/Documentation/6.1/Raven.Documentation.Pages/server/ongoing-tasks/etl/queue-etl/rabbit-mq.markdown index 8c21558627..935aac7824 100644 --- a/Documentation/6.1/Raven.Documentation.Pages/server/ongoing-tasks/etl/queue-etl/rabbit-mq.markdown +++ b/Documentation/6.1/Raven.Documentation.Pages/server/ongoing-tasks/etl/queue-etl/rabbit-mq.markdown @@ -147,10 +147,6 @@ For example, the following two calls, which load data to the Orders exchange, ar * `loadTo(obj)` - {INFO: } - By default we define exchanges on our own with **Fanout** type so the routing keys are ignored. - {INFO/} - --- A sample script that process documents from the Orders collection: From 25a3ef183e4b48a98deac9687d0bf876850f4a25 Mon Sep 17 00:00:00 2001 From: danielle9897 Date: Sun, 21 Jul 2024 11:27:33 +0300 Subject: [PATCH 14/25] RDoc-2882 The ETL configuration article --- .../configuration/etl-configuration.markdown | 133 ++++++++++++++++++ .../etl/queue-etl/azure-queue.markdown | 9 +- 2 files changed, 138 insertions(+), 4 deletions(-) create mode 100644 Documentation/6.1/Raven.Documentation.Pages/server/configuration/etl-configuration.markdown diff --git a/Documentation/6.1/Raven.Documentation.Pages/server/configuration/etl-configuration.markdown b/Documentation/6.1/Raven.Documentation.Pages/server/configuration/etl-configuration.markdown new file mode 100644 index 0000000000..8a22a1f70d --- /dev/null +++ b/Documentation/6.1/Raven.Documentation.Pages/server/configuration/etl-configuration.markdown @@ -0,0 +1,133 @@ +# Configuration: ETL Options +--- + +{NOTE: } + +* In this page: + * [ETL.ExtractAndTransformTimeoutInSec](../../server/configuration/etl-configuration#etl.extractandtransformtimeoutinsec) + * [ETL.MaxBatchSizeInMb](../../server/configuration/etl-configuration#etl.maxbatchsizeinmb) + * [ETL.MaxFallbackTimeInSec](../../server/configuration/etl-configuration#etl.maxfallbacktimeinsec) + * [ETL.MaxNumberOfExtractedDocuments](../../server/configuration/etl-configuration#etl.maxnumberofextracteddocuments) + * [ETL.MaxNumberOfExtractedItems](../../server/configuration/etl-configuration#etl.maxnumberofextracteditems) + * [ETL.OLAP.MaxNumberOfExtractedDocuments](../../server/configuration/etl-configuration#etl.olap.maxnumberofextracteddocuments) + * [ETL.Queue.AzureQueueStorage.TimeToLiveInSec](../../server/configuration/etl-configuration#etl.queue.azurequeuestorage.timetoliveinsec) + * [ETL.Queue.AzureQueueStorage.VisibilityTimeoutInSec](../../server/configuration/etl-configuration#etl.queue.azurequeuestorage.visibilitytimeoutinsec) + * [ETL.Queue.Kafka.InitTransactionsTimeoutInSec](../../server/configuration/etl-configuration#etl.queue.kafka.inittransactionstimeoutinsec) + * [ETL.SQL.CommandTimeoutInSec](../../server/configuration/etl-configuration#etl.sql.commandtimeoutinsec) + +{NOTE/} + +--- + +{PANEL: ETL.ExtractAndTransformTimeoutInSec} + +Number of seconds after which extraction and transformation will end and loading will start. + +- **Type**: `int` +- **Default**: `30` +- **Scope**: Server-wide or per database + +{PANEL/} + +{PANEL: ETL.MaxNumberOfExtractedDocuments} + +* Max number of extracted documents in an ETL batch. +* If value is not set, or set to null, the number of extracted documents fallbacks to `ETL.MaxNumberOfExtractedItems` value. + +--- + +- **Type**: `int` +- **Default**: `8192` +- **Scope**: Server-wide or per database + +{PANEL/} + +{PANEL: ETL.MaxBatchSizeInMb} + +* Maximum size in megabytes of a batch of data (documents and attachments) that will be sent to the destination as a single batch after transformation. +* If value is not set, or set to null, the size of the batch isn't limited in the processed ETL batch. + +--- + +- **Type**: `Size` +- **Size Unit**: `Megabytes` +- **Default**: `64` +- **Scope**: Server-wide or per database + +{PANEL/} + +{PANEL: ETL.MaxFallbackTimeInSec} + +* Maximum number of seconds the ETL process will be in a fallback mode after a load connection failure to a destination. +* The fallback mode means suspending the process. + +--- + +- **Type**: `int` +- **Default**: `900` +- **Scope**: Server-wide or per database + +{PANEL/} + +{PANEL: ETL.MaxNumberOfExtractedItems} + +* Max number of extracted items (documents, counters, etc) in an ETL batch. +* If value is not set, or set to null, the number of extracted items isn't limited in the processed ETL batch. + +--- + +- **Type**: `int` +- **Default**: `8192` +- **Scope**: Server-wide or per database + +{PANEL/} + +{PANEL: ETL.OLAP.MaxNumberOfExtractedDocuments} + +Max number of extracted documents in OLAP ETL batch. + +- **Type**: `int` +- **Default**: `64 * 1024` +- **Scope**: Server-wide or per database + +{PANEL/} + +{PANEL: ETL.Queue.AzureQueueStorage.TimeToLiveInSec} + +Lifespan of a message in the queue. + +- **Type**: `int` +- **Default**: `604800` (7 days) +- **Scope**: Server-wide or per database + +{PANEL/} + +{PANEL: ETL.Queue.AzureQueueStorage.VisibilityTimeoutInSec} + +How long a message is hidden after being retrieved but not deleted. + +- **Type**: `int` +- **Default**: `0` +- **Scope**: Server-wide or per database + +{PANEL/} + +{PANEL: ETL.Queue.Kafka.InitTransactionsTimeoutInSec} + +Timeout to initialize transactions for the Kafka producer. + +- **Type**: `int` +- **Default**: `60` +- **Scope**: Server-wide or per database + +{PANEL/} + +{PANEL: ETL.SQL.CommandTimeoutInSec} + +Number of seconds after which the SQL command will timeout. + +- **Type**: `int` +- **Default**: `null` (use provider default) +- **Scope**: Server-wide or per database + +{PANEL/} diff --git a/Documentation/6.1/Raven.Documentation.Pages/server/ongoing-tasks/etl/queue-etl/azure-queue.markdown b/Documentation/6.1/Raven.Documentation.Pages/server/ongoing-tasks/etl/queue-etl/azure-queue.markdown index 9ef3436dd8..818f6bcbc0 100644 --- a/Documentation/6.1/Raven.Documentation.Pages/server/ongoing-tasks/etl/queue-etl/azure-queue.markdown +++ b/Documentation/6.1/Raven.Documentation.Pages/server/ongoing-tasks/etl/queue-etl/azure-queue.markdown @@ -18,6 +18,7 @@ * [Azure Functions](https://learn.microsoft.com/en-us/azure/azure-functions/functions-overview?pivots=programming-language-csharp) can be triggered to consume and process messages that are sent to Azure queues, enabling powerful and flexible workflows. + The message visibility period and life span in the Queue can be customized through these [ETL configuration options](../../../../server/configuration/etl-configuration#etl.queue.azurequeuestorage.timetoliveinsec). * Read more about Azure Queue Storage in the platform's [official documentation](https://learn.microsoft.com/en-us/azure/storage/queues/storage-queues-introduction). @@ -33,8 +34,8 @@ * [Exmaple](../../../../server/ongoing-tasks/etl/queue-etl/azure-queue#example) * [Syntax](../../../../server/ongoing-tasks/etl/queue-etl/azure-queue#syntax) * [Add an Azure Queue Storage ETL task](../../../../server/ongoing-tasks/etl/queue-etl/azure-queue#add-an-azure-queue-storage-etl-task) - * [Example - basic](../../../../server/ongoing-tasks/etl/queue-etl/azure-queue#example-basic) - * [Example - delete processed documents](../../../../server/ongoing-tasks/etl/queue-etl/azure-queue#delete-processed-documents) + * [Example](../../../../server/ongoing-tasks/etl/queue-etl/azure-queue#example-basic) + * [Delete processed documents](../../../../server/ongoing-tasks/etl/queue-etl/azure-queue#delete-processed-documents) * [Syntax](../../../../server/ongoing-tasks/etl/queue-etl/azure-queue#syntax-1) * [The transformation script](../../../../server/ongoing-tasks/etl/queue-etl/azure-queue#the-transformation-script) * [The loadTo method](../../../../server/ongoing-tasks/etl/queue-etl/azure-queue#the-loadto-method) @@ -88,7 +89,7 @@ There are three authenticaton methods available: {NOTE: } - __Example - basic__: + __Example__: --- @@ -103,7 +104,7 @@ There are three authenticaton methods available: {NOTE/} {NOTE: } - __Example - delete processed documents__: + __Delete processed documents__: --- From 393d17e9d903780a4636c8276462ed1f0a962792 Mon Sep 17 00:00:00 2001 From: danielle9897 Date: Sun, 21 Jul 2024 16:35:24 +0300 Subject: [PATCH 15/25] RDoc-2882 The 'How to add a connection string' article --- .../server/ongoing-tasks/etl/olap.markdown | 6 +- .../add-connection-string.dotnet.markdown | 163 ++++++++++++++ .../what-are-operations.dotnet.markdown | 5 +- .../what-are-operations.js.markdown | 5 +- .../what-are-operations.python.markdown | 5 +- .../ConnectionStrings/AddConnectionStrings.cs | 206 ++++++++++++++++++ 6 files changed, 382 insertions(+), 8 deletions(-) create mode 100644 Documentation/6.1/Raven.Documentation.Pages/client-api/operations/maintenance/connection-strings/add-connection-string.dotnet.markdown create mode 100644 Documentation/6.1/Samples/csharp/Raven.Documentation.Samples/ClientApi/Operations/Maintenance/ConnectionStrings/AddConnectionStrings.cs diff --git a/Documentation/5.2/Raven.Documentation.Pages/server/ongoing-tasks/etl/olap.markdown b/Documentation/5.2/Raven.Documentation.Pages/server/ongoing-tasks/etl/olap.markdown index 663f430a4c..d95b5287b6 100644 --- a/Documentation/5.2/Raven.Documentation.Pages/server/ongoing-tasks/etl/olap.markdown +++ b/Documentation/5.2/Raven.Documentation.Pages/server/ongoing-tasks/etl/olap.markdown @@ -59,8 +59,10 @@ The OLAP connection string contains the configurations for each destination of t | `GoogleCloudSettings` | Settings for Google Cloud Platform. | | `FTPSettings` | Settings for File Transfer Protocol. | -{NOTE: ETL Destination Settings} -
+{NOTE: } + +#### ETL destination settings + This is the list of different settings objects that the `OlapConnectionString` object can contain. #### `LocalSettings` diff --git a/Documentation/6.1/Raven.Documentation.Pages/client-api/operations/maintenance/connection-strings/add-connection-string.dotnet.markdown b/Documentation/6.1/Raven.Documentation.Pages/client-api/operations/maintenance/connection-strings/add-connection-string.dotnet.markdown new file mode 100644 index 0000000000..c1c12af267 --- /dev/null +++ b/Documentation/6.1/Raven.Documentation.Pages/client-api/operations/maintenance/connection-strings/add-connection-string.dotnet.markdown @@ -0,0 +1,163 @@ +# Operations: How to Add a Connection String +--- + +{NOTE: } + +* Use the [PutConnectionStringOperation](../../../../client-api/operations/maintenance/connection-strings/add-connection-string#the%C2%A0putconnectionstringoperation%C2%A0method) method to define a connection string in your database. + +* In this page: + * [Add a RavenDB connection string](../../../../client-api/operations/maintenance/connection-strings/add-connection-string#add-a-ravendb-connection-string) + * [Add an SQL connection string](../../../../client-api/operations/maintenance/connection-strings/add-connection-string#add-an-sql-connection-string) + * [Add an Olap connection string](../../../../client-api/operations/maintenance/connection-strings/add-connection-string#add-an-olap-connection-string) + * [Add an Elasticsearch connection string](../../../../client-api/operations/maintenance/connection-strings/add-connection-string#add-an-elasticsearch-connection-string) + * [Add a Kafka connection string](../../../../client-api/operations/maintenance/connection-strings/add-connection-string#add-a-kafka-connection-string) + * [Add a RabbitMQ connection string](../../../../client-api/operations/maintenance/connection-strings/add-connection-string#add-a-rabbitmq-connection-string) + * [Add an Azure Queue Storage connection string](../../../../client-api/operations/maintenance/connection-strings/add-connection-string#add-an-azure-queue-storage-connection-string) + * [The PutConnectionStringOperation method](../../../../client-api/operations/maintenance/connection-strings/add-connection-string#the%C2%A0putconnectionstringoperation%C2%A0method) + +{NOTE/} + +--- + +{PANEL: Add a RavenDB connection string} + +The RavenDB connection string is used by RavenDB's [RavenDB ETL Task](../../../../server/ongoing-tasks/etl/raven). + +--- + +Example: +{CODE add_raven_connection_string@ClientApi\Operations\Maintenance\ConnectionStrings\AddConnectionStrings.cs /} + +--- + +Syntax: +{CODE:csharp raven_connection_string@ClientApi\Operations\Maintenance\ConnectionStrings\AddConnectionStrings.cs /} + +{NOTE: } + +**Secure servers** + +To [connect to secure RavenDB servers](../../../../server/security/authentication/certificate-management#enabling-communication-between-servers:-importing-and-exporting-certificates) +you need to: +1. Export the server certificate from the source server. +2. Install it as a client certificate on the destination server. + +This can be done from the [Certificates view](../../../../server/security/authentication/certificate-management#studio-certificates-management-view) in the Studio. + +{NOTE/} + +{PANEL/} + +{PANEL: Add an SQL connection string} + +The SQL connection string is used by RavenDB's [SQL ETL Task](../../../../server/ongoing-tasks/etl/sql). + +--- + +Example: +{CODE add_sql_connection_string@ClientApi\Operations\Maintenance\ConnectionStrings\AddConnectionStrings.cs /} + +--- + +Syntax: +{CODE sql_connection_string@ClientApi\Operations\Maintenance\ConnectionStrings\AddConnectionStrings.cs /} + +{PANEL/} + +{PANEL: Add an OLAP connection string} + +The OLAP connection string is used by RavenDB's [OLAP ETL Task](../../../../server/ongoing-tasks/etl/olap). + +--- + +**To a local machine** - example: + +{CODE add_olap_connection_string_1@ClientApi\Operations\Maintenance\ConnectionStrings\AddConnectionStrings.cs /} + +--- + +**To a cloud-based server** - example: + +* The following example shows a connection string to Amazon AWS. +* Adust the parameters as needed if you are using other cloud-based servers (e.g. Google, Azure, Glacier, S3, FTP). +* The available parameters are listed in [ETL destination settings](../../../../server/ongoing-tasks/etl/olap#etl-destination-settingss). + +{CODE add_olap_connection_string_2@ClientApi\Operations\Maintenance\ConnectionStrings\AddConnectionStrings.cs /} + +--- + +Syntax: +{CODE olap_connection_string@ClientApi\Operations\Maintenance\ConnectionStrings\AddConnectionStrings.cs /} + +{PANEL/} + +{PANEL: Add an Elasticsearch connection string } + +The Elasticsearch connection string is used by RavenDB's [Elasticsearch ETL Task](../../../../server/ongoing-tasks/etl/elasticsearch). + +--- + +Example: +{CODE add_elasticsearch_connection_string@ClientApi\Operations\Maintenance\ConnectionStrings\AddConnectionStrings.cs /} + +--- + +Syntax: +{CODE elasticsearch_connection_string@ClientApi\Operations\Maintenance\ConnectionStrings\AddConnectionStrings.cs /} + +{PANEL/} + +{PANEL: Add a Kafka connection string } + +The Kafkah connection string is used by RavenDB's [Kafka Queue ETL Task](../../../../server/ongoing-tasks/etl/queue-etl/kafka). +Learn to add a Kafka connection string in section [Add a Kafka connection string]( ../../../../server/ongoing-tasks/etl/queue-etl/kafka#add-a-kafka-connection-string). + +{PANEL/} + +{PANEL: Add a RabbitMQ connection string } + +The RabbitMQ connection string is used by RavenDB's [RabbitMQ Queue ETL Task](../../../../server/ongoing-tasks/etl/queue-etl/rabbit-mq). +Learn to add a RabbitMQ connection string in section [Add a RabbitMQ connection string]( ../../../../server/ongoing-tasks/etl/queue-etl/rabbit-mq#add-a-rabbitmq-connection-string). + +{PANEL/} + +{PANEL: Add an Azure Queue Storage connection string } + +The Azure Queue Storage connection string is used by RavenDB's [Azure Queue Storage ETL Task](../../../../server/ongoing-tasks/etl/queue-etl/server/ongoing-tasks/etl/queue-etl/azure-queue). +Learn to add an Azure Queue Storage connection string in section [Add an Azure Queue Storage connection string]( ../../../../server/ongoing-tasks/etl/queue-etl/azure-queue#add-an-azure-queue-storage-connection-string). + +{PANEL/} + +{PANEL: The `PutConnectionStringOperation` method} + +{CODE put_connection_string@ClientApi\Operations\Maintenance\ConnectionStrings\AddConnectionStrings.cs /} + +| Parameters | Type | Description | +|----------------------|---------------------------------|--------------------------------------------------------------------------------------------------------------------| +| **connectionString** | `RavenConnectionString` | Object that defines the RavenDB connection string. | +| **connectionString** | `SqlConnectionString` | Object that defines the SQL Connection string. | +| **connectionString** | `OlapConnectionString` | Object that defines the OLAP connction string. | +| **connectionString** | `ElasticSearchConnectionString` | Object that defines the Elasticsearch connction string. | +| **connectionString** | `QueueConnectionString` | Object that defines the connection string for the Queue ETLs tasks (Kafka, RabbitMQ, and the Azure Queue Storage). | + +{CODE:csharp connection_string_class@ClientApi\Operations\Maintenance\ConnectionStrings\AddConnectionStrings.cs /} + +{PANEL/} + +## Related Articles + +### Connection Strings + +- [Get](../../../../client-api/operations/maintenance/connection-strings/get-connection-string) +- [Remove](../../../../client-api/operations/maintenance/connection-strings/remove-connection-string) + +### ETL (Extract, Transform, Load) Tasks + +- [Operations: How to Add ETL](../../../../client-api/operations/maintenance/etl/add-etl) +- [Ongoing Tasks: ETL Basics](../../../../server/ongoing-tasks/etl/basics) + +### External Replication + +- [External Replication Task](../../../../studio/database/tasks/ongoing-tasks/external-replication-task) +- [How Replication Works](../../../../server/clustering/replication/replication) + diff --git a/Documentation/6.1/Raven.Documentation.Pages/client-api/operations/what-are-operations.dotnet.markdown b/Documentation/6.1/Raven.Documentation.Pages/client-api/operations/what-are-operations.dotnet.markdown index 55e92aafad..af348d44cd 100644 --- a/Documentation/6.1/Raven.Documentation.Pages/client-api/operations/what-are-operations.dotnet.markdown +++ b/Documentation/6.1/Raven.Documentation.Pages/client-api/operations/what-are-operations.dotnet.markdown @@ -230,8 +230,9 @@        UpdatePeriodicBackupOperation * **Connection strings**: -        PutConnectionStringOperation -        RemoveConnectionStringOperation +        [PutConnectionStringOperation](../../client-api/operations/maintenance/connection-strings/add-connection-string) +        [RemoveConnectionStringOperation](../../client-api/operations/maintenance/connection-strings/remove-connection-string) +        [GetConnectionStringsOperation](../../client-api/operations/maintenance/connection-strings/get-connection-string) * **Transaction recording**:        StartTransactionsRecordingOperation diff --git a/Documentation/6.1/Raven.Documentation.Pages/client-api/operations/what-are-operations.js.markdown b/Documentation/6.1/Raven.Documentation.Pages/client-api/operations/what-are-operations.js.markdown index 4f04e20b1e..7317085784 100644 --- a/Documentation/6.1/Raven.Documentation.Pages/client-api/operations/what-are-operations.js.markdown +++ b/Documentation/6.1/Raven.Documentation.Pages/client-api/operations/what-are-operations.js.markdown @@ -233,8 +233,9 @@ __Send syntax__:        UpdatePeriodicBackupOperation * __Connection strings__: -        PutConnectionStringOperation -        RemoveConnectionStringOperation +        [PutConnectionStringOperation](../../client-api/operations/maintenance/connection-strings/add-connection-string) +        [RemoveConnectionStringOperation](../../client-api/operations/maintenance/connection-strings/remove-connection-string) +        [GetConnectionStringsOperation](../../client-api/operations/maintenance/connection-strings/get-connection-string) * __Transaction recording__:        StartTransactionsRecordingOperation diff --git a/Documentation/6.1/Raven.Documentation.Pages/client-api/operations/what-are-operations.python.markdown b/Documentation/6.1/Raven.Documentation.Pages/client-api/operations/what-are-operations.python.markdown index 22c6a61bbb..f1c36683a7 100644 --- a/Documentation/6.1/Raven.Documentation.Pages/client-api/operations/what-are-operations.python.markdown +++ b/Documentation/6.1/Raven.Documentation.Pages/client-api/operations/what-are-operations.python.markdown @@ -219,8 +219,9 @@        UpdatePeriodicBackupOperation * **Connection strings**: -        PutConnectionStringOperation -        RemoveConnectionStringOperation +        [PutConnectionStringOperation](../../client-api/operations/maintenance/connection-strings/add-connection-string) +        [RemoveConnectionStringOperation](../../client-api/operations/maintenance/connection-strings/remove-connection-string) +        [GetConnectionStringsOperation](../../client-api/operations/maintenance/connection-strings/get-connection-string) * **Transaction recording**:        StartTransactionsRecordingOperation diff --git a/Documentation/6.1/Samples/csharp/Raven.Documentation.Samples/ClientApi/Operations/Maintenance/ConnectionStrings/AddConnectionStrings.cs b/Documentation/6.1/Samples/csharp/Raven.Documentation.Samples/ClientApi/Operations/Maintenance/ConnectionStrings/AddConnectionStrings.cs new file mode 100644 index 0000000000..a772dd9285 --- /dev/null +++ b/Documentation/6.1/Samples/csharp/Raven.Documentation.Samples/ClientApi/Operations/Maintenance/ConnectionStrings/AddConnectionStrings.cs @@ -0,0 +1,206 @@ +using Raven.Client.Documents; +using Raven.Client.Documents.Operations.Backups; +using Raven.Client.Documents.Operations.ConnectionStrings; +using Raven.Client.Documents.Operations.ETL; +using Raven.Client.Documents.Operations.ETL.ElasticSearch; +using Raven.Client.Documents.Operations.ETL.OLAP; +using Raven.Client.Documents.Operations.ETL.SQL; + +namespace Raven.Documentation.Samples.ClientApi.Operations.Maintenance.ConnectionStrings +{ + public class AddConnectionStrings + { + public AddConnectionStrings() + { + using (var store = new DocumentStore()) + { + #region add_raven_connection_string + // Define a connection string to a RavenDB database destination + // ============================================================ + var ravenDBConStr = new RavenConnectionString + { + Name = "ravendb-connection-string-name", + Database = "target-database-name", + TopologyDiscoveryUrls = new[] { "https://rvn2:8080" } + }; + + // Deploy (send) the connection string to the server via the PutConnectionStringOperation + // ====================================================================================== + var PutConnectionStringOp = new PutConnectionStringOperation(ravenDBConStr); + PutConnectionStringResult connectionStringResult = store.Maintenance.Send(PutConnectionStringOp); + #endregion + } + + using (var store = new DocumentStore()) + { + #region add_sql_connection_string + // Define a connection string to a SQL database destination + // ======================================================== + var sqlConStr = new SqlConnectionString + { + Name = "sql-connection-string-name", + + // Define destination factory name + FactoryName = "MySql.Data.MySqlClient", + + // Define the destination database + // May also need to define authentication and encryption parameters + // By default, encrypted databases are sent over encrypted channels + ConnectionString = "host=127.0.0.1;user=root;database=Northwind" + }; + + // Deploy (send) the connection string to the server via the PutConnectionStringOperation + // ====================================================================================== + var PutConnectionStringOp = new PutConnectionStringOperation(sqlConStr); + PutConnectionStringResult connectionStringResult = store.Maintenance.Send(PutConnectionStringOp); + #endregion + } + + using (var store = new DocumentStore()) + { + #region add_olap_connection_string_1 + // Define a connection string to a local OLAP destination + // ====================================================== + OlapConnectionString olapConStr = new OlapConnectionString + { + Name = "olap-connection-string-name", + LocalSettings = new LocalSettings + { + FolderPath = "path-to-local-folder" + } + }; + + // Deploy (send) the connection string to the server via the PutConnectionStringOperation + // ====================================================================================== + var PutConnectionStringOp = new PutConnectionStringOperation(olapConStr); + PutConnectionStringResult connectionStringResult = store.Maintenance.Send(PutConnectionStringOp); + #endregion + } + + using (var store = new DocumentStore()) + { + #region add_olap_connection_string_2 + // Define a connection string to an AWS OLAP destination + // ===================================================== + var olapConStr = new OlapConnectionString + { + Name = "myOlapConnectionStringName", + S3Settings = new S3Settings + { + BucketName = "myBucket", + RemoteFolderName = "my/folder/name", + AwsAccessKey = "myAccessKey", + AwsSecretKey = "myPassword", + AwsRegionName = "us-east-1" + } + }; + + // Deploy (send) the connection string to the server via the PutConnectionStringOperation + // ====================================================================================== + var PutConnectionStringOp = new PutConnectionStringOperation(olapConStr); + PutConnectionStringResult connectionStringResult = store.Maintenance.Send(PutConnectionStringOp); + #endregion + } + + using (var store = new DocumentStore()) + { + #region add_elasticsearch_connection_string + // Define a connection string to an Elasticsearch destination + // ========================================================== + var elasticSearchConStr = new ElasticSearchConnectionString + { + Name = "elasticsearch-connection-string-name", + + // Elasticsearch Nodes URLs + Nodes = new[] { "http://localhost:9200" }, + + // Authentication Method + Authentication = new Raven.Client.Documents.Operations.ETL.ElasticSearch.Authentication + { + Basic = new BasicAuthentication + { + Username = "John", + Password = "32n4j5kp8" + } + } + }; + + // Deploy (send) the connection string to the server via the PutConnectionStringOperation + // ====================================================================================== + var PutConnectionStringOp = + new PutConnectionStringOperation(elasticSearchConStr); + PutConnectionStringResult connectionStringResult = store.Maintenance.Send(PutConnectionStringOp); + #endregion + } + } + + public class Foo + { + #region raven_connection_string + public class RavenConnectionString : ConnectionString + { + public ConnectionStringType Type => ConnectionStringType.Raven; + + public string Database { get; set; } // Target database name + public string[] TopologyDiscoveryUrls; // List of server urls in the target RavenDB cluster + } + #endregion + + #region sql_connection_string + public class SqlConnectionString : ConnectionString + { + public ConnectionStringType Type => ConnectionStringType.Sql; + + public string ConnectionString { get; set; } + public string FactoryName { get; set; } + } + #endregion + + #region olap_connection_string + public class OlapConnectionString : ConnectionString + { + public ConnectionStringType Type => ConnectionStringType.Olap; + + public LocalSettings LocalSettings { get; set; } + public S3Settings S3Settings { get; set; } + public AzureSettings AzureSettings { get; set; } + public GlacierSettings GlacierSettings { get; set; } + public GoogleCloudSettings GoogleCloudSettings { get; set; } + public FtpSettings FtpSettings { get; set; } + } + #endregion + + #region elasticsearch_connection_string + public class ElasticsearchConnectionString : ConnectionString + { + public ConnectionStringType Type => ConnectionStringType.ElasticSearch; + + public string Nodes { get; set; } + public string Authentication { get; set; } + public string Basic { get; set; } + public string Username { get; set; } + public string Password { get; set; } + } + #endregion + + #region connection_string_class + // All the connection string class types inherit from this abstract ConnectionString class: + // ======================================================================================== + + public abstract class ConnectionString + { + public string Name { get; set; } // A name for the connection string + } + #endregion + + private interface IFoo + { + /* + #region put_connection_string + public PutConnectionStringOperation(T connectionString) + #endregion + */ + } + } + } +} From bcb92c10a5a7dec36c2477812b5f5f078c7ccf3f Mon Sep 17 00:00:00 2001 From: danielle9897 Date: Sun, 21 Jul 2024 19:00:44 +0300 Subject: [PATCH 16/25] RDoc-2882 The 'Get connection string' article --- .../maintenance/connection-strings/.docs.json | 12 +- .../add-connection-string.dotnet.markdown | 8 +- .../get-connection-string.dotnet.markdown | 62 ++++++++++ .../ConnectionStrings/AddConnectionStrings.cs | 23 +++- .../ConnectionStrings/GetConnectionStrings.cs | 112 ++++++++++++++++++ 5 files changed, 202 insertions(+), 15 deletions(-) create mode 100644 Documentation/6.1/Raven.Documentation.Pages/client-api/operations/maintenance/connection-strings/get-connection-string.dotnet.markdown create mode 100644 Documentation/6.1/Samples/csharp/Raven.Documentation.Samples/ClientApi/Operations/Maintenance/ConnectionStrings/GetConnectionStrings.cs diff --git a/Documentation/6.1/Raven.Documentation.Pages/client-api/operations/maintenance/connection-strings/.docs.json b/Documentation/6.1/Raven.Documentation.Pages/client-api/operations/maintenance/connection-strings/.docs.json index c456490232..f700310ad7 100644 --- a/Documentation/6.1/Raven.Documentation.Pages/client-api/operations/maintenance/connection-strings/.docs.json +++ b/Documentation/6.1/Raven.Documentation.Pages/client-api/operations/maintenance/connection-strings/.docs.json @@ -5,16 +5,16 @@ "DiscussionId": "1dc3a5d2-72c3-49f7-8864-44af79d69e95", "Mappings": [] }, - { - "Path": "remove-connection-string.markdown", - "Name": "Remove Connection String", - "DiscussionId": "1074768c-807a-4d29-8c61-6facceb7bd67", - "Mappings": [] - }, { "Path": "get-connection-string.markdown", "Name": "Get Connection String", "DiscussionId": "c59f5b9b-dbc4-460e-840b-c13a355d37c8", "Mappings": [] + }, + { + "Path": "remove-connection-string.markdown", + "Name": "Remove Connection String", + "DiscussionId": "1074768c-807a-4d29-8c61-6facceb7bd67", + "Mappings": [] } ] diff --git a/Documentation/6.1/Raven.Documentation.Pages/client-api/operations/maintenance/connection-strings/add-connection-string.dotnet.markdown b/Documentation/6.1/Raven.Documentation.Pages/client-api/operations/maintenance/connection-strings/add-connection-string.dotnet.markdown index c1c12af267..e996810d4d 100644 --- a/Documentation/6.1/Raven.Documentation.Pages/client-api/operations/maintenance/connection-strings/add-connection-string.dotnet.markdown +++ b/Documentation/6.1/Raven.Documentation.Pages/client-api/operations/maintenance/connection-strings/add-connection-string.dotnet.markdown @@ -1,4 +1,4 @@ -# Operations: How to Add a Connection String +# Add Connection String Operation --- {NOTE: } @@ -80,7 +80,7 @@ The OLAP connection string is used by RavenDB's [OLAP ETL Task](../../../../serv * The following example shows a connection string to Amazon AWS. * Adust the parameters as needed if you are using other cloud-based servers (e.g. Google, Azure, Glacier, S3, FTP). -* The available parameters are listed in [ETL destination settings](../../../../server/ongoing-tasks/etl/olap#etl-destination-settingss). +* The available parameters are listed in [ETL destination settings](../../../../server/ongoing-tasks/etl/olap#etl-destination-settings). {CODE add_olap_connection_string_2@ClientApi\Operations\Maintenance\ConnectionStrings\AddConnectionStrings.cs /} @@ -110,14 +110,14 @@ Syntax: {PANEL: Add a Kafka connection string } The Kafkah connection string is used by RavenDB's [Kafka Queue ETL Task](../../../../server/ongoing-tasks/etl/queue-etl/kafka). -Learn to add a Kafka connection string in section [Add a Kafka connection string]( ../../../../server/ongoing-tasks/etl/queue-etl/kafka#add-a-kafka-connection-string). +Learn how to add a Kafka connection string in section [Add a Kafka connection string]( ../../../../server/ongoing-tasks/etl/queue-etl/kafka#add-a-kafka-connection-string). {PANEL/} {PANEL: Add a RabbitMQ connection string } The RabbitMQ connection string is used by RavenDB's [RabbitMQ Queue ETL Task](../../../../server/ongoing-tasks/etl/queue-etl/rabbit-mq). -Learn to add a RabbitMQ connection string in section [Add a RabbitMQ connection string]( ../../../../server/ongoing-tasks/etl/queue-etl/rabbit-mq#add-a-rabbitmq-connection-string). +Learn how to add a RabbitMQ connection string in section [Add a RabbitMQ connection string]( ../../../../server/ongoing-tasks/etl/queue-etl/rabbit-mq#add-a-rabbitmq-connection-string). {PANEL/} diff --git a/Documentation/6.1/Raven.Documentation.Pages/client-api/operations/maintenance/connection-strings/get-connection-string.dotnet.markdown b/Documentation/6.1/Raven.Documentation.Pages/client-api/operations/maintenance/connection-strings/get-connection-string.dotnet.markdown new file mode 100644 index 0000000000..f26e691e9c --- /dev/null +++ b/Documentation/6.1/Raven.Documentation.Pages/client-api/operations/maintenance/connection-strings/get-connection-string.dotnet.markdown @@ -0,0 +1,62 @@ +# Get Connection String Operation +--- + +{NOTE: } + +* Use `GetConnectionStringsOperation` to retrieve properties for a specific connection string + or for all connection strings defined in the databse. + +* To learn how to create a new connection string, see [Add Connection String Operation](../../../../client-api/operations/maintenance/connection-strings/add-connection-string). + +* In this page: + * [Get connection string by name and type](../../../../client-api/operations/maintenance/connection-strings/get-connection-string#get-connection-string-by-name-and-type) + * [Get all connection strings](../../../../client-api/operations/maintenance/connection-strings/get-connection-string#get-all-connnection-strings) + * [Syntax](../../../../client-api/operations/maintenance/connection-strings/get-connection-string#syntax) + +{NOTE/} + +--- + +{PANEL: Get connection string by name and type} + +The following example retrieves a RavenDB Connection String: + +{CODE get_connection_string_by_name@ClientApi\Operations\Maintenance\ConnectionStrings\GetConnectionStrings.cs /} + +{PANEL/} + +{PANEL: Get all connnection strings} + +{CODE get_all_connection_strings@ClientApi\Operations\Maintenance\ConnectionStrings\GetConnectionStrings.cs /} + +{PANEL/} + +{PANEL: Syntax} + +{CODE syntax_1@ClientApi\Operations\Maintenance\ConnectionStrings\GetConnectionStrings.cs /} + +| Parameter | Type | Description | +|--------------------------|------------------------|--------------------------------------------------------------------------------| +| **connectionStringName** | `string` | Connection string name | +| **type** | `ConnectionStringType` | Connection string type:
`Raven`, `Sql`, `Olap`, `ElasticSearch`, or `Queue` | + +{CODE syntax_2@ClientApi\Operations\Maintenance\ConnectionStrings\GetConnectionStrings.cs /} + +| Return value of `store.Maintenance.Send(GetConnectionStringsOperation)` | | +|--------------------------------------------------------------------------|---------------------------------------------------------------| +| `GetConnectionStringsResult` | Class with all connection strings are defined on the database | + +{CODE syntax_3@ClientApi\Operations\Maintenance\ConnectionStrings\GetConnectionStrings.cs /} + +{NOTE: } +A detailed syntax for each connection string type is available in article [Add connection string](../../../../client-api/operations/maintenance/connection-strings/add-connection-string). +{NOTE/} + +{PANEL/} + +## Related Articles + +### Connection Strings + +- [Add](../../../../client-api/operations/maintenance/connection-strings/add-connection-string) +- [Remove](../../../../client-api/operations/maintenance/connection-strings/remove-connection-string) diff --git a/Documentation/6.1/Samples/csharp/Raven.Documentation.Samples/ClientApi/Operations/Maintenance/ConnectionStrings/AddConnectionStrings.cs b/Documentation/6.1/Samples/csharp/Raven.Documentation.Samples/ClientApi/Operations/Maintenance/ConnectionStrings/AddConnectionStrings.cs index a772dd9285..ef4f606e87 100644 --- a/Documentation/6.1/Samples/csharp/Raven.Documentation.Samples/ClientApi/Operations/Maintenance/ConnectionStrings/AddConnectionStrings.cs +++ b/Documentation/6.1/Samples/csharp/Raven.Documentation.Samples/ClientApi/Operations/Maintenance/ConnectionStrings/AddConnectionStrings.cs @@ -139,7 +139,7 @@ public class Foo #region raven_connection_string public class RavenConnectionString : ConnectionString { - public ConnectionStringType Type => ConnectionStringType.Raven; + public override ConnectionStringType Type => ConnectionStringType.Raven; public string Database { get; set; } // Target database name public string[] TopologyDiscoveryUrls; // List of server urls in the target RavenDB cluster @@ -149,7 +149,7 @@ public class RavenConnectionString : ConnectionString #region sql_connection_string public class SqlConnectionString : ConnectionString { - public ConnectionStringType Type => ConnectionStringType.Sql; + public override ConnectionStringType Type => ConnectionStringType.Sql; public string ConnectionString { get; set; } public string FactoryName { get; set; } @@ -159,7 +159,7 @@ public class SqlConnectionString : ConnectionString #region olap_connection_string public class OlapConnectionString : ConnectionString { - public ConnectionStringType Type => ConnectionStringType.Olap; + public override ConnectionStringType Type => ConnectionStringType.Olap; public LocalSettings LocalSettings { get; set; } public S3Settings S3Settings { get; set; } @@ -173,7 +173,7 @@ public class OlapConnectionString : ConnectionString #region elasticsearch_connection_string public class ElasticsearchConnectionString : ConnectionString { - public ConnectionStringType Type => ConnectionStringType.ElasticSearch; + public override ConnectionStringType Type => ConnectionStringType.ElasticSearch; public string Nodes { get; set; } public string Authentication { get; set; } @@ -189,7 +189,20 @@ public class ElasticsearchConnectionString : ConnectionString public abstract class ConnectionString { - public string Name { get; set; } // A name for the connection string + // A name for the connection string + public string Name { get; set; } + + // The connection string type + public abstract ConnectionStringType Type { get; } + } + + public enum ConnectionStringType + { + Raven, + Sql, + Olap, + ElasticSearch, + Queue } #endregion diff --git a/Documentation/6.1/Samples/csharp/Raven.Documentation.Samples/ClientApi/Operations/Maintenance/ConnectionStrings/GetConnectionStrings.cs b/Documentation/6.1/Samples/csharp/Raven.Documentation.Samples/ClientApi/Operations/Maintenance/ConnectionStrings/GetConnectionStrings.cs new file mode 100644 index 0000000000..a100dd4a38 --- /dev/null +++ b/Documentation/6.1/Samples/csharp/Raven.Documentation.Samples/ClientApi/Operations/Maintenance/ConnectionStrings/GetConnectionStrings.cs @@ -0,0 +1,112 @@ +using System.Collections.Generic; +using Raven.Client.Documents; +using Raven.Client.Documents.Operations.ConnectionStrings; +using Raven.Client.Documents.Operations.ETL; +using Raven.Client.Documents.Operations.ETL.ElasticSearch; +using Raven.Client.Documents.Operations.ETL.OLAP; +using Raven.Client.Documents.Operations.ETL.Queue; +using Raven.Client.Documents.Operations.ETL.SQL; + +namespace Raven.Documentation.Samples.ClientApi.Operations.Maintenance.ConnectionStrings +{ + public class GetConnectionStrings + { + public GetConnectionStrings() + { + #region get_connection_string_by_name + using (var store = new DocumentStore()) + { + // Request to get a specific connection string, pass its name and type: + // ==================================================================== + var getRavenConStrOp = + new GetConnectionStringsOperation("ravendb-connection-string-name", ConnectionStringType.Raven); + + GetConnectionStringsResult connectionStrings = store.Maintenance.Send(getRavenConStrOp); + + // Access results: + // =============== + Dictionary ravenConnectionStrings = + connectionStrings.RavenConnectionStrings; + + var numberOfRavenConnectionStrings = ravenConnectionStrings.Count; + var ravenConStr = ravenConnectionStrings["ravendb-connection-string-name"]; + + var targetUrls = ravenConStr.TopologyDiscoveryUrls; + var targetDatabase = ravenConStr.Database; + } + #endregion + + #region get_all_connection_strings + using (var store = new DocumentStore()) + { + // Get all connection strings: + // =========================== + var getAllConStrOp = new GetConnectionStringsOperation(); + GetConnectionStringsResult allConnectionStrings = store.Maintenance.Send(getAllConStrOp); + + // Access results: + // =============== + + // RavenDB + Dictionary ravenConnectionStrings = + allConnectionStrings.RavenConnectionStrings; + + // SQL + Dictionary sqlConnectionStrings = + allConnectionStrings.SqlConnectionStrings; + + // OLAP + Dictionary olapConnectionStrings = + allConnectionStrings.OlapConnectionStrings; + + // Elasticsearch + Dictionary elasticsearchConnectionStrings = + allConnectionStrings.ElasticSearchConnectionStrings; + + // Access the Queue ETL connection strings in a similar manner: + // ============================================================ + Dictionary queueConnectionStrings = + allConnectionStrings.QueueConnectionStrings; + + var kafkaConStr = queueConnectionStrings["kafka-connection-string-name"]; + } + #endregion + } + + private interface IFoo + { + /* + #region syntax_1 + public GetConnectionStringsOperation() + public GetConnectionStringsOperation(string connectionStringName, ConnectionStringType type) + #endregion + */ + + /* + #region syntax_2 + public enum ConnectionStringType + { + Raven, + Sql, + Olap, + ElasticSearch, + Queue + } + #endregion + */ + + /* + #region syntax_3 + public class GetConnectionStringsResult + { + public Dictionary RavenConnectionStrings { get; set; } + public Dictionary SqlConnectionStrings { get; set; } + public Dictionary OlapConnectionStrings { get; set; } + public Dictionary ElasticSearchConnectionStrings { get; set; } + public Dictionary QueueConnectionStrings { get; set; } + } + #endregion + */ + } + } +} From 30602366bd2eaf82ed4b79e610b660b1b21f4a36 Mon Sep 17 00:00:00 2001 From: danielle9897 Date: Sun, 21 Jul 2024 20:24:19 +0300 Subject: [PATCH 17/25] RDoc-2882 The 'Remove connection string' article --- .../remove-connection-string.dotnet.markdown | 39 ++++++++++++++++++ .../RemoveConnectionStrings.cs | 41 +++++++++++++++++++ 2 files changed, 80 insertions(+) create mode 100644 Documentation/6.1/Raven.Documentation.Pages/client-api/operations/maintenance/connection-strings/remove-connection-string.dotnet.markdown create mode 100644 Documentation/6.1/Samples/csharp/Raven.Documentation.Samples/ClientApi/Operations/Maintenance/ConnectionStrings/RemoveConnectionStrings.cs diff --git a/Documentation/6.1/Raven.Documentation.Pages/client-api/operations/maintenance/connection-strings/remove-connection-string.dotnet.markdown b/Documentation/6.1/Raven.Documentation.Pages/client-api/operations/maintenance/connection-strings/remove-connection-string.dotnet.markdown new file mode 100644 index 0000000000..e2e196fe00 --- /dev/null +++ b/Documentation/6.1/Raven.Documentation.Pages/client-api/operations/maintenance/connection-strings/remove-connection-string.dotnet.markdown @@ -0,0 +1,39 @@ +# Remove Connection String Operation +--- + +{NOTE: } + +* Use `RemoveConnectionStringOperation` to remove a connection string definition from the database. + +* In this page: + * [Remove connection string](../../../../client-api/operations/maintenance/connection-strings/remove-connection-string#remove-connecion-string) + * [Syntax](../../../../client-api/operations/maintenance/connection-strings/remove-connection-string#syntax) + +{NOTE/} + +--- + +{PANEL: Remove connection string} + +The following example removes a RavenDB Connection String. + +{CODE remove_raven_connection_string@ClientApi\Operations\Maintenance\ConnectionStrings\RemoveConnectionStrings.cs /} + +{PANEL/} + +{PANEL: Syntax} + +{CODE remove_connection_string@ClientApi\Operations\Maintenance\ConnectionStrings\RemoveConnectionStrings.cs /} + +| Parameter | Type | Description | +|----------------------|-------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| **connectionString** | `T` | Connection string to remove:
`RavenConnectionString`
`SqlConnectionString`
`OlapConnectionString`
`ElasticSearchConnectionString`
`QueueConnectionString` | + +{PANEL/} + +## Related Articles + +### Connection Strings + +- [Get](../../../../client-api/operations/maintenance/connection-strings/get-connection-string) +- [Add](../../../../client-api/operations/maintenance/connection-strings/add-connection-string) diff --git a/Documentation/6.1/Samples/csharp/Raven.Documentation.Samples/ClientApi/Operations/Maintenance/ConnectionStrings/RemoveConnectionStrings.cs b/Documentation/6.1/Samples/csharp/Raven.Documentation.Samples/ClientApi/Operations/Maintenance/ConnectionStrings/RemoveConnectionStrings.cs new file mode 100644 index 0000000000..917f0db17c --- /dev/null +++ b/Documentation/6.1/Samples/csharp/Raven.Documentation.Samples/ClientApi/Operations/Maintenance/ConnectionStrings/RemoveConnectionStrings.cs @@ -0,0 +1,41 @@ +using Raven.Client.Documents; +using Raven.Client.Documents.Operations.ConnectionStrings; +using Raven.Client.Documents.Operations.ETL; +namespace Raven.Documentation.Samples.ClientApi.Operations +{ + public class RemoveConnectionStrings + { + public RemoveConnectionStrings() + { + using (var store = new DocumentStore()) + { + #region remove_raven_connection_string + var ravenConnectionString = new RavenConnectionString() + { + // Note: + // Only the 'Name' property of the connection string is needed for the remove operation. + // Other properties are not considered. + Name = "ravendb-connection-string-name" + }; + + // Define the remove connection string operation, + // pass the connection string to be removed. + var removeConStrOp + = new RemoveConnectionStringOperation(ravenConnectionString); + + // Execute the operation by passing it to Maintenance.Send + store.Maintenance.Send(removeConStrOp); + #endregion + } + } + + private interface IFoo + { + /* + #region remove_connection_string + public RemoveConnectionStringOperation(T connectionString) + #endregion + */ + } + } +} From 507e0d71222768fcdd02d01bc04d09a42b07fd07 Mon Sep 17 00:00:00 2001 From: danielle9897 Date: Mon, 22 Jul 2024 09:40:22 +0300 Subject: [PATCH 18/25] RDoc-2882 Copy the missing java & js artices from 5.2 to 5.3 for The 'Add ETL' article --- ...d-etl.markdown => add-etl.dotnet.markdown} | 0 .../maintenance/etl/add-etl.java.markdown | 52 ++++++++ .../maintenance/etl/add-etl.js.markdown | 41 ++++++ .../ravendb/ClientApi/Operations/AddEtl.java | 122 ++++++++++++++++++ .../nodejs/client-api/Operations/AddEtl.js | 90 +++++++++++++ 5 files changed, 305 insertions(+) rename Documentation/5.3/Raven.Documentation.Pages/client-api/operations/maintenance/etl/{add-etl.markdown => add-etl.dotnet.markdown} (100%) create mode 100644 Documentation/5.3/Raven.Documentation.Pages/client-api/operations/maintenance/etl/add-etl.java.markdown create mode 100644 Documentation/5.3/Raven.Documentation.Pages/client-api/operations/maintenance/etl/add-etl.js.markdown create mode 100644 Documentation/5.3/Samples/java/src/test/java/net/ravendb/ClientApi/Operations/AddEtl.java create mode 100644 Documentation/5.3/Samples/nodejs/client-api/Operations/AddEtl.js diff --git a/Documentation/5.3/Raven.Documentation.Pages/client-api/operations/maintenance/etl/add-etl.markdown b/Documentation/5.3/Raven.Documentation.Pages/client-api/operations/maintenance/etl/add-etl.dotnet.markdown similarity index 100% rename from Documentation/5.3/Raven.Documentation.Pages/client-api/operations/maintenance/etl/add-etl.markdown rename to Documentation/5.3/Raven.Documentation.Pages/client-api/operations/maintenance/etl/add-etl.dotnet.markdown diff --git a/Documentation/5.3/Raven.Documentation.Pages/client-api/operations/maintenance/etl/add-etl.java.markdown b/Documentation/5.3/Raven.Documentation.Pages/client-api/operations/maintenance/etl/add-etl.java.markdown new file mode 100644 index 0000000000..76ca2f6077 --- /dev/null +++ b/Documentation/5.3/Raven.Documentation.Pages/client-api/operations/maintenance/etl/add-etl.java.markdown @@ -0,0 +1,52 @@ +# Operations: How to Add ETL + +You can add ETL task by using **AddEtlOperation**. + +## Syntax + +{CODE:java add_etl_operation@ClientApi\Operations\AddEtl.java /} + +| Parameters | | | +| ------------- | ----- | ---- | +| **configuration** | `EtlConfiguration` | ETL configuration where `T` is connection string type | + +## Example - Add Raven ETL + +{NOTE: Secure servers} + To [connect secure RavenDB servers](../../../../server/security/authentication/certificate-management#enabling-communication-between-servers:-importing-and-exporting-certificates) + you need to + + 1. Export the server certificate from the source server. + 2. Install it as a client certificate on the destination server. + + This can be done in the RavenDB Studio -> Server Management -> [Certificates view](../../../../server/security/authentication/certificate-management#studio-certificates-management-view). +{NOTE/} + + +{CODE:java add_raven_etl@ClientApi\Operations\AddEtl.java /} + +## Example - Add Sql ETL + +{CODE:java add_sql_etl@ClientApi\Operations\AddEtl.java /} + +## Example - Add OLAP ETL + +{CODE:java add_olap_etl@ClientApi\Operations\AddEtl.java /} + +## Related Articles + +### ETL + +- [Basics](../../../../server/ongoing-tasks/etl/basics) +- [RavenDB ETL](../../../../server/ongoing-tasks/etl/raven) +- [SQL ETL](../../../../server/ongoing-tasks/etl/sql) + +### Studio + +- [RavenDB ETL Task](../../../../studio/database/tasks/ongoing-tasks/ravendb-etl-task) + +### Connection Strings + +- [Add](../../../../client-api/operations/maintenance/connection-strings/add-connection-string) +- [Get](../../../../client-api/operations/maintenance/connection-strings/get-connection-string) +- [Remove](../../../../client-api/operations/maintenance/connection-strings/remove-connection-string) diff --git a/Documentation/5.3/Raven.Documentation.Pages/client-api/operations/maintenance/etl/add-etl.js.markdown b/Documentation/5.3/Raven.Documentation.Pages/client-api/operations/maintenance/etl/add-etl.js.markdown new file mode 100644 index 0000000000..d14085530c --- /dev/null +++ b/Documentation/5.3/Raven.Documentation.Pages/client-api/operations/maintenance/etl/add-etl.js.markdown @@ -0,0 +1,41 @@ +# Operations: How to Add ETL + +You can add ETL task by using **AddEtlOperation**. + +## Usage + +{CODE:nodejs add_etl_operation@client-api\Operations\addEtl.js /} + +| Parameters | | | +| ------------- | ----- | ---- | +| **configuration** | `EtlConfiguration` | ETL configuration where `T` is connection string type | + +## Example - Add Raven ETL + +{CODE:nodejs add_raven_etl@client-api\Operations\addEtl.js /} + +## Example - Add Sql ETL + +{CODE:nodejs add_sql_etl@client-api\Operations\addEtl.js /} + +## Example - Add OLAP ETL + +{CODE:nodejs add_olap_etl@client-api\Operations\addEtl.js /} + +## Related Articles + +### ETL + +- [Basics](../../../../server/ongoing-tasks/etl/basics) +- [RavenDB ETL](../../../../server/ongoing-tasks/etl/raven) +- [SQL ETL](../../../../server/ongoing-tasks/etl/sql) + +### Studio + +- [RavenDB ETL Task](../../../../studio/database/tasks/ongoing-tasks/ravendb-etl-task) + +### Connection Strings + +- [Add](../../../../client-api/operations/maintenance/connection-strings/add-connection-string) +- [Get](../../../../client-api/operations/maintenance/connection-strings/get-connection-string) +- [Remove](../../../../client-api/operations/maintenance/connection-strings/remove-connection-string) diff --git a/Documentation/5.3/Samples/java/src/test/java/net/ravendb/ClientApi/Operations/AddEtl.java b/Documentation/5.3/Samples/java/src/test/java/net/ravendb/ClientApi/Operations/AddEtl.java new file mode 100644 index 0000000000..4c739e9ecb --- /dev/null +++ b/Documentation/5.3/Samples/java/src/test/java/net/ravendb/ClientApi/Operations/AddEtl.java @@ -0,0 +1,122 @@ +package net.ravendb.ClientApi.Operations; + +import net.ravendb.client.documents.DocumentStore; +import net.ravendb.client.documents.IDocumentStore; +import net.ravendb.client.documents.operations.etl.*; +import net.ravendb.client.documents.operations.etl.olap.OlapConnectionString; +import net.ravendb.client.documents.operations.etl.olap.OlapEtlConfiguration; +import net.ravendb.client.documents.operations.etl.sql.SqlConnectionString; +import net.ravendb.client.documents.operations.etl.sql.SqlEtlConfiguration; +import net.ravendb.client.documents.operations.etl.sql.SqlEtlTable; + +import java.util.Arrays; + +public class AddEtl { + + private interface IFoo { + /* + //region add_etl_operation + public AddEtlOperation(EtlConfiguration configuration); + //endregion + */ + } + + public AddEtl() { + try (IDocumentStore store = new DocumentStore()) { + //region add_raven_etl + RavenEtlConfiguration configuration = new RavenEtlConfiguration(); + configuration.setName("Employees ETL"); + Transformation transformation = new Transformation(); + transformation.setName("Script #1"); + transformation.setScript("loadToEmployees ({\n" + + " Name: this.FirstName + ' ' + this.LastName,\n" + + " Title: this.Title\n" + + "});"); + + configuration.setTransforms(Arrays.asList(transformation)); + AddEtlOperation operation = new AddEtlOperation<>(configuration); + AddEtlOperationResult result = store.maintenance().send(operation); + //endregion + } + + try (IDocumentStore store = new DocumentStore()) { + //region add_sql_etl + SqlEtlConfiguration configuration = new SqlEtlConfiguration(); + SqlEtlTable table1 = new SqlEtlTable(); + table1.setTableName("Orders"); + table1.setDocumentIdColumn("Id"); + table1.setInsertOnlyMode(false); + + SqlEtlTable table2 = new SqlEtlTable(); + table2.setTableName("OrderLines"); + table2.setDocumentIdColumn("OrderId"); + table2.setInsertOnlyMode(false); + + configuration.setSqlTables(Arrays.asList(table1, table2)); + configuration.setName("Order to SQL"); + configuration.setConnectionStringName("sql-connection-string-name"); + + Transformation transformation = new Transformation(); + transformation.setName("Script #1"); + transformation.setCollections(Arrays.asList("Orders")); + transformation.setScript("var orderData = {\n" + + " Id: id(this),\n" + + " OrderLinesCount: this.Lines.length,\n" + + " TotalCost: 0\n" + + "};\n" + + "\n" + + " for (var i = 0; i < this.Lines.length; i++) {\n" + + " var line = this.Lines[i];\n" + + " orderData.TotalCost += line.PricePerUnit;\n" + + "\n" + + " // Load to SQL table 'OrderLines'\n" + + " loadToOrderLines({\n" + + " OrderId: id(this),\n" + + " Qty: line.Quantity,\n" + + " Product: line.Product,\n" + + " Cost: line.PricePerUnit\n" + + " });\n" + + " }\n" + + " orderData.TotalCost = Math.round(orderData.TotalCost * 100) / 100;\n" + + "\n" + + " // Load to SQL table 'Orders'\n" + + " loadToOrders(orderData)"); + + configuration.setTransforms(Arrays.asList(transformation)); + + AddEtlOperation operation = new AddEtlOperation<>(configuration); + + AddEtlOperationResult result = store.maintenance().send(operation); + //endregion + } + + try (IDocumentStore store = new DocumentStore()) { + //region add_olap_etl + OlapEtlConfiguration configuration = new OlapEtlConfiguration(); + + configuration.setName("Orders ETL"); + configuration.setConnectionStringName("olap-connection-string-name"); + + Transformation transformation = new Transformation(); + transformation.setName("Script #1"); + transformation.setCollections(Arrays.asList("Orders")); + transformation.setScript("var orderDate = new Date(this.OrderedAt);\n"+ + "var year = orderDate.getFullYear();\n"+ + "var month = orderDate.getMonth();\n"+ + "var key = new Date(year, month);\n"+ + "loadToOrders(key, {\n"+ + " Company : this.Company,\n"+ + " ShipVia : this.ShipVia\n"+ + "})" + ); + + configuration.setTransforms(Arrays.asList(transformation)); + + AddEtlOperation operation = new AddEtlOperation(configuration); + + AddEtlOperationResult result = store.maintenance().send(operation); + //endregion + } + + } +} diff --git a/Documentation/5.3/Samples/nodejs/client-api/Operations/AddEtl.js b/Documentation/5.3/Samples/nodejs/client-api/Operations/AddEtl.js new file mode 100644 index 0000000000..dc880c095b --- /dev/null +++ b/Documentation/5.3/Samples/nodejs/client-api/Operations/AddEtl.js @@ -0,0 +1,90 @@ + +import { + AddEtlOperation, + DocumentStore, OlapEtlConfiguration, + RavenEtlConfiguration, + SqlEtlConfiguration, + SqlEtlTable, + Transformation +} from 'ravendb'; +import { EtlConfiguration } from 'ravendb'; + + let urls, database, authOptions; + + class T { + } + +{ + //document_store_creation + const store = new DocumentStore(["http://localhost:8080"], "Northwind2"); + store.initialize(); + const session = store.openSession(); + let configuration; + let etlConfiguration; + + + //region add_etl_operation + const operation = new AddEtlOperation(etlConfiguration); + //endregion + + + //region add_raven_etl + const etlConfigurationRvn = Object.assign(new RavenEtlConfiguration(), { + connectionStringName: "raven-connection-string-name", + disabled: false, + name: "etlRvn" + }); + + const transformationRvn = { + applyToAllDocuments: true, + name: "Script #1" + }; + + etlConfigurationRvn.transforms = [transformationRvn]; + + const operationRvn = new AddEtlOperation(etlConfigurationRvn); + const etlResultRvn = await store.maintenance.send(operationRvn); + //endregion + + + //region add_sql_etl + const transformation = { + applyToAllDocuments: true, + name: "Script #1" + }; + + const table1 = { + documentIdColumn: "Id", + insertOnlyMode: false, + tableName: "Users" + }; + + const etlConfigurationSql = Object.assign(new SqlEtlConfiguration(), { + connectionStringName: "sql-connection-string-name", + disabled: false, + name: "etlSql", + transforms: [transformation], + sqlTables: [table1] + }); + + const operationSql = new AddEtlOperation(etlConfigurationSql); + const etlResult = await store.maintenance.send(operationSql); + //endregion + + //region add_olap_etl + const transformationOlap = { + applyToAllDocuments: true, + name: "Script #1" + }; + + const etlConfigurationOlap = Object.assign(new OlapEtlConfiguration(), { + connectionStringName: "olap-connection-string-name", + disabled: false, + name: "etlOlap", + transforms: [transformationOlap], + }); + + const operationOlap = new AddEtlOperation(etlConfigurationOlap); + const etlResultOlap = await store.maintenance.send(operationOlap); + //endregion +} \ No newline at end of file From 9fea3a40a17f634323cf3b4accff677b68e3702c Mon Sep 17 00:00:00 2001 From: danielle9897 Date: Mon, 22 Jul 2024 16:06:01 +0300 Subject: [PATCH 19/25] RDoc-2882 The 'Add ETL Operation' article --- .../add-connection-string.dotnet.markdown | 2 +- .../maintenance/etl/add-etl.dotnet.markdown | 155 +++++++++++++ .../maintenance/etl/add-etl.java.markdown | 78 +++++++ .../maintenance/etl/add-etl.js.markdown | 67 ++++++ .../Operations/Maintenance/Etl/AddEtl.cs | 219 ++++++++++++++++++ .../Operations/Maintenance/Etl/AddEtl.java | 122 ++++++++++ .../operations/maintenance/etl/AddEtl.js | 99 ++++++++ 7 files changed, 741 insertions(+), 1 deletion(-) create mode 100644 Documentation/6.1/Raven.Documentation.Pages/client-api/operations/maintenance/etl/add-etl.dotnet.markdown create mode 100644 Documentation/6.1/Raven.Documentation.Pages/client-api/operations/maintenance/etl/add-etl.java.markdown create mode 100644 Documentation/6.1/Raven.Documentation.Pages/client-api/operations/maintenance/etl/add-etl.js.markdown create mode 100644 Documentation/6.1/Samples/csharp/Raven.Documentation.Samples/ClientApi/Operations/Maintenance/Etl/AddEtl.cs create mode 100644 Documentation/6.1/Samples/java/src/test/java/net/ravendb/ClientApi/Operations/Maintenance/Etl/AddEtl.java create mode 100644 Documentation/6.1/Samples/nodejs/client-api/operations/maintenance/etl/AddEtl.js diff --git a/Documentation/6.1/Raven.Documentation.Pages/client-api/operations/maintenance/connection-strings/add-connection-string.dotnet.markdown b/Documentation/6.1/Raven.Documentation.Pages/client-api/operations/maintenance/connection-strings/add-connection-string.dotnet.markdown index e996810d4d..98b12d0a5f 100644 --- a/Documentation/6.1/Raven.Documentation.Pages/client-api/operations/maintenance/connection-strings/add-connection-string.dotnet.markdown +++ b/Documentation/6.1/Raven.Documentation.Pages/client-api/operations/maintenance/connection-strings/add-connection-string.dotnet.markdown @@ -8,7 +8,7 @@ * In this page: * [Add a RavenDB connection string](../../../../client-api/operations/maintenance/connection-strings/add-connection-string#add-a-ravendb-connection-string) * [Add an SQL connection string](../../../../client-api/operations/maintenance/connection-strings/add-connection-string#add-an-sql-connection-string) - * [Add an Olap connection string](../../../../client-api/operations/maintenance/connection-strings/add-connection-string#add-an-olap-connection-string) + * [Add an OLAP connection string](../../../../client-api/operations/maintenance/connection-strings/add-connection-string#add-an-olap-connection-string) * [Add an Elasticsearch connection string](../../../../client-api/operations/maintenance/connection-strings/add-connection-string#add-an-elasticsearch-connection-string) * [Add a Kafka connection string](../../../../client-api/operations/maintenance/connection-strings/add-connection-string#add-a-kafka-connection-string) * [Add a RabbitMQ connection string](../../../../client-api/operations/maintenance/connection-strings/add-connection-string#add-a-rabbitmq-connection-string) diff --git a/Documentation/6.1/Raven.Documentation.Pages/client-api/operations/maintenance/etl/add-etl.dotnet.markdown b/Documentation/6.1/Raven.Documentation.Pages/client-api/operations/maintenance/etl/add-etl.dotnet.markdown new file mode 100644 index 0000000000..bbe2b275fa --- /dev/null +++ b/Documentation/6.1/Raven.Documentation.Pages/client-api/operations/maintenance/etl/add-etl.dotnet.markdown @@ -0,0 +1,155 @@ +# Add ETL Operation +--- + +{NOTE: } + +* Use the `AddEtlOperation` method to add a new ongoing ETL task to your database. + +* To learn about ETL (Extract, Transfer, Load) ongoing tasks, see article [ETL Basics](../../../../server/ongoing-tasks/etl/basics). + To learn how to manage ETL tasks from the Studio, see [Ongoing tasks - overview](../../../../studio/database/tasks/ongoing-tasks/general-info). + +* In this page: + + * [Add RavenDB ETL task](../../../../client-api/operations/maintenance/etl/add-etl#add-ravendb-etl-task) + * [Add SQL ETL task](../../../../client-api/operations/maintenance/etl/add-etl#add-sql-etl-task) + * [Add OLAP ETL task](../../../../client-api/operations/maintenance/etl/add-etl#add-olap-etl-task) + * [Add Elasticsearch ETL task](../../../../client-api/operations/maintenance/etl/add-etl#add-elasticsearch-etl-task) + * [Add Kafka ETL task](../../../../client-api/operations/maintenance/etl/add-etl#add-kafka-etl-task) + * [Add RabbitMQ ETL task](../../../../client-api/operations/maintenance/etl/add-etl#add-rabbitmq-etl-task) + * [Add Azure Queue Storage ETL task](../../../../client-api/operations/maintenance/etl/add-etl#add-azure-queue-storage-etl-task) + * [Syntax](../../../../client-api/operations/maintenance/etl/add-etl#syntax) + +{NOTE/} + +--- + +{PANEL: Add RavenDB ETL task} + +* Learn about the RavenDB ETL task in article **[RavenDB ETL task](../../../../server/ongoing-tasks/etl/raven)**. +* Learn how to define a connection string for the RavenDB ETL task in section **[Add a RavenDB connection string](../../../../client-api/operations/maintenance/connection-strings/add-connection-string#add-a-ravendb-connection-string)**. +* To manage the RavenDB ETL task from the Studio, see **[Studio: RavenDB ETL task](../.././../studio/database/tasks/ongoing-tasks/ravendb-etl-task)**. + +--- + +The following example adds a RavenDB ETL task: + +{CODE add_raven_etl@ClientApi\Operations\Maintenance\Etl\AddEtl.cs /} + +{PANEL/} + +{PANEL: Add SQL ETL task} + +* Learn about the SQL ETL task in article **[SQL ETL task](../../../../server/ongoing-tasks/etl/sql)**. +* Learn how to define a connection string for the SQL ETL task in section **[Add a SQL connection string](../../../../client-api/operations/maintenance/connection-strings/add-connection-string#add-an-sql-connection-string)**. + +--- + +The following example adds an SQL ETL task: + +{CODE add_sql_etl@ClientApi\Operations\Maintenance\Etl\AddEtl.cs /} + +{PANEL/} + +{PANEL: Add OLAP ETL task} + +* Learn about the OLAP ETL task in article **[OLAP ETL task](../../../../server/ongoing-tasks/etl/olap)**. +* Learn how to define a connection string for the OLAP ETL task in section **[Add an OLAP connection string](../../../../client-api/operations/maintenance/connection-strings/add-connection-string#add-an-olap-connection-string)**. +* To manage the OLAP ETL task from the Studio, see **[Studio: OLAP ETL task](../.././../studio/database/tasks/ongoing-tasks/olap-etl-task)**. + +--- + +The following example adds an OLAP ETL task: + +{CODE add_olap_etl@ClientApi\Operations\Maintenance\Etl\AddEtl.cs /} + +{PANEL/} + +{PANEL: Add Elasticsearch ETL task} + +* Learn about the Elasticsearch ETL task in article **[Elasticsearch ETL task](../../../../server/ongoing-tasks/etl/elasticsearch)**. +* Learn how to define a connection string for the Elasticsearch ETL task in section **[Add an Elasticsearch connection string](../../../../client-api/operations/maintenance/connection-strings/add-connection-string#add-an-elasticsearch-connection-string)**. +* To manage the Elasticsearch ETL task from the Studio, see **[Studio: Elasticsearch ETL task](../.././../studio/database/tasks/ongoing-tasks/elasticsearch-etl-task)**. + +--- + +The following example adds an Elasticsearch ETL task: + +{CODE add_elasticsearch_etl@ClientApi\Operations\Maintenance\Etl\AddEtl.cs /} + +{PANEL/} + +{PANEL: Add Kafka ETL task} + +* Learn about the Kafka ETL task in article **[Kafka ETL task](../../../../server/ongoing-tasks/etl/queue-etl/kafka)**. +* Learn how to define a connection string for the Kafka ETL task in section **[Add a Kafka connection string](../../../../server/ongoing-tasks/etl/queue-etl/kafka#add-a-kafka-connection-string)**. +* To manage the Kafka ETL task from the Studio, see **[Studio: Kafka ETL task](../../../../studio/database/tasks/ongoing-tasks/kafka-etl-task)**. + +--- + +* Examples showing how to add a Kafka ETL task are available in section **[Add a Kafka ETL task](../../../../server/ongoing-tasks/etl/queue-etl/kafka#add-a-kafka-etl-task)**. + +{PANEL/} + +{PANEL: Add RabbitMQ ETL task} + +* Learn about the RabbitMQ ETL task in article **[RabbitMQ ETL task](../../../../server/ongoing-tasks/etl/queue-etl/rabbit-mq)**. +* Learn how to define a connection string for the RabbitMQ ETL task in section **[Add a RabbitMQ connection string](../../../../server/ongoing-tasks/etl/queue-etl/rabbit-mq#add-a-rabbitmq-connection-string)**. +* To manage the RabbitMQ ETL task from the Studio, see **[Studio: RabbitMQ ETL task](../../../../studio/database/tasks/ongoing-tasks/rabbitmq-etl-task)**. + +--- + +* Examples showing how to add a RabbitMQ ETL task are available in section **[Add a RabbitMQ ETL task](../../../../server/ongoing-tasks/etl/queue-etl/rabbit-mq#add-a-rabbitmq-etl-task)**. + +{PANEL/} + +{PANEL: Add Azure Queue Storage ETL task} + +* Learn about the Azure Queue Storage ETL task in article **[Azure Queue Storage ETL task](../../../../server/ongoing-tasks/etl/queue-etl/azure-queue)**. +* Learn how to define a connection string for the Azure Queue Storage ETL task in section + **[Add an Azure Queue Storage connection string](../../../../server/ongoing-tasks/etl/queue-etl/azure-queue#add-an-azure-queue-storage-connection-string)**. +* To manage the Azure Queue Storage ETL task from the Studio, see **[Studio: Azure Queue Storage ETL task](../../../../studio/database/tasks/ongoing-tasks/azure-queue-storage-etl)**. + +--- + +* Examples showing how to add an Azure Queue Storage ETL task are available in section **[Add a Azure Queue Storage ETL task](../../../../server/ongoing-tasks/etl/queue-etl/azure-queue#add-an-azure-queue-storage-etl-task)**. + +{PANEL/} + +{PANEL: Syntax} + +{CODE add_etl_operation@ClientApi\Operations\Maintenance\Etl\AddEtl.cs /} + +| Parameter | Type | Description | +|-------------------|-----------------------|----------------------------------------------------------------------| +| **configuration** | `EtlConfiguration` | The ETL configuration object where `T` is the connection string type | + +{PANEL/} + +## Related Articles + +### Server + +- [ETL basics](../../../../server/ongoing-tasks/etl/basics) +- [RavenDB ETL](../../../../server/ongoing-tasks/etl/raven) +- [SQL ETL](../../../../server/ongoing-tasks/etl/sql) +- [OLAP ETL](../../../../server/ongoing-tasks/etl/olap) +- [Elasticsearch ETL](../../../../server/ongoing-tasks/etl/elasticsearch) +- [Kafka ETL](../../../../server/ongoing-tasks/etl/kafka) +- [RabbitMQ ETL](../../../../server/ongoing-tasks/etl/rabbit-mq) +- [Azure Queue Storage ETL](../../../../server/ongoing-tasks/etl/azure-queue) + +### Studio + +- [Ongoing tasks - overview](../../../../studio/database/tasks/ongoing-tasks/general-info) +- [RavenDB ETL Task](../../../../studio/database/tasks/ongoing-tasks/ravendb-etl-task) +- [OLAP ETL Task](../../../../studio/database/tasks/ongoing-tasks/olap-etl-task) +- [Elasticsearch ETL Task](../../../../studio/database/tasks/ongoing-tasks/elasticsearch-etl-task) +- [Kafka ETL Task](../../../../studio/database/tasks/ongoing-tasks/kafka-etl-task) +- [RabbitMQ ETL Task](../../../../studio/database/tasks/ongoing-tasks/rabbitmq-etl-task) +- [Azure Queue Storage ETL Task](../../../../studio/database/tasks/ongoing-tasks/azure-queue-storage-etl) + +### Connection Strings + +- [Add](../../../../client-api/operations/maintenance/connection-strings/add-connection-string) +- [Get](../../../../client-api/operations/maintenance/connection-strings/get-connection-string) +- [Remove](../../../../client-api/operations/maintenance/connection-strings/remove-connection-string) diff --git a/Documentation/6.1/Raven.Documentation.Pages/client-api/operations/maintenance/etl/add-etl.java.markdown b/Documentation/6.1/Raven.Documentation.Pages/client-api/operations/maintenance/etl/add-etl.java.markdown new file mode 100644 index 0000000000..05c71dc16c --- /dev/null +++ b/Documentation/6.1/Raven.Documentation.Pages/client-api/operations/maintenance/etl/add-etl.java.markdown @@ -0,0 +1,78 @@ +# Add ETL Operation +--- + +{NOTE: } + +* Use the `AddEtlOperation` method to add a new ongoing ETL task to your database. + +* To learn about ETL (Extract, Transfer, Load) ongoing tasks, see article [ETL Basics](../../../../server/ongoing-tasks/etl/basics). + To learn how to manage ETL tasks from the Studio, see [Ongoing tasks - overview](../../../../studio/database/tasks/ongoing-tasks/general-info). + +* In this page: + * [Example - add Raven ETL](../../../../client-api/operations/maintenance/etl/add-etl#example---add-raven-etl) + * [Example - add SQL ETL](../../../../client-api/operations/maintenance/etl/add-etl#example---add-sql-etl) + * [Example - add OLAP ETL](../../../../client-api/operations/maintenance/etl/add-etl#example---add-olap-etl) + * [Syntax](../../../../client-api/operations/maintenance/etl/add-etl#syntax) + +{NOTE/} + +--- + +{PANEL: Example - add Raven ETL} + +{CODE:java add_raven_etl@ClientApi\Operations\Maintenance\Etl\AddEtl.java /} + +{NOTE: } + +**Secure servers**: + +To [connect secure RavenDB servers](../../../../server/security/authentication/certificate-management#enabling-communication-between-servers:-importing-and-exporting-certificates) +you need to + +1. Export the server certificate from the source server. +2. Install it as a client certificate on the destination server. + +This can be done in the RavenDB Studio -> Server Management -> [Certificates view](../../../../server/security/authentication/certificate-management#studio-certificates-management-view). +{NOTE/} + +{PANEL/} + +{PANEL: Example - add SQL ETL} + +{CODE:java add_sql_etl@ClientApi\Operations\Maintenance\Etl\AddEtl.java /} + +{PANEL/} + +{PANEL: Example - add OLAP ETL} + +{CODE:java add_olap_etl@ClientApi\Operations\Maintenance\Etl\AddEtl.java /} + +{PANEL/} + +{PANEL: Syntax} + +{CODE:java add_etl_operation@ClientApi\Operations\Maintenance\Etl\AddEtl.java /} + +| Parameter | Type | Description | +|-------------------|-----------------------|-------------------------------------------------------| +| **configuration** | `EtlConfiguration` | ETL configuration where `T` is connection string type | + +{PANEL/} + +## Related Articles + +### ETL + +- [Basics](../../../../server/ongoing-tasks/etl/basics) +- [RavenDB ETL](../../../../server/ongoing-tasks/etl/raven) +- [SQL ETL](../../../../server/ongoing-tasks/etl/sql) + +### Studio + +- [RavenDB ETL Task](../../../../studio/database/tasks/ongoing-tasks/ravendb-etl-task) + +### Connection Strings + +- [Add](../../../../client-api/operations/maintenance/connection-strings/add-connection-string) +- [Get](../../../../client-api/operations/maintenance/connection-strings/get-connection-string) +- [Remove](../../../../client-api/operations/maintenance/connection-strings/remove-connection-string) diff --git a/Documentation/6.1/Raven.Documentation.Pages/client-api/operations/maintenance/etl/add-etl.js.markdown b/Documentation/6.1/Raven.Documentation.Pages/client-api/operations/maintenance/etl/add-etl.js.markdown new file mode 100644 index 0000000000..9e337f26a4 --- /dev/null +++ b/Documentation/6.1/Raven.Documentation.Pages/client-api/operations/maintenance/etl/add-etl.js.markdown @@ -0,0 +1,67 @@ +# Add ETL Operation +--- + +{NOTE: } + +* Use the `AddEtlOperation` method to add a new ongoing ETL task to your database. + +* To learn about ETL (Extract, Transfer, Load) ongoing tasks, see article [ETL Basics](../../../../server/ongoing-tasks/etl/basics). + To learn how to manage ETL tasks from the Studio, see [Ongoing tasks - overview](../../../../studio/database/tasks/ongoing-tasks/general-info). + +* In this page: + * [Example - add Raven ETL](../../../../client-api/operations/maintenance/etl/add-etl#example---add-raven-etl) + * [Example - add SQL ETL](../../../../client-api/operations/maintenance/etl/add-etl#example---add-sql-etl) + * [Example - add OLAP ETL](../../../../client-api/operations/maintenance/etl/add-etl#example---add-olap-etl) + * [Syntax](../../../../client-api/operations/maintenance/etl/add-etl#syntax) + +{NOTE/} + +--- + +{PANEL: Example - add Raven ETL} + +{CODE:nodejs add_raven_etl@client-api\operations\maintenance\etl\addEtl.js /} + +{PANEL/} + +{PANEL: Example - add SQL ETL} + +{CODE:nodejs add_sql_etl@client-api\operations\maintenance\etl\addEtl.js /} + +{PANEL/} + +{PANEL: Example - add OLAP ETL} + +{CODE:nodejs add_olap_etl@client-api\operations\maintenance\etl\addEtl.js /} + +{PANEL/} + +{PANEL: Syntax} + +{CODE:nodejs add_etl_operation@client-api\operations\maintenance\etl\addEtl.js /} + +| Parameter | Type | Description | +|-------------------|---------------------------|-----------------------------------| +| **configuration** | `EtlConfiguration` object | The ETL task configuration to add | + +{CODE:nodejs syntax@client-api\operations\maintenance\etl\addEtl.js /} + +{PANEL/} + +## Related Articles + +### ETL + +- [Basics](../../../../server/ongoing-tasks/etl/basics) +- [RavenDB ETL](../../../../server/ongoing-tasks/etl/raven) +- [SQL ETL](../../../../server/ongoing-tasks/etl/sql) + +### Studio + +- [RavenDB ETL Task](../../../../studio/database/tasks/ongoing-tasks/ravendb-etl-task) + +### Connection Strings + +- [Add](../../../../client-api/operations/maintenance/connection-strings/add-connection-string) +- [Get](../../../../client-api/operations/maintenance/connection-strings/get-connection-string) +- [Remove](../../../../client-api/operations/maintenance/connection-strings/remove-connection-string) diff --git a/Documentation/6.1/Samples/csharp/Raven.Documentation.Samples/ClientApi/Operations/Maintenance/Etl/AddEtl.cs b/Documentation/6.1/Samples/csharp/Raven.Documentation.Samples/ClientApi/Operations/Maintenance/Etl/AddEtl.cs new file mode 100644 index 0000000000..c02b8c4b09 --- /dev/null +++ b/Documentation/6.1/Samples/csharp/Raven.Documentation.Samples/ClientApi/Operations/Maintenance/Etl/AddEtl.cs @@ -0,0 +1,219 @@ +using Raven.Client.Documents; +using Raven.Client.Documents.Operations.ETL; +using Raven.Client.Documents.Operations.ETL.ElasticSearch; +using Raven.Client.Documents.Operations.ETL.OLAP; +using Raven.Client.Documents.Operations.ETL.SQL; + +namespace Raven.Documentation.Samples.ClientApi.Operations.Maintenance.Etl +{ + public class AddEtl + { + public AddEtl() + { + using (var store = new DocumentStore()) + { + #region add_raven_etl + // Define the RavenDB ETL task configuration object + // ================================================ + var ravenEtlConfig = new RavenEtlConfiguration + { + Name = "task-name", + ConnectionStringName = "raven-connection-string-name", + Transforms = + { + new Transformation + { + // The script name + Name = "script-name", + + // RavenDB collections the script uses + Collections = { "Employees" }, + + // The transformation script + Script = @"loadToEmployees ({ + Name: this.FirstName + ' ' + this.LastName, + Title: this.Title + });" + } + }, + + // Do not prevent task failover to another node (optional) + PinToMentorNode = false + }; + + // Define the AddEtlOperation + // ========================== + var operation = new AddEtlOperation(ravenEtlConfig); + + // Execute the operation by passing it to Maintenance.Send + // ======================================================= + AddEtlOperationResult result = store.Maintenance.Send(operation); + #endregion + } + + using (var store = new DocumentStore()) + { + #region add_sql_etl + // Define the SQL ETL task configuration object + // ============================================ + var sqlEtlConfig = new SqlEtlConfiguration + { + Name = "task-name", + ConnectionStringName = "sql-connection-string-name", + SqlTables = + { + new SqlEtlTable {TableName = "Orders", DocumentIdColumn = "Id", InsertOnlyMode = false}, + new SqlEtlTable {TableName = "OrderLines", DocumentIdColumn = "OrderId", InsertOnlyMode = false}, + }, + Transforms = + { + new Transformation + { + Name = "script-name", + Collections = { "Orders" }, + Script = @"var orderData = { + Id: id(this), + OrderLinesCount: this.Lines.length, + TotalCost: 0 + }; + + for (var i = 0; i < this.Lines.length; i++) { + var line = this.Lines[i]; + orderData.TotalCost += line.PricePerUnit; + + // Load to SQL table 'OrderLines' + loadToOrderLines({ + OrderId: id(this), + Qty: line.Quantity, + Product: line.Product, + Cost: line.PricePerUnit + }); + } + orderData.TotalCost = Math.round(orderData.TotalCost * 100) / 100; + + // Load to SQL table 'Orders' + loadToOrders(orderData)" + } + }, + + // Do not prevent task failover to another node (optional) + PinToMentorNode = false + }; + + // Define the AddEtlOperation + // =========================== + var operation = new AddEtlOperation(sqlEtlConfig); + + // Execute the operation by passing it to Maintenance.Send + // ======================================================= + AddEtlOperationResult result = store.Maintenance.Send(operation); + #endregion + } + + using (var store = new DocumentStore()) + { + #region add_olap_etl + // Define the OLAP ETL task configuration object + // ============================================= + var olapEtlConfig = new OlapEtlConfiguration + { + Name = "task-name", + ConnectionStringName = "olap-connection-string-name", + Transforms = + { + new Transformation + { + Name = "script-name", + Collections = {"Orders"}, + Script = @"var orderDate = new Date(this.OrderedAt); + var year = orderDate.getFullYear(); + var month = orderDate.getMonth(); + var key = new Date(year, month); + loadToOrders(key, { + Company : this.Company, + ShipVia : this.ShipVia + })" + } + } + }; + + // Define the AddEtlOperation + // ========================== + var operation = new AddEtlOperation(olapEtlConfig); + + // Execute the operation by passing it to Maintenance.Send + // ======================================================= + AddEtlOperationResult result = store.Maintenance.Send(operation); + #endregion + } + + using (var store = new DocumentStore()) + { + #region add_elasticsearch_etl + // Define the Elasticsearch ETL task configuration object + // ====================================================== + var elasticsearchEtlConfig = new ElasticSearchEtlConfiguration + { + Name = "task-name", + ConnectionStringName = "elasticsearch-connection-string-name", + ElasticIndexes = + { + // Define Elasticsearch Indexes + new ElasticSearchIndex + { + // Elasticsearch Index name + IndexName = "orders", + // The Elasticsearch document property that will contain the source RavenDB document id. + // Make sure this property is also defined inside the transform script. + DocumentIdProperty = "DocId", + InsertOnlyMode = false + }, + new ElasticSearchIndex + { + IndexName = "lines", + DocumentIdProperty = "OrderLinesCount", + // If true, don't send _delete_by_query before appending docs + InsertOnlyMode = true + } + }, + Transforms = + { + new Transformation() + { + Collections = { "Orders" }, + Script = @"var orderData = { + DocId: id(this), + OrderLinesCount: this.Lines.length, + TotalCost: 0 + }; + + // Write the `orderData` as a document to the Elasticsearch 'orders' index + loadToOrders(orderData);", + + Name = "script-name" + } + } + }; + + // Define the AddEtlOperation + // ========================== + var operation = new AddEtlOperation(elasticsearchEtlConfig); + + // Execute the operation by passing it to Maintenance.Send + // ======================================================= + store.Maintenance.Send(operation); + #endregion + } + } + + private interface IFoo + { + /* + #region add_etl_operation + public AddEtlOperation(EtlConfiguration configuration) + #endregion + */ + } + } +} + diff --git a/Documentation/6.1/Samples/java/src/test/java/net/ravendb/ClientApi/Operations/Maintenance/Etl/AddEtl.java b/Documentation/6.1/Samples/java/src/test/java/net/ravendb/ClientApi/Operations/Maintenance/Etl/AddEtl.java new file mode 100644 index 0000000000..4c739e9ecb --- /dev/null +++ b/Documentation/6.1/Samples/java/src/test/java/net/ravendb/ClientApi/Operations/Maintenance/Etl/AddEtl.java @@ -0,0 +1,122 @@ +package net.ravendb.ClientApi.Operations; + +import net.ravendb.client.documents.DocumentStore; +import net.ravendb.client.documents.IDocumentStore; +import net.ravendb.client.documents.operations.etl.*; +import net.ravendb.client.documents.operations.etl.olap.OlapConnectionString; +import net.ravendb.client.documents.operations.etl.olap.OlapEtlConfiguration; +import net.ravendb.client.documents.operations.etl.sql.SqlConnectionString; +import net.ravendb.client.documents.operations.etl.sql.SqlEtlConfiguration; +import net.ravendb.client.documents.operations.etl.sql.SqlEtlTable; + +import java.util.Arrays; + +public class AddEtl { + + private interface IFoo { + /* + //region add_etl_operation + public AddEtlOperation(EtlConfiguration configuration); + //endregion + */ + } + + public AddEtl() { + try (IDocumentStore store = new DocumentStore()) { + //region add_raven_etl + RavenEtlConfiguration configuration = new RavenEtlConfiguration(); + configuration.setName("Employees ETL"); + Transformation transformation = new Transformation(); + transformation.setName("Script #1"); + transformation.setScript("loadToEmployees ({\n" + + " Name: this.FirstName + ' ' + this.LastName,\n" + + " Title: this.Title\n" + + "});"); + + configuration.setTransforms(Arrays.asList(transformation)); + AddEtlOperation operation = new AddEtlOperation<>(configuration); + AddEtlOperationResult result = store.maintenance().send(operation); + //endregion + } + + try (IDocumentStore store = new DocumentStore()) { + //region add_sql_etl + SqlEtlConfiguration configuration = new SqlEtlConfiguration(); + SqlEtlTable table1 = new SqlEtlTable(); + table1.setTableName("Orders"); + table1.setDocumentIdColumn("Id"); + table1.setInsertOnlyMode(false); + + SqlEtlTable table2 = new SqlEtlTable(); + table2.setTableName("OrderLines"); + table2.setDocumentIdColumn("OrderId"); + table2.setInsertOnlyMode(false); + + configuration.setSqlTables(Arrays.asList(table1, table2)); + configuration.setName("Order to SQL"); + configuration.setConnectionStringName("sql-connection-string-name"); + + Transformation transformation = new Transformation(); + transformation.setName("Script #1"); + transformation.setCollections(Arrays.asList("Orders")); + transformation.setScript("var orderData = {\n" + + " Id: id(this),\n" + + " OrderLinesCount: this.Lines.length,\n" + + " TotalCost: 0\n" + + "};\n" + + "\n" + + " for (var i = 0; i < this.Lines.length; i++) {\n" + + " var line = this.Lines[i];\n" + + " orderData.TotalCost += line.PricePerUnit;\n" + + "\n" + + " // Load to SQL table 'OrderLines'\n" + + " loadToOrderLines({\n" + + " OrderId: id(this),\n" + + " Qty: line.Quantity,\n" + + " Product: line.Product,\n" + + " Cost: line.PricePerUnit\n" + + " });\n" + + " }\n" + + " orderData.TotalCost = Math.round(orderData.TotalCost * 100) / 100;\n" + + "\n" + + " // Load to SQL table 'Orders'\n" + + " loadToOrders(orderData)"); + + configuration.setTransforms(Arrays.asList(transformation)); + + AddEtlOperation operation = new AddEtlOperation<>(configuration); + + AddEtlOperationResult result = store.maintenance().send(operation); + //endregion + } + + try (IDocumentStore store = new DocumentStore()) { + //region add_olap_etl + OlapEtlConfiguration configuration = new OlapEtlConfiguration(); + + configuration.setName("Orders ETL"); + configuration.setConnectionStringName("olap-connection-string-name"); + + Transformation transformation = new Transformation(); + transformation.setName("Script #1"); + transformation.setCollections(Arrays.asList("Orders")); + transformation.setScript("var orderDate = new Date(this.OrderedAt);\n"+ + "var year = orderDate.getFullYear();\n"+ + "var month = orderDate.getMonth();\n"+ + "var key = new Date(year, month);\n"+ + "loadToOrders(key, {\n"+ + " Company : this.Company,\n"+ + " ShipVia : this.ShipVia\n"+ + "})" + ); + + configuration.setTransforms(Arrays.asList(transformation)); + + AddEtlOperation operation = new AddEtlOperation(configuration); + + AddEtlOperationResult result = store.maintenance().send(operation); + //endregion + } + + } +} diff --git a/Documentation/6.1/Samples/nodejs/client-api/operations/maintenance/etl/AddEtl.js b/Documentation/6.1/Samples/nodejs/client-api/operations/maintenance/etl/AddEtl.js new file mode 100644 index 0000000000..5c3fb9d4bb --- /dev/null +++ b/Documentation/6.1/Samples/nodejs/client-api/operations/maintenance/etl/AddEtl.js @@ -0,0 +1,99 @@ +import { + AddEtlOperation, + DocumentStore, OlapEtlConfiguration, + RavenEtlConfiguration, + SqlEtlConfiguration, + SqlEtlTable, + Transformation +} from 'ravendb'; +import { EtlConfiguration } from 'ravendb'; + + let urls, database, authOptions; + + class T { + } + +{ + //document_store_creation + const store = new DocumentStore(["http://localhost:8080"], "Northwind2"); + store.initialize(); + const session = store.openSession(); + let configuration; + let etlConfiguration; + + //region add_etl_operation + const operation = new AddEtlOperation(etlConfiguration); + //endregion + + //region add_raven_etl + const etlConfigurationRvn = Object.assign(new RavenEtlConfiguration(), { + connectionStringName: "raven-connection-string-name", + disabled: false, + name: "etlRvn" + }); + + const transformationRvn = { + applyToAllDocuments: true, + name: "Script #1" + }; + + etlConfigurationRvn.transforms = [transformationRvn]; + + const operationRvn = new AddEtlOperation(etlConfigurationRvn); + const etlResultRvn = await store.maintenance.send(operationRvn); + //endregion + + + //region add_sql_etl + const transformation = { + applyToAllDocuments: true, + name: "Script #1" + }; + + const table1 = { + documentIdColumn: "Id", + insertOnlyMode: false, + tableName: "Users" + }; + + const etlConfigurationSql = Object.assign(new SqlEtlConfiguration(), { + connectionStringName: "sql-connection-string-name", + disabled: false, + name: "etlSql", + transforms: [transformation], + sqlTables: [table1] + }); + + const operationSql = new AddEtlOperation(etlConfigurationSql); + const etlResult = await store.maintenance.send(operationSql); + //endregion + + //region add_olap_etl + const transformationOlap = { + applyToAllDocuments: true, + name: "Script #1" + }; + + const etlConfigurationOlap = Object.assign(new OlapEtlConfiguration(), { + connectionStringName: "olap-connection-string-name", + disabled: false, + name: "etlOlap", + transforms: [transformationOlap], + }); + + const operationOlap = new AddEtlOperation(etlConfigurationOlap); + const etlResultOlap = await store.maintenance.send(operationOlap); + //endregion +} + +//region syntax +class EtlConfiguration { + taskId?; // number + name; // string + mentorNode?: // string + connectionStringName; // string + transforms; // Transformation[] + disabled?; // boolean + allowEtlOnNonEncryptedChannel?; // boolean +} +//endregion From 1d22292417f5ba8c9d39e0ba69f7571ba9f96e76 Mon Sep 17 00:00:00 2001 From: danielle9897 Date: Mon, 22 Jul 2024 16:44:27 +0300 Subject: [PATCH 20/25] RDoc-2882 Fix links --- .../add-connection-string.dotnet.markdown | 2 +- .../maintenance/etl/add-etl.dotnet.markdown | 12 ++++++------ .../server/ongoing-tasks/etl/basics.markdown | 2 +- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/Documentation/6.1/Raven.Documentation.Pages/client-api/operations/maintenance/connection-strings/add-connection-string.dotnet.markdown b/Documentation/6.1/Raven.Documentation.Pages/client-api/operations/maintenance/connection-strings/add-connection-string.dotnet.markdown index 98b12d0a5f..3bf847aa41 100644 --- a/Documentation/6.1/Raven.Documentation.Pages/client-api/operations/maintenance/connection-strings/add-connection-string.dotnet.markdown +++ b/Documentation/6.1/Raven.Documentation.Pages/client-api/operations/maintenance/connection-strings/add-connection-string.dotnet.markdown @@ -123,7 +123,7 @@ Learn how to add a RabbitMQ connection string in section [Add a RabbitMQ connect {PANEL: Add an Azure Queue Storage connection string } -The Azure Queue Storage connection string is used by RavenDB's [Azure Queue Storage ETL Task](../../../../server/ongoing-tasks/etl/queue-etl/server/ongoing-tasks/etl/queue-etl/azure-queue). +The Azure Queue Storage connection string is used by RavenDB's [Azure Queue Storage ETL Task](../../../../server/ongoing-tasks/etl/queue-etl/azure-queue). Learn to add an Azure Queue Storage connection string in section [Add an Azure Queue Storage connection string]( ../../../../server/ongoing-tasks/etl/queue-etl/azure-queue#add-an-azure-queue-storage-connection-string). {PANEL/} diff --git a/Documentation/6.1/Raven.Documentation.Pages/client-api/operations/maintenance/etl/add-etl.dotnet.markdown b/Documentation/6.1/Raven.Documentation.Pages/client-api/operations/maintenance/etl/add-etl.dotnet.markdown index bbe2b275fa..b3cf1b5eef 100644 --- a/Documentation/6.1/Raven.Documentation.Pages/client-api/operations/maintenance/etl/add-etl.dotnet.markdown +++ b/Documentation/6.1/Raven.Documentation.Pages/client-api/operations/maintenance/etl/add-etl.dotnet.markdown @@ -27,7 +27,7 @@ * Learn about the RavenDB ETL task in article **[RavenDB ETL task](../../../../server/ongoing-tasks/etl/raven)**. * Learn how to define a connection string for the RavenDB ETL task in section **[Add a RavenDB connection string](../../../../client-api/operations/maintenance/connection-strings/add-connection-string#add-a-ravendb-connection-string)**. -* To manage the RavenDB ETL task from the Studio, see **[Studio: RavenDB ETL task](../.././../studio/database/tasks/ongoing-tasks/ravendb-etl-task)**. +* To manage the RavenDB ETL task from the Studio, see **[Studio: RavenDB ETL task](../../../../studio/database/tasks/ongoing-tasks/ravendb-etl-task)**. --- @@ -54,7 +54,7 @@ The following example adds an SQL ETL task: * Learn about the OLAP ETL task in article **[OLAP ETL task](../../../../server/ongoing-tasks/etl/olap)**. * Learn how to define a connection string for the OLAP ETL task in section **[Add an OLAP connection string](../../../../client-api/operations/maintenance/connection-strings/add-connection-string#add-an-olap-connection-string)**. -* To manage the OLAP ETL task from the Studio, see **[Studio: OLAP ETL task](../.././../studio/database/tasks/ongoing-tasks/olap-etl-task)**. +* To manage the OLAP ETL task from the Studio, see **[Studio: OLAP ETL task](../../../../studio/database/tasks/ongoing-tasks/olap-etl-task)**. --- @@ -68,7 +68,7 @@ The following example adds an OLAP ETL task: * Learn about the Elasticsearch ETL task in article **[Elasticsearch ETL task](../../../../server/ongoing-tasks/etl/elasticsearch)**. * Learn how to define a connection string for the Elasticsearch ETL task in section **[Add an Elasticsearch connection string](../../../../client-api/operations/maintenance/connection-strings/add-connection-string#add-an-elasticsearch-connection-string)**. -* To manage the Elasticsearch ETL task from the Studio, see **[Studio: Elasticsearch ETL task](../.././../studio/database/tasks/ongoing-tasks/elasticsearch-etl-task)**. +* To manage the Elasticsearch ETL task from the Studio, see **[Studio: Elasticsearch ETL task](../../../../studio/database/tasks/ongoing-tasks/elasticsearch-etl-task)**. --- @@ -134,9 +134,9 @@ The following example adds an Elasticsearch ETL task: - [SQL ETL](../../../../server/ongoing-tasks/etl/sql) - [OLAP ETL](../../../../server/ongoing-tasks/etl/olap) - [Elasticsearch ETL](../../../../server/ongoing-tasks/etl/elasticsearch) -- [Kafka ETL](../../../../server/ongoing-tasks/etl/kafka) -- [RabbitMQ ETL](../../../../server/ongoing-tasks/etl/rabbit-mq) -- [Azure Queue Storage ETL](../../../../server/ongoing-tasks/etl/azure-queue) +- [Kafka ETL](../../../../server/ongoing-tasks/etl/queue-etl/kafka) +- [RabbitMQ ETL](../../../../server/ongoing-tasks/etl/queue-etl/rabbit-mq) +- [Azure Queue Storage ETL](../../../../server/ongoing-tasks/etl/queue-etl/azure-queue) ### Studio diff --git a/Documentation/6.1/Raven.Documentation.Pages/server/ongoing-tasks/etl/basics.markdown b/Documentation/6.1/Raven.Documentation.Pages/server/ongoing-tasks/etl/basics.markdown index 19b290e332..55227dea8b 100644 --- a/Documentation/6.1/Raven.Documentation.Pages/server/ongoing-tasks/etl/basics.markdown +++ b/Documentation/6.1/Raven.Documentation.Pages/server/ongoing-tasks/etl/basics.markdown @@ -61,7 +61,7 @@ * [Elasticsearch ETL](../../../server/ongoing-tasks/etl/elasticsearch) - send data to an _Elasticsearch destination_ * [Kafka ETL](../../../server/ongoing-tasks/etl/queue-etl/kafka) - send data to a _Kafka message broker_ * [RabbitMQ ETL](../../../server/ongoing-tasks/etl/queue-etl/rabbit-mq) - send data to an _RabbitMQ exchange_ - * [Azure Queue Storage ETL](../../../server/ongoing-tasks/etl/azure-queue) - send data to an _Azure Queue Storage message queue_ + * [Azure Queue Storage ETL](../../../server/ongoing-tasks/etl/queue-etl/azure-queue) - send data to an _Azure Queue Storage message queue_ * All ETL tasks can be defined from the Client API or from the [Studio](../../../studio/database/tasks/ongoing-tasks/general-info). From 5802cbb9647deda4dab71d2545954e12e5768320 Mon Sep 17 00:00:00 2001 From: danielle9897 Date: Mon, 22 Jul 2024 20:40:21 +0300 Subject: [PATCH 21/25] RDoc-2882 Small fix for the RabbitMQ loadTo methods --- .../server/ongoing-tasks/etl/queue-etl/rabbit-mq.markdown | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/Documentation/6.1/Raven.Documentation.Pages/server/ongoing-tasks/etl/queue-etl/rabbit-mq.markdown b/Documentation/6.1/Raven.Documentation.Pages/server/ongoing-tasks/etl/queue-etl/rabbit-mq.markdown index 935aac7824..113cac265d 100644 --- a/Documentation/6.1/Raven.Documentation.Pages/server/ongoing-tasks/etl/queue-etl/rabbit-mq.markdown +++ b/Documentation/6.1/Raven.Documentation.Pages/server/ongoing-tasks/etl/queue-etl/rabbit-mq.markdown @@ -139,14 +139,13 @@ For example, the following two calls, which load data to the Orders exchange, ar When replacing the exchange name with an empty string, the message will be routed using the routingKey via the default exchange, which is predefined by the broker. - * `loadTo(obj, {attributes})` + * `loadTo(obj)` + `loadTo(obj, {attributes})` When omitting the routingKey, messages delivery will depend on the exchange type. * `loadTo(obj, 'routingKey')` When omitting the attributes, default attribute values will be assigned. - * `loadTo(obj)` - --- A sample script that process documents from the Orders collection: From 96b2d8fbfb4a631d9aa0692cb36e6d6a670e4058 Mon Sep 17 00:00:00 2001 From: danielle9897 Date: Tue, 23 Jul 2024 10:42:36 +0300 Subject: [PATCH 22/25] RDoc-2882 RabbitMQ: Explain creation of default exchange --- .../server/ongoing-tasks/etl/queue-etl/rabbit-mq.markdown | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Documentation/6.1/Raven.Documentation.Pages/server/ongoing-tasks/etl/queue-etl/rabbit-mq.markdown b/Documentation/6.1/Raven.Documentation.Pages/server/ongoing-tasks/etl/queue-etl/rabbit-mq.markdown index 113cac265d..4db551a0a1 100644 --- a/Documentation/6.1/Raven.Documentation.Pages/server/ongoing-tasks/etl/queue-etl/rabbit-mq.markdown +++ b/Documentation/6.1/Raven.Documentation.Pages/server/ongoing-tasks/etl/queue-etl/rabbit-mq.markdown @@ -148,6 +148,13 @@ For example, the following two calls, which load data to the Orders exchange, ar --- +{NOTE: } +If no exchange is defined in the RabbitMQ platform, RavenDB will create a default exchange of the **Fanout** type. +In this case, all routing keys will be ignored, and messages will be distributed to all bound queues. +{NOTE/} + +--- + A sample script that process documents from the Orders collection: {CODE-BLOCK: JavaScript} From 40d0b01710ebb25dab779ee927a2ca545e24211b Mon Sep 17 00:00:00 2001 From: danielle9897 Date: Tue, 23 Jul 2024 13:08:11 +0300 Subject: [PATCH 23/25] RDoc-2882 Fix review comment --- .../server/ongoing-tasks/etl/queue-etl/azure-queue.markdown | 4 ++-- .../tasks/ongoing-tasks/azure-queue-storage-etl.markdown | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Documentation/6.1/Raven.Documentation.Pages/server/ongoing-tasks/etl/queue-etl/azure-queue.markdown b/Documentation/6.1/Raven.Documentation.Pages/server/ongoing-tasks/etl/queue-etl/azure-queue.markdown index 818f6bcbc0..fc7b0489a4 100644 --- a/Documentation/6.1/Raven.Documentation.Pages/server/ongoing-tasks/etl/queue-etl/azure-queue.markdown +++ b/Documentation/6.1/Raven.Documentation.Pages/server/ongoing-tasks/etl/queue-etl/azure-queue.markdown @@ -65,8 +65,8 @@ There are three authenticaton methods available: * Use the Entra ID authorization method to achieve enhanced security by leveraging Microsoft Entra’s robust identity solutions. * This approach minimizes the risks associated with exposed credentials commonly found in connection strings and enables more granular control through [Role-Based Access Controls](https://learn.microsoft.com/en-us/azure/role-based-access-control/). -* **Paswordless** - * This authorization method authorizes a dedicated machine and can only be used in self-hosted mode. +* **Passwordless** + * This authorization method requires the machine to be pre-authorized and can only be used in self-hosted mode. * Passwordless authorization works only when the account on the machine is assigned the Storage Account Queue Data Contributor role; the Contributor role alone is inadequate. --- diff --git a/Documentation/6.1/Raven.Documentation.Pages/studio/database/tasks/ongoing-tasks/azure-queue-storage-etl.markdown b/Documentation/6.1/Raven.Documentation.Pages/studio/database/tasks/ongoing-tasks/azure-queue-storage-etl.markdown index b0c5ce8d06..62cf1da1cb 100644 --- a/Documentation/6.1/Raven.Documentation.Pages/studio/database/tasks/ongoing-tasks/azure-queue-storage-etl.markdown +++ b/Documentation/6.1/Raven.Documentation.Pages/studio/database/tasks/ongoing-tasks/azure-queue-storage-etl.markdown @@ -110,7 +110,7 @@ The available authentication methods to an Azure storage account are: * **Passwordless** - * This authorization method authorizes a dedicated machine and can only be used in self-hosted mode. + * This authorization method requires the machine to be pre-authorized and can only be used in self-hosted mode. * Passwordless authorization works only when the account on the machine is assigned the Storage Account Queue Data Contributor role; the Contributor role alone is inadequate. ![Passwordless method](images/queue/aqs-etl-passwordless-method.png "passwordless method") From 9dfdd8399fd50cfd257da7aa51b5bddad612df23 Mon Sep 17 00:00:00 2001 From: danielle9897 Date: Wed, 24 Jul 2024 10:39:58 +0300 Subject: [PATCH 24/25] RDoc-2882 Fix review comments 2 --- .../server/ongoing-tasks/etl/queue-etl/azure-queue.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Documentation/6.1/Raven.Documentation.Pages/server/ongoing-tasks/etl/queue-etl/azure-queue.markdown b/Documentation/6.1/Raven.Documentation.Pages/server/ongoing-tasks/etl/queue-etl/azure-queue.markdown index fc7b0489a4..32872364a3 100644 --- a/Documentation/6.1/Raven.Documentation.Pages/server/ongoing-tasks/etl/queue-etl/azure-queue.markdown +++ b/Documentation/6.1/Raven.Documentation.Pages/server/ongoing-tasks/etl/queue-etl/azure-queue.markdown @@ -31,7 +31,7 @@ * In this page: * [Add an Azure Queue Storage connection string](../../../../server/ongoing-tasks/etl/queue-etl/azure-queue#add-an-azure-queue-storage-connection-string) * [Authentication methods](../../../../server/ongoing-tasks/etl/queue-etl/azure-queue#authentication-methods) - * [Exmaple](../../../../server/ongoing-tasks/etl/queue-etl/azure-queue#example) + * [Example](../../../../server/ongoing-tasks/etl/queue-etl/azure-queue#example) * [Syntax](../../../../server/ongoing-tasks/etl/queue-etl/azure-queue#syntax) * [Add an Azure Queue Storage ETL task](../../../../server/ongoing-tasks/etl/queue-etl/azure-queue#add-an-azure-queue-storage-etl-task) * [Example](../../../../server/ongoing-tasks/etl/queue-etl/azure-queue#example-basic) @@ -160,7 +160,7 @@ For example, the following two calls, which load data to "OrdersQueue", are equi --- -A sample script that process documents from the Orders collection: +A sample script that processes documents from the Orders collection: {CODE-BLOCK: JavaScript} // Create an orderData object From 2ea40524527fd26762f02af3e6f18436fc417d2e Mon Sep 17 00:00:00 2001 From: danielle9897 Date: Thu, 25 Jul 2024 10:05:04 +0300 Subject: [PATCH 25/25] RDoc-2882 Add 'AccountKey' to the list of mandatory params --- .../server/ongoing-tasks/etl/queue-etl/azure-queue.markdown | 1 + .../tasks/ongoing-tasks/azure-queue-storage-etl.markdown | 1 + 2 files changed, 2 insertions(+) diff --git a/Documentation/6.1/Raven.Documentation.Pages/server/ongoing-tasks/etl/queue-etl/azure-queue.markdown b/Documentation/6.1/Raven.Documentation.Pages/server/ongoing-tasks/etl/queue-etl/azure-queue.markdown index 32872364a3..455f1fea4a 100644 --- a/Documentation/6.1/Raven.Documentation.Pages/server/ongoing-tasks/etl/queue-etl/azure-queue.markdown +++ b/Documentation/6.1/Raven.Documentation.Pages/server/ongoing-tasks/etl/queue-etl/azure-queue.markdown @@ -59,6 +59,7 @@ There are three authenticaton methods available: Learn more about Azure Storage connection strings [here](https://learn.microsoft.com/en-us/azure/storage/common/storage-configure-connection-string). * Note: the following connection string parameters are mandatory: * `AccountName` + * `AccountKey` * `DefaultEndpointsProtocol` * `QueueEndpoint` (when using http protocol) * **Entra ID** diff --git a/Documentation/6.1/Raven.Documentation.Pages/studio/database/tasks/ongoing-tasks/azure-queue-storage-etl.markdown b/Documentation/6.1/Raven.Documentation.Pages/studio/database/tasks/ongoing-tasks/azure-queue-storage-etl.markdown index 62cf1da1cb..15e1971945 100644 --- a/Documentation/6.1/Raven.Documentation.Pages/studio/database/tasks/ongoing-tasks/azure-queue-storage-etl.markdown +++ b/Documentation/6.1/Raven.Documentation.Pages/studio/database/tasks/ongoing-tasks/azure-queue-storage-etl.markdown @@ -96,6 +96,7 @@ The available authentication methods to an Azure storage account are: Learn more about Azure Storage connection strings [here](https://learn.microsoft.com/en-us/azure/storage/common/storage-configure-connection-string). * The following connection string parameters are mandatory: * `AccountName` + * `AccountKey` * `DefaultEndpointsProtocol` * `QueueEndpoint` (when using http protocol)

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 literal 0 HcmV?d00001 diff --git a/Documentation/6.1/Raven.Documentation.Pages/studio/database/tasks/ongoing-tasks/images/queue/aqs-task-selection.png b/Documentation/6.1/Raven.Documentation.Pages/studio/database/tasks/ongoing-tasks/images/queue/aqs-task-selection.png new file mode 100644 index 0000000000000000000000000000000000000000..96ad8c8efce8222db3a9d3258e47e3b4168db6df GIT binary patch literal 88053 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 sCo9RcyjMCie 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 z%0D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 literal 0 HcmV?d00001 diff --git a/Documentation/6.1/Raven.Documentation.Pages/studio/database/tasks/ongoing-tasks/images/queue/ongoing-tasks.png b/Documentation/6.1/Raven.Documentation.Pages/studio/database/tasks/ongoing-tasks/images/queue/ongoing-tasks.png new file mode 100644 index 0000000000000000000000000000000000000000..f9099c453dd5783e23f8b78abd090f49c1970e45 GIT binary patch literal 49373 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

hnX+!160GKN4Y&WYg1?#m0xJ4?da$@XziXW5Q1C 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%0AW)CzDq;mheeb2iM1%=b)?TSq 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 literal 0 HcmV?d00001 diff --git a/Documentation/6.1/Raven.Documentation.Pages/studio/database/tasks/ongoing-tasks/images/task-list-3.png b/Documentation/6.1/Raven.Documentation.Pages/studio/database/tasks/ongoing-tasks/images/task-list-3.png new file mode 100644 index 0000000000000000000000000000000000000000..8aaedb49e3847424e6930e7249bf8bd85c3da601 GIT binary patch literal 128027 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