This page was recently updated. What do you think about it? Let us know!.

Batch process all your records to store structured outputs in a SingleStore account.

You will need:

The SingleStore prerequisites:

  • A SingleStore deployment, database, and table. Learn how.
  • The hostname for the SingleStore deployment.
  • The port for the host.
  • The username for the deployment.
  • The password for the user.
  • The name of the database in the deployment.
  • The name of the table in the database.

To get the values for the hostname, port, username, and password:

  1. In your SingleStore account’s dashboard sidebar, click Deployments.
  2. From the drop-down list at the top of the Deployments page, select your deployment.
  3. On the Overview tab, in the Compute area, in the Connect drop-down list for your deployment, select Your App.
  4. If a Create User dialog box appears, note the User name and Password values.
  5. In the Connect to Workspace pane’s Your App tab, note the string in the following format:
<user-name>:<password>@<host>:<port>
  • <user-name> is the username.
  • <password> is the user’s password.
  • <host> is the workspace’s hostname.
  • <post> is the host’s port.

To get the values for the database and table names:

  1. In your SingleStore dashboard’s sidebar, click Deployments.
  2. From the drop-down list at the top of the Deployments page, select your deployment.
  3. On the Databases tab, note Name of your database.
  4. Click the database and, on the Tables tab, note the name of your table.

The SingleStore connector dependencies:

CLI, Python
pip install "unstructured-ingest[singlestore]"

You might also need to install additional dependencies, depending on your needs. Learn more.

These environment variables:

  • SINGLESTORE_HOST - The hostname for the SingleStore deployment, represented by --host (CLI) or host (Python).
  • SINGLESTORE_PORT - The port for the host, represented by --port (CLI) or port (Python).
  • SINGLESTORE_USER - The username for the deployment, represented by --user (CLI) or user (Python).
  • SINGLESTORE_PASSWORD - The password for the user, represented by --password (CLI) or password (Python).
  • SINGLESTORE_DB - The name of the database in the deployment, represented by --database (CLI) or database (Python).
  • SINGLESTORE_TABLE - The name of the table in the database, represented by --table-name (CLI) or table_name (Python).

These environment variables:

  • UNSTRUCTURED_API_KEY - Your Unstructured API key value.
  • UNSTRUCTURED_API_URL - Your Unstructured API URL.

Now call the Unstructured Ingest CLI or the Unstructured Ingest Python library. The source connector can be any of the ones supported. This example uses the local source connector:

SingleStore table schema

To insert the JSON data that Unstructured outputs into a SingleStore table, the table must have a column that matches the name and datatype of each object in the JSON data.

During insertion, JSON objects are flattened, and underscores are placed between nested object names. For example, the following JSON object matches a column in the table named data_source_date_created:

"data_source": {
    "date_created": "1719963233.949"
}

The metadata object itself is also flattened in a similar way. However, for nested objects in metadata, do not start the column name with metadata_. For example, the following JSON object matches a column in the table named last_modified:

"metadata": {
    "last_modified": "2022-12-16T17:04:16-05:00"
}

Here is a CREATE TABLE statement for an example table named elements that can handle many (but not necessarily all) of the JSON objects that Unstructured outputs. You will likely need to adjust these column names and datatypes, depending on the structure of your own JSON data.

CREATE TABLE elements (
    id INT PRIMARY KEY NOT NULL AUTO_INCREMENT,
    element_id TEXT,
    text TEXT,
    embeddings Vector(768),
    type TEXT,
    url TEXT,
    version TEXT,
    data_source_date_created TIMESTAMP,
    data_source_date_modified TIMESTAMP,
    data_source_date_processed TIMESTAMP,
    data_source_permissions_data TEXT,
    data_source_url TEXT,
    data_source_version TEXT,
    data_source_record_locator JSON,
    category_depth INTEGER,
    parent_id TEXT,
    attached_filename TEXT,
    filetype TEXT,
    last_modified TIMESTAMP,
    file_directory TEXT,
    filename TEXT,
    languages TEXT,
    page_number TEXT,
    links TEXT,
    page_name TEXT,
    link_urls TEXT,
    link_texts TEXT,
    sent_from TEXT,
    sent_to TEXT,
    subject TEXT,
    section TEXT,
    header_footer_type TEXT,
    emphasized_text_contents TEXT,
    emphasized_text_tags TEXT,
    text_as_html TEXT,
    regex_metadata TEXT,
    detection_class_prob DECIMAL,
    is_continuation BOOLEAN,
    orig_elements TEXT,
    coordinates_points TEXT,
    coordinates_system TEXT,
    coordinates_layout_width DECIMAL,
    coordinates_layout_height DECIMAL
);