.. _connect_kudu: Kudu Connector (Source and Sink) for |cp| ========================================= You can use the |kconnect-long| Kudu source connector to import data from columnar relational database Kudu with Impala JDBC driver into |ak-tm| topics. You can use the Kudu sink connector to export data from |ak| topics to Kudu with Impala JDBC driver. Install the Kudu Connector -------------------------- .. include:: ../includes/connector-install.rst If you are running a multi-node |kconnect| cluster, the Kudu connector and Impala JDBC driver JARs must be installed on every |kconnect| worker in the cluster. See below for details. .. include:: ../includes/connector-install-hub.rst .. codewithvars:: bash confluent-hub install confluentinc/kafka-connect-kudu:latest .. include:: ../includes/connector-install-version.rst .. codewithvars:: bash confluent-hub install confluentinc/kafka-connect-kudu:1.0.0-preview ------------------------------ Install the connector manually ------------------------------ `Download and extract the ZIP file `__ for your connector and then follow the manual connector installation :ref:`instructions `. License ------- .. include:: ../includes/enterprise-license.rst See :ref:`kudo-connector-license-config` for license properties and :ref:`kudo-license-topic-configuration` for information about the license topic. License requirements are the same for both the sink and source connector. Configuration Properties ------------------------ For a complete list of configuration properties for the source connector, see :ref:`kudu-source-configs`. For a complete list of configuration properties for the sink connector, see :ref:`kudu-sink-configs`. Installing Impala JDBC Driver ----------------------------- The Kudu source and sink connectors use the `Java Database Connectivity (JDBC) API `__ . In order for this to work, the connectors must use Impala to query Kudu database, and have *Impala JDBC Driver* installed. The basic steps of installation are: #. Download `Impala JDBC Connector `__, and unzip to get the JAR files. #. Place these JAR files into the ``share/confluent-hub-components/confluentinc-kafka-connect-kudu/lib`` directory in your |cp| installation on each of the |kconnect| worker nodes. #. Restart all of the |kconnect| worker nodes. ------------------ General Guidelines ------------------ The following are additional guidelines to consider: * Use the most recent version of the Impala JDBC driver available. * Use the correct JAR file for the Java version used to run |kconnect| workers. Make sure to use the correct JAR file for the Java version in use. If you install and try to use the Impala JDBC driver JAR file for the wrong version of Java, starting any Kudu source connector or Kudu sink connector will likely fail with ``UnsupportedClassVersionError``. If this happens, remove the Impala JDBC driver JAR file you installed and repeat the driver installation process with the correct JAR file. * The ``share/confluent-hub-components/confluentinc-kafka-connect-kudu/lib`` directory mentioned above is for |cp|. If you are using a different installation, find the location where the Confluent Kudu source and sink connector JAR files are located, and place the Impala JDBC driver JAR file(s) for the target databases into the same directory. * If the Impala JDBC driver is not installed correctly, the Kudu source or sink connector will fail on startup. Typically, the system throws the error ``No suitable driver found``. If this happens, install the Impala JDBC driver again. ----------- Limitations ----------- * Kudu does not support ``DATE`` and ``TIME`` types. Connect ``Date``, ``Time`` and ``Timestamp`` types all will be mapped to Impala ``TIMESTAMP`` type, which corresponds to Kudu ``unixtime_micros`` type. * Impala does not support ``BINARY`` type, so our connectors will not accept binary data as well. * Complex data types like ``Array``, ``Map`` and ``Struct`` are not supported. * For ``Decimal`` type, both Impala and Kudu allow at most 38 precision. And our connector shall observe the cap. Documentation ------------- .. toctree:: :maxdepth: 1 source-connector/index sink-connector/index changelog