一键导入
data-catalog
Use when working with data collections, dataset metadata, tags, meanings, or AI-generated descriptions
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Use when working with data collections, dataset metadata, tags, meanings, or AI-generated descriptions
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Use when creating, configuring, or running any Dataiku recipe (prepare, join, group, sync, python) including data cleaning, formulas, and GREL
Use when creating datasets, uploading files, managing schemas, or configuring dataset connections
Use when building datasets, running multi-step pipelines, managing dependencies, or orchestrating recipe execution order
Use when training prediction models, extracting metrics, configuring algorithms, or deploying models
Use when debugging failed jobs, diagnosing errors, or resolving common Dataiku issues
| name | data-catalog |
| description | Use when working with data collections, dataset metadata, tags, meanings, or AI-generated descriptions |
Reference patterns for managing the Dataiku data catalog via the Python API.
| Concept | What it is | Scope |
|---|---|---|
| Data Collection | A curated group of datasets, visible across projects | Instance-level (client) |
| Metadata | Label, description, tags, checklists, custom key-value pairs | Per dataset or project |
| Meaning | A semantic type for columns (e.g., "Email", "Country Code") | Instance-level (client) |
| Tags | Freeform labels on datasets or projects | Per dataset or project |
collections = client.list_data_collections(as_type="dict")
for c in collections:
print(f"{c['displayName']} ({c['id']}) — {c['itemCount']} items")
dc = client.create_data_collection(
displayName="Customer Data",
description="All customer-related datasets",
tags=["customers", "production"]
)
dc = client.get_data_collection("collection_id")
# Add by dataset handle
ds = project.get_dataset("MY_DATASET")
dc.add_object(ds)
# Add by dict (for cross-project datasets)
dc.add_object({"type": "DATASET", "projectKey": "PROJECT_A", "id": "DATASET_NAME"})
dc = client.get_data_collection("collection_id")
objects = dc.list_objects()
for obj in objects:
raw = obj.get_raw()
print(f" {raw['projectKey']}.{raw['id']}")
# Get as a dataset handle
ds = obj.get_as_dataset()
# Remove from collection
obj.remove()
dc = client.get_data_collection("collection_id")
settings = dc.get_settings()
settings.display_name = "Renamed Collection"
settings.description = "Updated description"
settings.tags = ["new-tag", "production"]
settings.save()
ds = project.get_dataset("MY_DATASET")
metadata = ds.get_metadata()
# Metadata structure:
# {
# "label": "...",
# "description": "...",
# "tags": ["tag1", "tag2"],
# "checklists": {"checklists": [...]},
# "custom": {"kv": {"key1": "value1"}}
# }
metadata["tags"] = ["cleaned", "production"]
metadata["custom"]["kv"]["owner"] = "data-team"
ds.set_metadata(metadata)
# Generate descriptions for dataset and columns (requires AI Services enabled)
result = ds.generate_ai_description(language="english", save_description=True)
Rate-limited: 1000 requests/day, then throttled to ~60s per call.
# List existing meanings
meanings = client.list_meanings()
# Create a values-list meaning
client.create_meaning(
id="country_code",
label="Country Code",
type="VALUES_LIST",
values=["US", "UK", "FR", "DE", "JP"],
normalizationMode="EXACT",
detectable=True
)
# Create a pattern-based meaning
client.create_meaning(
id="email_address",
label="Email Address",
type="PATTERN",
pattern=r"^[\w.-]+@[\w.-]+\.\w+$",
detectable=True
)
meaning = client.get_meaning("country_code")
definition = meaning.get_definition()
definition["entries"].append({"value": "CA"})
meaning.set_definition(definition)
Trigger re-indexing of connections so new tables appear in the catalog:
# Index specific connections
client.catalog_index_connections(connection_names=["my_snowflake", "my_postgres"])
# Index all connections
client.catalog_index_connections(all_connections=True)