If you’re new to Unstructured, read this note first.

Before you can create a source connector, you must first sign up for Unstructured and get your Unstructured API key. After you sign up, the Unstructured user interface (UI) appears, which you use to get the key. To learn how, watch this 40-second how-to video.

After you create the source connector, add it along with a destination connector to a workflow. Then run the worklow as a job. To learn how, try out the hands-on Workflow Endpoint quickstart, go directly to the quickstart notebook, or watch the two 4-minute video tutorials for the Unstructured Python SDK.

You can also create source connectors with the Unstructured user interface (UI). Learn how.

If you need help, reach out to the community on Slack, or contact us directly.

You are now ready to start creating a source connector! Keep reading to learn how.

Ingest your files into Unstructured from Kafka.

The requirements are as follows.

To create a Kafka source connector, see the following examples.

import os

from unstructured_client import UnstructuredClient
from unstructured_client.models.operations import CreateSourceRequest
from unstructured_client.models.shared import (
    CreateSourceConnector,
    SourceConnectorType,
    KafkaCloudSourceConnectorConfigInput
)

with UnstructuredClient(api_key_auth=os.getenv("UNSTRUCTURED_API_KEY")) as client:
    response = client.sources.create_source(
        request=CreateSourceRequest(
            create_source_connector=CreateSourceConnector(
                name="<name>",
                type=SourceConnectorType.KAFKA_CLOUD,
                config=KafkaCloudSourceConnectorConfigInput(
                    bootstrap_servers="<bootstrap-server>",
                    port=<port>,
                    group_id="<group-id>",
                    kafka_api_key="<kafka-api-key>",
                    secret="<secret>",
                    topic="<topic>",
                    num_message_to_consume=<num-message-to-consume>,
                )
            )
        )
    )

    print(response.source_connector_information)

Replace the preceding placeholders as follows:

  • <name> (required) - A unique name for this connector.
  • <bootstrap-server> - The hostname of the bootstrap Kafka cluster to connect to.
  • <port> - The port number of the bootstrap Kafka cluster to connect to. The default is 9092 if not otherwise specified.
  • <group-id> - The ID of the consumer group. A consumer group is a way to allow a pool of consumers to divide the consumption of data over topics and partitions. The default is default_group_id if not otherwise specified.
  • <kafka-api-key> - For authentication, the API key for access to the cluster.
  • <secret> - For authentication, the secret for access to the cluster.
  • <topic> - The name of the topic to read messages from or write messages to on the cluster.
  • <batch-size> (destination connector only) - The maximum number of messages to send in a single batch. The default is 100 if not otherwise specified.
  • <num-messages-to-consume> (source connector only) - The maximum number of messages that the consumer will try to consume. The default is 100 if not otherwise specified.