[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"creator:01M7C2HC9KETA166XKR09YMKZQ":3,"creator-list:01M7C2HC9KETA166XKR09YMKZQ:stars:1:":16},{"accountNo":4,"login":5,"displayName":5,"avatarUrl":6,"accountType":7,"accountTypeDesc":8,"profileDescription":9,"skillCount":10,"repoCount":11,"professionCount":12,"scenarioCount":12,"totalStars":12,"updatedAt":13,"htmlUrl":14,"blogUrl":9,"company":9,"location":9,"followersCount":12,"publicReposCount":15},"01M7C2HC9KETA166XKR09YMKZQ","kirivandubai","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F221521416?v=4","USER","个人作者",null,16,1,0,"2026-10-29 13:49:22","https:\u002F\u002Fgithub.com\u002Fkirivandubai",3,{"records":17,"total":10,"current":11,"size":133},[18,29,36,43,50,57,64,71,77,84,91,98,105,112,119,126],{"skillNo":19,"name":20,"nameZh":9,"description":21,"descriptionZh":9,"repositoryFullName":22,"ownerLogin":5,"ownerAvatarUrl":6,"ownerAccountNo":4,"ownerDisplayName":9,"repositoryNo":23,"starsCount":12,"licenseSpdxId":24,"licenseFileUrl":9,"sourceHtmlUrl":25,"categories":26,"keywords":27,"publishedAt":28},"01M7C2NGAJEKKG90BG9Q1Z2M96","vql","Use when doing anything with Denodo — creating or changing a database, folder, tag, data source, wrapper, base, derived, interface or metric view, association, cache, role or security policy, remote table or summary, a Data Marketplace object, a regression test or a Scheduler job; writing or fixing VQL, or an expression in a SELECT — text, dates, casts; deciding where an object lives and what to name it; \"where do I start\", \"build a mart\", \"connect a source\", \"vibe-code on Denodo\". Start here when the request is ambiguous or names no single object.","kirivandubai\u002Fdenodo_wipe_coading_skills","01M7C2HCAJ787NNYKMCG12S3DY","MIT","https:\u002F\u002Fgithub.com\u002Fkirivandubai\u002Fdenodo_wipe_coading_skills\u002Fblob\u002Fmain\u002Fskills\u002Fvql\u002FSKILL.md",[],[],"2026-11-15 14:19:17",{"skillNo":30,"name":31,"nameZh":9,"description":32,"descriptionZh":9,"repositoryFullName":22,"ownerLogin":5,"ownerAvatarUrl":6,"ownerAccountNo":4,"ownerDisplayName":9,"repositoryNo":23,"starsCount":12,"licenseSpdxId":24,"licenseFileUrl":9,"sourceHtmlUrl":33,"categories":34,"keywords":35,"publishedAt":28},"01M7C2N5W4203SQ2TRYT6E0VSR","views","Use when building on top of views that already exist in Denodo 9.5 — a derived view (a join, an aggregate, a mart, a filtered or parameterised view, a UNION ALL of views of one entity, FLATTEN of a JSON array into rows, NEST of rows into an array), an interface view, or an association between two views. Also before changing a view others depend on — \"what uses this view\", \"can I drop this column\", \"where does this field come from\" — for whether a mart over a database runs there or pulls every row into Denodo, for \"combine these sources into one view\", \"expose this as a data product\", and for a view created without an error that fails on SELECT or turns up INVALID. Not for sources and base views — \u002Fdenodo:datasources; databases, folders, VDP tags — \u002Fdenodo:catalog; a view's cache — \u002Fdenodo:cache; a copy stored as a table — \u002Fdenodo:materialize; a metric view — \u002Fdenodo:metrics.","https:\u002F\u002Fgithub.com\u002Fkirivandubai\u002Fdenodo_wipe_coading_skills\u002Fblob\u002Fmain\u002Fskills\u002Fviews\u002FSKILL.md",[],[],{"skillNo":37,"name":38,"nameZh":9,"description":39,"descriptionZh":9,"repositoryFullName":22,"ownerLogin":5,"ownerAvatarUrl":6,"ownerAccountNo":4,"ownerDisplayName":9,"repositoryNo":23,"starsCount":12,"licenseSpdxId":24,"licenseFileUrl":9,"sourceHtmlUrl":40,"categories":41,"keywords":42,"publishedAt":28},"01M7C2MY48XXHR87G39R0F0VTK","testing","Use when a Denodo 9.5 project needs regression tests, or its tests need running or fixing — .denodotest files that the Denodo Testing Tool runs in CI (%EXECUTION, %RESULTS[data|query|csv|exception], configuration.properties, denodo-test.sh) — \"add tests for this mart\", \"a safety net before I rewrite these views\", \"make sure the dashboards see no difference\", \"what should CI check on our data products\", \"prove the mart is right\", \"CI is red on the Denodo tests\", a test that fails on row order, on a column it did not ask for or on a value padded with spaces. Not for checking a new view once, right after creating it — \u002Fdenodo:views.","https:\u002F\u002Fgithub.com\u002Fkirivandubai\u002Fdenodo_wipe_coading_skills\u002Fblob\u002Fmain\u002Fskills\u002Ftesting\u002FSKILL.md",[],[],{"skillNo":44,"name":45,"nameZh":9,"description":46,"descriptionZh":9,"repositoryFullName":22,"ownerLogin":5,"ownerAvatarUrl":6,"ownerAccountNo":4,"ownerDisplayName":9,"repositoryNo":23,"starsCount":12,"licenseSpdxId":24,"licenseFileUrl":9,"sourceHtmlUrl":47,"categories":48,"keywords":49,"publishedAt":28},"01M7C2MMFX40K0WTDNW05VCQEJ","semantics","Use when the views of an existing Denodo 9.5 database have to be understood by people and by AI consumers — the Denodo MCP Server, Assisted Query in the Data Marketplace, the AI SDK. Auditing a database for views and fields without descriptions, primary keys that are missing or not unique, missing associations and the VDP tag the MCP Server shows views by; writing view, field, association and tag descriptions from the data, and primary keys. Also for \"describe \u002F document these views\", \"prepare this database for AI, MCP or Assisted Query\", \"why does the agent not see this view through MCP\", a description that says the wrong thing. Not for building or changing what a view computes — \u002Fdenodo:views; not for marketplace-only metadata (logical names, property groups, marketplace tags) — \u002Fdenodo:marketplace.","https:\u002F\u002Fgithub.com\u002Fkirivandubai\u002Fdenodo_wipe_coading_skills\u002Fblob\u002Fmain\u002Fskills\u002Fsemantics\u002FSKILL.md",[],[],{"skillNo":51,"name":52,"nameZh":9,"description":53,"descriptionZh":9,"repositoryFullName":22,"ownerLogin":5,"ownerAvatarUrl":6,"ownerAccountNo":4,"ownerDisplayName":9,"repositoryNo":23,"starsCount":12,"licenseSpdxId":24,"licenseFileUrl":9,"sourceHtmlUrl":54,"categories":55,"keywords":56,"publishedAt":28},"01M7C2M9XVTRVXYXMGTEC62EFB","security","Use when deciding who may read what in Denodo 9.5 — masking or hiding columns (PII, contact details, salaries, bank accounts) from some users or roles, letting a role see only some rows (a country, a tenant) or each person only their own, taking someone's access away (ALTER USER … REVOKE), denying a view to a group, a global security policy (CREATE GLOBAL_SECURITY_POLICY) and the VDP tags it reads, giving a user a role or giving a role access to a database or views (CREATE ROLE … GRANT EXECUTE, ALTER USER … GRANT ROLE), checking what a given user really gets back, or a user who sees data a restriction should hide (\"he still gets every row\", \"the masking stopped working\"). Not for a tag as a label without a policy (\u002Fdenodo:catalog) or for descriptions and the MCP visibility tag (\u002Fdenodo:semantics).","https:\u002F\u002Fgithub.com\u002Fkirivandubai\u002Fdenodo_wipe_coading_skills\u002Fblob\u002Fmain\u002Fskills\u002Fsecurity\u002FSKILL.md",[],[],{"skillNo":58,"name":59,"nameZh":9,"description":60,"descriptionZh":9,"repositoryFullName":22,"ownerLogin":5,"ownerAvatarUrl":6,"ownerAccountNo":4,"ownerDisplayName":9,"repositoryNo":23,"starsCount":12,"licenseSpdxId":24,"licenseFileUrl":9,"sourceHtmlUrl":61,"categories":62,"keywords":63,"publishedAt":28},"01M7C2KYWB8B6ZC026CT3Z1MZA","scheduler","Use when something in Denodo 9.5 has to happen on a schedule, or a scheduled run misbehaves — refreshing the cache of a view every night or every hour, running REFRESH of a remote table or a procedure at a set time, exporting a view to a CSV file every week or month, running a Denodo Scheduler job now, stopping, pausing, enabling or deleting it, reading what last night's run did or why it failed, \"the cache doubles after every refresh\", \"the job fires at the wrong hour\", \"the export file is missing or has no header\". Denodo Scheduler projects, jobs, cron triggers and reports, through the REST API of the Scheduler administration tool. Not for switching a cache on or loading it once (\u002Fdenodo:cache), not for creating the remote table or summary itself (\u002Fdenodo:materialize).","https:\u002F\u002Fgithub.com\u002Fkirivandubai\u002Fdenodo_wipe_coading_skills\u002Fblob\u002Fmain\u002Fskills\u002Fscheduler\u002FSKILL.md",[],[],{"skillNo":65,"name":66,"nameZh":9,"description":67,"descriptionZh":9,"repositoryFullName":22,"ownerLogin":5,"ownerAvatarUrl":6,"ownerAccountNo":4,"ownerDisplayName":9,"repositoryNo":23,"starsCount":12,"licenseSpdxId":24,"licenseFileUrl":9,"sourceHtmlUrl":68,"categories":69,"keywords":70,"publishedAt":28},"01M7C2KQBX7XS4JYW68BBRPXQN","procedures","Use when a Denodo 9.5 stored procedure is in play — calling one the server already ships (SELECT … FROM GET_VIEWS() \u002F USED_BY() … WHERE input_… = …, the CALL statement, finding which predefined procedure answers a question and what parameters it takes), writing your own procedural logic in VQL (CREATE OR REPLACE VQL PROCEDURE … BEGIN … END, local variables, IF\u002FLOOP\u002FCASE, cursors, exceptions, EXECUTE of DDL), or importing a Java one from a JAR (CREATE PROCEDURE … CLASSNAME … JARS). Also for \"run the stats procedure\", \"loop over rows and create views\", \"call that procedure from a view\". Not for introspecting a JDBC source into base views — that is \u002Fdenodo:datasources.","https:\u002F\u002Fgithub.com\u002Fkirivandubai\u002Fdenodo_wipe_coading_skills\u002Fblob\u002Fmain\u002Fskills\u002Fprocedures\u002FSKILL.md",[],[],{"skillNo":72,"name":73,"nameZh":9,"description":9,"descriptionZh":9,"repositoryFullName":22,"ownerLogin":5,"ownerAvatarUrl":6,"ownerAccountNo":4,"ownerDisplayName":9,"repositoryNo":23,"starsCount":12,"licenseSpdxId":24,"licenseFileUrl":9,"sourceHtmlUrl":74,"categories":75,"keywords":76,"publishedAt":28},"01M7C2KKSEMBS5180STDMSVTDS","metrics","https:\u002F\u002Fgithub.com\u002Fkirivandubai\u002Fdenodo_wipe_coading_skills\u002Fblob\u002Fmain\u002Fskills\u002Fmetrics\u002FSKILL.md",[],[],{"skillNo":78,"name":79,"nameZh":9,"description":80,"descriptionZh":9,"repositoryFullName":22,"ownerLogin":5,"ownerAvatarUrl":6,"ownerAccountNo":4,"ownerDisplayName":9,"repositoryNo":23,"starsCount":12,"licenseSpdxId":24,"licenseFileUrl":9,"sourceHtmlUrl":81,"categories":82,"keywords":83,"publishedAt":28},"01M7C2K9NB9KA8X4HN2CJ0GA25","materialize","Use when the result of a Denodo 9.5 query has to be stored as a table, or a slow federated query should run from data placed next to it — a remote table other tools read (\"store this view as a table in our warehouse\", \"a nightly table for the data science team\"), a frozen snapshot (\"a frozen copy for the auditors\"), a summary that answers aggregate queries without them changing (\"the dashboard is slow and we can't change its SQL\", \"precompute the aggregates\"), a data movement (\"the join between the file and the database is slow\"), a materialized table. Also when \"The REFRESH command is only valid for Summaries and Remote Tables\", a refreshed table came back empty, a summary answers other numbers than the views, DROP_REMOTE_TABLE fails, or a materialized table refuses an UPDATE. Not for the full cache of a view (\u002Fdenodo:cache), not for changing rows of an existing table (\u002Fdenodo:dml).","https:\u002F\u002Fgithub.com\u002Fkirivandubai\u002Fdenodo_wipe_coading_skills\u002Fblob\u002Fmain\u002Fskills\u002Fmaterialize\u002FSKILL.md",[],[],{"skillNo":85,"name":86,"nameZh":9,"description":87,"descriptionZh":9,"repositoryFullName":22,"ownerLogin":5,"ownerAvatarUrl":6,"ownerAccountNo":4,"ownerDisplayName":9,"repositoryNo":23,"starsCount":12,"licenseSpdxId":24,"licenseFileUrl":9,"sourceHtmlUrl":88,"categories":89,"keywords":90,"publishedAt":28},"01M7C2K0N7WYCVCZ1XY7R4NPYP","marketplace","Use when something has to appear or be labelled in the Denodo 9.5 Data Marketplace — the separate server behind \u002Fdenodo-data-catalog that is driven by REST, not VQL. Covers a marketplace tag, a category tree, assigning either to the views a consumer browses, importing VDP tags into the marketplace, synchronising the marketplace catalog with Virtual DataPort, and registering an external element (asset extension) — a dashboard, ETL job, data contract, notebook or AI agent from another tool — so it shows up in the 360 graph beside the views it uses. Also for \"tag it in the marketplace\", \"put this data product in a category\", \"show our BI dashboards in the catalog\", \"why does the marketplace not see this view\". Not for VDP tags (CREATE TAG, ALTER TAG) — those are \u002Fdenodo:catalog.","https:\u002F\u002Fgithub.com\u002Fkirivandubai\u002Fdenodo_wipe_coading_skills\u002Fblob\u002Fmain\u002Fskills\u002Fmarketplace\u002FSKILL.md",[],[],{"skillNo":92,"name":93,"nameZh":9,"description":94,"descriptionZh":9,"repositoryFullName":22,"ownerLogin":5,"ownerAvatarUrl":6,"ownerAccountNo":4,"ownerDisplayName":9,"repositoryNo":23,"starsCount":12,"licenseSpdxId":24,"licenseFileUrl":9,"sourceHtmlUrl":95,"categories":96,"keywords":97,"publishedAt":28},"01M7C2JTAYW208PEZXG94SD6SY","execute","Use when VQL or a Data Marketplace or Scheduler REST call has to run against a live Denodo 9.5 server — applying a .vql file, running DESC or a test SELECT, checking a connection — or when `scripts\u002Fdenodo` returned JSON with `ok:false` that needs interpreting. Not for writing VQL — that is \u002Fdenodo:vql and the domain skills.","https:\u002F\u002Fgithub.com\u002Fkirivandubai\u002Fdenodo_wipe_coading_skills\u002Fblob\u002Fmain\u002Fskills\u002Fexecute\u002FSKILL.md",[],[],{"skillNo":99,"name":100,"nameZh":9,"description":101,"descriptionZh":9,"repositoryFullName":22,"ownerLogin":5,"ownerAvatarUrl":6,"ownerAccountNo":4,"ownerDisplayName":9,"repositoryNo":23,"starsCount":12,"licenseSpdxId":24,"licenseFileUrl":9,"sourceHtmlUrl":102,"categories":103,"keywords":104,"publishedAt":28},"01M7C2JGSM08E4R837N2EFB1TE","dml","Use when rows have to change in the database behind a Denodo 9.5 view — INSERT, UPDATE or DELETE through a view or base view, INSERT … SELECT from another view or a file, an upsert (ON DUPLICATE KEY UPDATE), RETURNING the generated key, a view an application writes through WITH CHECK OPTION (\"correct these records\", \"set these orders back to open\", \"load these rows into the table\", \"delete the test orders\", \"the app may only create orders for its own region\", \"give me the new ids\"). Also when such a write fails with \"Update operation is not allowed\", \"No update methods ready to be run\", \"The update condition is non-delegable\", \"CHECK OPTION failed\" or \"is not updateable\", or a cached view went empty after someone updated rows through it. Not for views that only read (\u002Fdenodo:views), loading a view's cache (\u002Fdenodo:cache), or a table made from a query's result (\u002Fdenodo:materialize).","https:\u002F\u002Fgithub.com\u002Fkirivandubai\u002Fdenodo_wipe_coading_skills\u002Fblob\u002Fmain\u002Fskills\u002Fdml\u002FSKILL.md",[],[],{"skillNo":106,"name":107,"nameZh":9,"description":108,"descriptionZh":9,"repositoryFullName":22,"ownerLogin":5,"ownerAvatarUrl":6,"ownerAccountNo":4,"ownerDisplayName":9,"repositoryNo":23,"starsCount":12,"licenseSpdxId":24,"licenseFileUrl":9,"sourceHtmlUrl":109,"categories":110,"keywords":111,"publishedAt":28},"01M7C2J7FE9Q7VQ06P07VA8116","datasources","Use when connecting any source to Denodo 9.5 and turning it into base views — a delimited file or CSV (CREATE DATASOURCE DF), a JSON file (CREATE DATASOURCE JSON), a relational database over JDBC (CREATE DATASOURCE JDBC), the wrapper and the base view (CREATE TABLE … ADD SEARCHMETHOD) — and equally for a REST or HTTP API, Excel, XML, Parquet, Salesforce, SAP, OData, SOAP, MongoDB, a SaaS application, a base view over a SQL query or a database's stored procedure or function, or a base view whose source schema changed. Also for \"connect Oracle\u002FPostgres\", \"onboard this CSV\", \"make base views over the source\", introspecting a source's tables, and a base view that was created fine but returns no rows or wrong values. Not for derived views over base views that already exist — that is \u002Fdenodo:views.","https:\u002F\u002Fgithub.com\u002Fkirivandubai\u002Fdenodo_wipe_coading_skills\u002Fblob\u002Fmain\u002Fskills\u002Fdatasources\u002FSKILL.md",[],[],{"skillNo":113,"name":114,"nameZh":9,"description":115,"descriptionZh":9,"repositoryFullName":22,"ownerLogin":5,"ownerAvatarUrl":6,"ownerAccountNo":4,"ownerDisplayName":9,"repositoryNo":23,"starsCount":12,"licenseSpdxId":24,"licenseFileUrl":9,"sourceHtmlUrl":116,"categories":117,"keywords":118,"publishedAt":28},"01M7C2J0862Z0BTC8H1ZDHG2BE","catalog","Use when creating or changing the structure of a Denodo 9.5 catalog — a virtual database (CREATE DATABASE, description, CHARSET, authentication), a folder or a folder tree (CREATE FOLDER, ALTER FOLDER, rename or move, drop with CASCADE), or a VDP tag (CREATE TAG, ALTER TAG, assign a tag to views and columns, list where a tag is assigned, \"mark this column as PII in VDP\"). Not for Data Marketplace tags or categories — that is \u002Fdenodo:marketplace; not for views themselves.","https:\u002F\u002Fgithub.com\u002Fkirivandubai\u002Fdenodo_wipe_coading_skills\u002Fblob\u002Fmain\u002Fskills\u002Fcatalog\u002FSKILL.md",[],[],{"skillNo":120,"name":121,"nameZh":9,"description":122,"descriptionZh":9,"repositoryFullName":22,"ownerLogin":5,"ownerAvatarUrl":6,"ownerAccountNo":4,"ownerDisplayName":9,"repositoryNo":23,"starsCount":12,"licenseSpdxId":24,"licenseFileUrl":9,"sourceHtmlUrl":123,"categories":124,"keywords":125,"publishedAt":28},"01M7C2HQDN4JP9KKVNFMR5C46J","cache","Use when a Denodo 9.5 view should be answered from a stored copy instead of its sources, or when that copy misbehaves — putting a full cache (materialization) on a view or a base view (ALTER VIEW … CACHE FULL), loading or refreshing it with a preload query, caching only some rows, clearing it, switching it off, \"the view is slow, cache it\", \"materialize this view\", \"give me the statement that loads the cache\", a cached view that returns 0 rows, old rows, every row twice, or fails because its cache table is missing (\"Invalid object name\" on SQL Server). Also for any other cache setting — partial or query-results cache, time to live, incremental loads, cache indexes. Not for building or changing what the view computes — \u002Fdenodo:views; not for refreshing it on a schedule — \u002Fdenodo:scheduler; not for a table of its own that other tools read — \u002Fdenodo:materialize.","https:\u002F\u002Fgithub.com\u002Fkirivandubai\u002Fdenodo_wipe_coading_skills\u002Fblob\u002Fmain\u002Fskills\u002Fcache\u002FSKILL.md",[],[],{"skillNo":127,"name":128,"nameZh":9,"description":129,"descriptionZh":9,"repositoryFullName":22,"ownerLogin":5,"ownerAvatarUrl":6,"ownerAccountNo":4,"ownerDisplayName":9,"repositoryNo":23,"starsCount":12,"licenseSpdxId":24,"licenseFileUrl":9,"sourceHtmlUrl":130,"categories":131,"keywords":132,"publishedAt":28},"01M7C2HEAFA34922P75QHQJ9A8","ai","Use when a Denodo 9.5 query or view should call the LLM or the embedding model configured on the server — CLASSIFY_AI, SENTIMENT_AI, SUMMARIZE_AI, TRANSLATE_AI, EXTRACT_AI or ENRICH_AI over a text column (\"tag every ticket by topic\", \"add a sentiment column\", \"translate the reviews into English\", \"pull the amount out of each complaint\"), or semantic search over stored embeddings — the vector type, EMBED_AI, VECTOR_DISTANCE, VECTOR_COSINE_DISTANCE (\"find similar tickets\", \"a search view the app sends a sentence to\"). Also when such a query or view is slow or expensive, labels an empty text, or fails with \"does not have the required privileges to execute this function\". Not for drafting view or field descriptions with the Denodo Assistant (\u002Fdenodo:semantics), and not for configuring the LLM, the embedding model or the vector database (the administrator, in Design Studio).","https:\u002F\u002Fgithub.com\u002Fkirivandubai\u002Fdenodo_wipe_coading_skills\u002Fblob\u002Fmain\u002Fskills\u002Fai\u002FSKILL.md",[],[],18]