Skip to content

Commit

Permalink
Document tt export/import (#3737)
Browse files Browse the repository at this point in the history
  • Loading branch information
andreyaksenov authored Oct 3, 2023
1 parent 6233db8 commit 5c9b5e2
Show file tree
Hide file tree
Showing 7 changed files with 472 additions and 1 deletion.
3 changes: 2 additions & 1 deletion conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@
extlinks = {
'tarantool-issue': ('https://github.com/tarantool/tarantool/issues/%s', 'gh-'),
'tarantool-release': ('https://github.com/tarantool/tarantool/releases/%s', 'v. '),
'tt-release': ('https://github.com/tarantool/tt/releases/v%s', 'v. '),
'doc-issue': ('https://github.com/tarantool/doc/issues/%s', 'doc-'),
'tarantool-sec-issue': ('https://github.com/tarantool/security/issues/%s', 'ghs-'),
}
Expand All @@ -59,7 +60,7 @@
project = u'Tarantool'

# |release| The full version, including alpha/beta/rc tags.
release = "2.11.0"
release = "2.11.1"
# |version| The short X.Y version.
version = '.'.join(release.split('.')[0:2])

Expand Down
9 changes: 9 additions & 0 deletions doc/reference/tooling/tt_cli/commands.rst
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,14 @@ help for the given command.
- Manipulate Tarantool core dumps
* - :doc:`create <create>`
- Create an application from a template
* - :doc:`crud <crud>`
- Interact with the CRUD module (`Enterprise only <https://www.tarantool.io/compare/>`_)
* - :doc:`export <export>`
- Export data to a file (`Enterprise only <https://www.tarantool.io/compare/>`_)
* - :doc:`help <help>`
- Display help for ``tt`` or a specific command
* - :doc:`import <import>`
- Import data from a file (`Enterprise only <https://www.tarantool.io/compare/>`_)
* - :doc:`init <init>`
- Create a new ``tt`` environment in the current directory
* - :doc:`install <install>`
Expand Down Expand Up @@ -81,7 +87,10 @@ help for the given command.
connect <connect>
coredump <coredump>
create <create>
crud <crud>
export <export>
help <help>
import <import>
init <init>
install <install>
instances <instances>
Expand Down
19 changes: 19 additions & 0 deletions doc/reference/tooling/tt_cli/crud.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
.. _tt-crud:

Interacting with the CRUD module
================================

.. admonition:: Enterprise Edition
:class: fact

This command is supported by the `Enterprise Edition <https://www.tarantool.io/compare/>`_ only.

.. code-block:: console
$ tt crud COMMAND [COMMAND_OPTION ...]
``tt crud`` enables the interaction with a cluster using the `CRUD <https://github.com/tarantool/crud>`_ module.
``COMMAND`` is one of the following:

* ``export``: export a cluster's data to a file. Learn more at :ref:`Exporting data <tt-export>`.
* ``import``: import data from a file. Learn more at :ref:`Importing data <tt-import>`.
148 changes: 148 additions & 0 deletions doc/reference/tooling/tt_cli/export.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,148 @@
.. _tt-export:

Exporting data
==============

.. admonition:: Enterprise Edition
:class: fact

This command is supported by the `Enterprise Edition <https://www.tarantool.io/compare/>`_ only.


.. code-block:: console
$ tt [crud] export URI FILE SPACE [EXPORT_OPTION ...]
``tt [crud] export`` exports a space's data to a file.
The ``crud`` command is optional and can be used to export a cluster's data by using the `CRUD <https://github.com/tarantool/crud>`_ module. Without ``crud``, data is exported using the :ref:`box.space <box_space>` API.

``tt [crud] export`` takes the following arguments:

* ``URI``: The URI of a router instance if ``crud`` is used. Otherwise, it should specify the URI of a storage.
* ``FILE``: The name of a file for storing exported data.
* ``SPACE``: The name of a space from which data is exported.

.. NOTE::

:ref:`Read access <authentication-owners_privileges>` to the space is required to export its data.

.. _tt-export-limitations:

Limitations
-----------

Exporting isn't supported for the :ref:`interval <index-box_interval>` field type.


.. _tt-export-default:

Exporting with default settings
-------------------------------

The command below exports data of the ``customers`` space to the ``customers.csv`` file:

.. code-block:: console
$ tt crud export localhost:3301 customers.csv customers
If the ``customers`` space has five fields (``id``, ``bucket_id``, ``firstname``, ``lastname``, and ``age``), the file with exported data might look like this:

.. code-block:: text
1,477,Andrew,Fuller,38
2,401,Michael,Suyama,46
3,2804,Robert,King,33
# ...
If a tuple contains a ``null`` value, for example, ``[1, 477, 'Andrew', null, 38]``, it is exported as an empty value:

.. code-block:: text
1,477,Andrew,,38
.. _tt-export-header:

Exporting headers
-----------------

To export data with a space's field names in the first row, use the ``--header`` option:

.. code-block:: console
$ tt crud export localhost:3301 customers.csv customers \
--header
In this case, field values start from the second row, for example:

.. code-block:: text
id,bucket_id,firstname,lastname,age
1,477,Andrew,Fuller,38
2,401,Michael,Suyama,46
3,2804,Robert,King,33
# ...
.. _tt-export-compound-data:

Exporting compound data
-----------------------

By default, ``tt`` exports empty values for fields containing compound data such as arrays or maps.
To export compound values in a specific format, use the ``--compound-value-format`` option.
For example, the command below exports compound values serialized in JSON:

.. code-block:: console
$ tt crud export localhost:3301 customers.csv customers \
--compound-value-format json
.. _tt-export-options:

Options
-------

.. option:: --batch-queue-size INT

The maximum number of tuple batches in a queue between a fetch and write threads (the default is ``32``).

``tt`` exports data using two threads:

* A *fetch* thread makes requests and receives data from a Tarantool instance.
* A *write* thread encodes received data and writes it to the output.

The fetch thread uses a queue to pass received tuple batches to the write thread.
If a queue is full, the fetch thread waits until the write thread takes a batch from the queue.

.. option:: --batch-size INT

The number of tuples to transfer per request (the default is ``10000``).

.. option:: --compound-value-format STRING

A format used to export compound values like arrays or maps.
By default, ``tt`` exports empty values for fields containing such values.

Supported formats: ``json``.

See also: :ref:`Exporting compound data <tt-export-compound-data>`.

.. option:: --header

Add field names in the first row.

See also: :ref:`Exporting headers <tt-export-header>`.

.. option:: --password STRING

A password used to connect to the instance.

.. option:: --readview

Export data using a `read view <https://www.tarantool.io/en/enterprise_doc/read_views/>`_.

.. option:: --username STRING

A username for connecting to the instance.
Loading

0 comments on commit 5c9b5e2

Please sign in to comment.