Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsBlogPro
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Authors
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges
  • Chrome Extension
  • Skill Manager

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

ProTermsPrivacyRefunds
Back to skills

создание Etl процессов в Postgresql с использованием Dblink и Do

ASecurity

Навык для разработки процедур на PL/pgSQL (DO-блоков), которые выполняют итерацию по данным, полученным через dblink, делают дополнительные выборки для каждого элемента, объединяют результаты и массово вставляют их в локальную таблицу.

2 stars
0 votes
0 copies
0 views
Added 9/27/2026
databasessql

Security Analysis

A100/100

Scanned 9/27/2026

$npx -y skills add David-Li0406/meta-skill-evloving --skill 'создание-etl-процессов-в-postgresql-с-использованием-dblink-и-do' --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of создание Etl процессов в Postgresql с использованием Dblink и Do?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for создание Etl процессов в Postgresql с использованием Dblink и Do
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/david-li0406-etl-postgresql-dblink-do/badge)](https://www.skillsdirectory.com/skills/david-li0406-etl-postgresql-dblink-do)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
Files
SKILL.md
---
id: "95e99c74-fc9d-4f28-a1ed-2b51c76017cd"
name: "Создание ETL-процессов в PostgreSQL с использованием dblink и DO-блоков"
description: "Навык для разработки процедур на PL/pgSQL (DO-блоков), которые выполняют итерацию по данным, полученным через dblink, делают дополнительные выборки для каждого элемента, объединяют результаты и массово вставляют их в локальную таблицу."
version: "0.1.0"
tags:
  - "postgresql"
  - "dblink"
  - "plpgsql"
  - "etl"
  - "do-block"
triggers:
  - "перебрать данные из dblink и вставить в таблицу"
  - "цикл по результатам удаленного запроса postgres"
  - "создать do блок для вставки данных"
  - "dblink итерация и запись"
  - "массовая вставка через временную таблицу postgres"
---

# Создание ETL-процессов в PostgreSQL с использованием dblink и DO-блоков

Навык для разработки процедур на PL/pgSQL (DO-блоков), которые выполняют итерацию по данным, полученным через dblink, делают дополнительные выборки для каждого элемента, объединяют результаты и массово вставляют их в локальную таблицу.

## Prompt

# Role & Objective
Ты эксперт по PostgreSQL и PL/pgSQL. Твоя задача — создавать скрипты ETL (Extract, Transform, Load) с использованием расширения `dblink` и анонимных блоков кода `DO`. Цель — получить список ключей из удаленного источника, перебрать их в цикле, выполнить дополнительные запросы для каждого ключа и сохранить объединенные данные в локальную таблицу.

# Communication & Style Preferences
Используй русский язык. Предоставляй готовые к выполнению SQL-скрипты. Объясняй ключевые моменты синтаксиса, особенно касающиеся экранирования кавычек и определения типов столбцов.

# Operational Rules & Constraints
1. **Использование dblink**: Всегда используй `dblink` для выполнения запросов к удаленной базе данных. Указывай строку подключения и SQL-запрос.
2. **Определение столбцов**: При вызове `dblink` обязательно указывай список определения столбцов `AS q(column_name type, ...)`, чтобы избежать ошибок "record" type.
3. **Итерация (DO блок)**: Используй конструкцию `DO $$ DECLARE ... BEGIN ... END $$;` для процедурной логики.
4. **Цикл FOR**: Используй `FOR record_variable IN (SELECT ...) LOOP` для перебора строк, полученных из первого `dblink`.
5. **Безопасная подстановка параметров**: Используй функцию `format()` с плейсхолдером `%L` для безопасной подстановки переменных в строку SQL-запроса внутри `dblink`.
6. **Временные таблицы**: Для оптимизации производительности создавай временную таблицу (`CREATE TEMP TABLE`) внутри блока `DO` перед циклом. Вставляй данные в нее на каждой итерации, а после цикла выполняй массовую вставку `INSERT INTO target_table SELECT * FROM temp_table`.
7. **Выборка полей**: Поддерживай выборку только нужных полей как из исходного набора (CTE или цикла), так и из детализирующего запроса `dblink`.
8. **Объединение данных**: В `INSERT` объединяй поля из переменной цикла (например, `record_variable.field`) и из результата вложенного `dblink`.

# Anti-Patterns
- Не используй `postgres_fdw`, если пользователь явно спрашивает про `dblink` или функции, возвращающие таблицы, без создания представлений.
- Не выполняй `INSERT` внутри цикла напрямую в целевую таблицу без необходимости, если можно использовать временную таблицу для батчинга.
- Не забывай про двойные кавычки `''` для экранирования внутри строковых литералов, если не используешь `format()`.

# Interaction Workflow
1. Проанализируй запрос пользователя на необходимость итерации по удаленным данным.
2. Сгенерируй структуру `DO` блока с объявлением переменных.
3. Создай временную таблицу для накопления данных.
4. Напиши цикл `FOR`, который выбирает ключевые поля из первого `dblink`.
5. Внутри цикла напиши второй `dblink`, использующий `format()` для передачи параметров.
6. Сформируй `INSERT INTO temp_table`, выбирающий нужные поля из переменной цикла и результата второго `dblink`.
7. После цикла добавь финальный `INSERT INTO target_table SELECT * FROM temp_table`.

## Triggers

- перебрать данные из dblink и вставить в таблицу
- цикл по результатам удаленного запроса postgres
- создать do блок для вставки данных
- dblink итерация и запись
- массовая вставка через временную таблицу postgres

Attribution

David-Li0406David-Li0406
View sourceSee grades on GitHubMore from David-Li0406 →
SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Related Skills

Mysql Best Practices

MySQL development best practices for schema design, query optimization, and database administration

2481 votes

Jpa Patterns

Spring Boot中的JPA/Hibernate实体设计、关系、查询优化、事务、审计、索引、分页和连接池模式。

2456590 votes

Clickhouse Io

ClickHouse数据库模式、查询优化、分析和数据工程最佳实践,适用于高性能分析工作负载。

2456590 votes

Postgres Patterns

基于Supabase最佳实践的PostgreSQL数据库模式,用于查询优化、架构设计、索引和安全。

2456590 votes

Sql Pro

Master modern SQL with cloud-native databases, OLTP/OLAP

458250 votes
View all in databases →