Skip to main content

Migrate from Chroma to Zilliz Cloud

This topic describes how Zilliz Cloud handles data type mapping, metadata field conversion, and collection naming rules when migrating from Chroma.

For the console migration workflow, index settings, and post-migration verification, see External Migration Basics.

Prerequisites​

Chroma requirements​

RequirementDetails
DeploymentChroma Cloud or a self-hosted Chroma server that exposes the Chroma REST API v2.
Network accessThe source endpoint must be reachable by the Zilliz Cloud migration service. For network restrictions, allow inbound connections from Zilliz Cloud IP addresses. A local embedded database must be exposed through a reachable Chroma server before console migration.
Connection detailsSource endpoint, tenant, database, and authentication credentials. Chroma Cloud uses an API key with X Chroma Token authentication; obtain the connection details from its Connect panel. Self-hosted Chroma supports no authentication, X Chroma Token, bearer tokens, or Basic authentication with a username and password. The default tenant and database names are default_tenant and default_database.
Data availabilitySource collections must contain data and embeddings. Empty collections cannot be migrated because they do not have a usable vector dimension.
Data consistencyPause inserts, updates, and deletes on the source collections during migration. Reading the source does not create a snapshot.

Zilliz Cloud requirements​

RequirementDetails
User roleOrganization Owner or Project Admin.
TargetAn existing cluster and database with sufficient capacity for the source data.
Collection namesUse target collection names that are not already in use in the target database. You can rename the target collections when reviewing mappings.

Data type mapping​

Each source collection maps to a target collection. Review the following default mappings before starting the migration.

Chroma fieldZilliz Cloud fieldNotes
idid, VARCHAR primary keyPreserves the original string IDs with the default mapping.
embeddingembedding, FLOAT_VECTORPreserves the vector values and source dimension. No re-embedding is required.
documentdocument, nullable VARCHARPreserves document text. The default maximum length is 65,535 UTF-8 bytes.
uriuri, nullable VARCHARPreserves the URI string. The default maximum length is 65,535 UTF-8 bytes. Files referenced by the URI are not copied.
MetadataDynamic fieldStores metadata keys as dynamic fields by default. Selected keys can be converted to fixed fields.

Metadata field conversion​

Keep metadata in the dynamic field when keys vary between entities. Convert a key to a fixed field when you need an explicit field name, type, or constraint. For details about dynamic fields, see Dynamic Field.

The mapping page represents metadata values using the following target types:

Metadata valueTarget type shown in mappings
IntegerINT64
Floating-point numberDOUBLE
BooleanBOOL
StringVARCHAR
ArrayJSON

When converting metadata to fixed fields, select types and constraints that cover the entire source collection. Allow null values for fields that may be missing. String length limits are measured in UTF-8 bytes, not characters. Keep keys with mixed or changing value types in the dynamic field.

Chroma-specific handling rules​

Collection naming rules​

By default, target collections use the source names, with hyphens (-) replaced by underscores (_). For example, support-docs becomes support_docs.

Review each target name before submitting the job. Rename a collection if its name does not meet Zilliz Cloud naming requirements or is already in use. Also check for source names that become identical after conversion, such as support-docs and support_docs.

Embeddings and distance metrics​

Existing embeddings are copied without being generated again. The Chroma embedding function is not migrated. Applications must continue to generate embeddings with the same model.

The corresponding distance metric names are:

Chroma distance spaceZilliz Cloud metric type
cosineCOSINE
l2L2
ipIP

Use the corresponding metric when configuring the target vector index. This table describes metric correspondence; it does not imply that source index configuration is migrated.