skills/lookml-model/SKILL.md
Use this skill when you need to create or modify a LookML Model file (.model.lkml). This includes defining connections, includes, and configuring model-level settings.
npx skillsauth add kilo-org/kilo-marketplace lookml-modelInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
connection: "connection_name": Must match a connection defined in Looker Admin.include: "pattern": Specifies which view and dashboard files are available to the model.include: "*.view" if possible to prevent performance issues and namespace clutter. Use specific paths or wildcards like include: "/views/users.view" or include: "/views/marketing/*.view".label: to provide a user-friendly name for the model in the UI.week_start_day: if the business logic requires a specific start day (e.g., monday).Datagroups are the preferred mechanism for managing caching policies.
persist_for| Feature | Datagroups (Recommended) | persist_for |
| :------------- | :----------------------------------------- | :------------------------------------ |
| Trigger | SQL Query (Smart) | Fixed Time (Dumb) |
| Alignment | Aligns with ETL/ELT completion | Misaligned (guesswork) |
| Management | Centralized in Model file | Scattered in Explores/Models |
| Use Case | Production dashboards, ETL synchronization | Ad-hoc queries, Real-time (<1h) needs |
[!TIP] Use
persist_forONLY for real-time dashboards where you need to force a cache refresh every X minutes (e.g., stock tickers, fast-moving inventory). For everything else, use Datagroups.
Use strict patterns to control scope and performance.
| Pattern | Description | Use Case |
| :--- | :--- | :--- |
| include: "/views/*.view" | All views in specific folder | Standard modularity |
| include: "/views/marketing/users.view" | Specific file | Precise control, avoids conflicts |
| include: "/**/*.view" | Recursive (all views in project) | Avoid unless small project |
| include: "/dashboards/*.dashboard" | All dashboards in folder | Importing dashboards |
connection: "thelook"
# Include all views in the views/ folder
include: "/views/*.view"
# Include all dashboards
include: "/*.dashboard"
# Define an Explore (usually better to define in separate files for large projects, but acceptable here for small ones)
explore: orders {
join: users {
type: left_outer
sql_on: ${orders.user_id} = ${users.id} ;;
relationship: many_to_one
}
}
connection: "snowlooker"
label: "eCommerce Analytics"
# Set valid week start day
week_start_day: monday
# Include specific folders
include: "/views/finance/*.view"
include: "/views/marketing/*.view"
## Model with Datagroup (Best Practice)
```lookml
connection: "thelook"
# Define the caching policy
datagroup: ecommerce_etl {
description: "Triggers when the max created_at date changes in the events table."
sql_trigger: SELECT MAX(created_at) FROM `project.dataset.events` ;;
max_cache_age: "24 hours" # Fallback
}
# Apply default caching to all Explores in this model
persist_with: ecommerce_etl
include: "/views/*.view"
explore: orders {
# This explore inherits 'persist_with: ecommerce_etl' from the model default
}
explore: real_time_dashboard {
# Override with a different policy if needed
persist_for: "5 minutes"
}
```
development
Oracle Database guidance for SQL, PL/SQL, SQLcl, ORDS, administration, app development, performance, security, migrations, and agent-safe database workflows. Use when the user asks to write, edit, rewrite, review, format, debug, tune, or explain SQL; create or refactor PL/SQL; use SQLcl, Liquibase, ORDS, JDBC, node-oracledb, Python, Java, .NET, or database frameworks; troubleshoot queries, sessions, locks, waits, indexes, optimizer plans, AWR, ASH, migrations, schemas, users, roles, privileges, backup, recovery, Data Guard, RAC, multitenant, containers, monitoring, auditing, encryption, VPD, or safe agent database operations.
documentation
Patterns for reading and writing oleander Iceberg catalog tables in Spark jobs, including naming conventions, write modes, and catalog hierarchy.
data-ai
Integrate Okta for enterprise identity workflows including OIDC login, group claims, and policy-based access controls. Use when implementing workforce or B2B identity scenarios.
documentation
Use when arranging Apache NiFi processors, process groups, ports, comments, numbering, crossing connections, dense fan-in/fan-out, or reusable readable canvas layouts.