Academy and Foundation unixmens | Your skills, Your future
2.3K subscribers
6.68K photos
1.39K videos
1.24K files
6.19K links
@unixmens_support
@yashar_esm
[email protected]
یک کانال علمی تکنولوژی
فلسفه متن باز-گنو/لینوکس-امنیت - اقتصاد
دیجیتال
Technology-driven -بیزینس های مبتنی بر تکنولوژی
Enterprise open source
ارایه دهنده راهکارهای ارتقای سازمانی - فردی - تیمی
Download Telegram
CREATE INDEX index_name ON table_name(column_name)
LOCAL (PARTITION partition_name1, PARTITION partition_name2, ...);
مثال:

CREATE INDEX emp_partition_idx ON employees(employee_id)
LOCAL (PARTITION part1, PARTITION part2);


نکات مهم:
- استفاده از ایندکس‌ها نیازمند درک کامل از نیازمندی‌های کوئری‌ها و ساختار داده‌ها است.
- ایندکس‌ها باعث بهبود سرعت خواندن داده‌ها می‌شوند اما ممکن است سرعت عملیات درج، به‌روزرسانی و حذف را کاهش دهند.
- برای مدیریت ایندکس‌ها، می‌توانید از دستورات DROP INDEX برای حذف ایندکس‌ها استفاده کنید:

DROP INDEX index_name;
```

با توجه به نیازهای خاص برنامه و داده‌های شما، می‌توانید از انواع مختلف ایندکس‌ها برای بهینه‌سازی عملکرد دیتابیس استفاده کنید.

در آینده در مورد آنها بیشتر خواهم نوشت .

#index #oracle #db #database

https://t.iss.one/unixmens
Database DevOps and Platform Engineering are two distinct but interconnected fields within the broader realm of software development and IT operations. Here’s an overview of each:

Database DevOps

Definition:
Database DevOps is the practice of applying DevOps principles to database management and operations. It emphasizes collaboration between development and operations teams to improve the deployment, management, and monitoring of databases.

Key Concepts:

1. Continuous Integration/Continuous Deployment (CI/CD): Implementing automated pipelines for database changes, allowing for rapid and reliable updates to database schemas and data.

2. Version Control: Using version control systems (like Git) for database scripts, migrations, and configuration files to track changes and facilitate collaboration.

3. Automated Testing: Creating automated tests for database changes to ensure that new code does not introduce errors or regressions.

4. Infrastructure as Code (IaC): Managing database infrastructure through code, enabling reproducibility and consistency across environments.

5. Monitoring and Performance Tuning: Continuously monitoring database performance and making adjustments as necessary to optimize efficiency.

Benefits:

• Faster delivery of database changes.

• Improved collaboration between developers and DBAs (Database Administrators).

• Reduced risk of errors in production environments.

• Enhanced scalability and performance of database systems.

Platform Engineering

Definition:
Platform Engineering focuses on designing and building the underlying systems and infrastructure that support software development and deployment. It aims to create a self-service platform for developers, enabling them to deploy applications efficiently without needing deep knowledge of the underlying infrastructure.

Key Concepts:

1. Cloud Infrastructure Management: Utilizing cloud services (e.g., AWS, Azure, Google Cloud) to provision and manage computing resources.

2. Containerization and Orchestration: Using technologies like Docker and Kubernetes to package applications and manage their deployment at scale.

3. Service Mesh: Implementing frameworks that manage service-to-service communications in microservices architectures.

4. Developer Experience (DevEx): Focusing on creating tools, processes, and environments that enhance the productivity of development teams.

5. Observability: Implementing logging, monitoring, and tracing to gain insights into application performance and troubleshoot issues effectively.

Benefits:

• Streamlined development processes.

• Improved resource utilization and cost management.

• Enhanced security through standardized practices.

• Faster onboarding of new developers by providing self-service tools.

Intersection of Database DevOps and Platform Engineering

Both Database DevOps and Platform Engineering aim to improve the efficiency, reliability, and scalability of software delivery. They often work closely together, as databases are a critical component of most applications. By integrating database management practices into platform engineering efforts, organizations can create a robust environment that supports seamless application development, deployment, and maintenance.

Conclusion

In summary, Database DevOps focuses specifically on the practices surrounding database management within the context of DevOps, while Platform Engineering encompasses a broader scope of building and maintaining the infrastructure that supports software development and operations. Both fields are essential in modern software development practices, particularly in organizations adopting cloud-native architectures and microservices.


#devops #database #platform

https://t.iss.one/unixmens
This media is not supported in your browser
VIEW IN TELEGRAM
Selecting the right database is crucial for building robust workflows tailored to your needs. Databases are the backbone of efficient data storage, retrieval, and management.

Different database types serve unique purposes:

Spatial Databases: Ideal for geospatial data.

Time-Series Databases: Perfect for monitoring and analytics.

Vector, Graph, Document, and Relational Databases: Each offers specialized capabilities for diverse workflows.

For scalability and speed in high-demand environments, consider:

NoSQL Databases

Columnar Databases

In-Memory Databases

Additionally, Object-Oriented Databases provide flexibility for managing complex data structures.

Choose wisely to ensure seamless integration and enhance the precision of your workflows.


#database #devops #dba


https://t.iss.one/unixmens
Academy and Foundation unixmens | Your skills, Your future
AVDF20_technical_paper+Nov+2024+V2.pdf
Oracle Audit Vault and Database Firewall (AVDF) is a comprehensive security solution designed to protect sensitive data in Oracle databases and other database environments. It combines auditing, monitoring, and protection capabilities to help organizations secure their databases against unauthorized access and potential threats.

Key Features of Oracle Audit Vault and Database Firewall:

1. Database Auditing:

Comprehensive Auditing: AVDF collects and consolidates audit data from various databases, including Oracle and non-Oracle databases, providing a centralized view of database activity.

Policy-Based Auditing: Organizations can define specific auditing policies to monitor critical actions, such as changes to sensitive data or unauthorized access attempts.

2. Real-Time Monitoring:

Database Firewall: The solution includes a firewall that monitors and filters database traffic in real-time, blocking unauthorized access attempts and SQL injection attacks.

Alerts and Notifications: Security teams can receive alerts for suspicious activities, allowing for prompt investigation and response.

3. Threat Detection:

Anomaly Detection: AVDF uses machine learning algorithms to detect unusual patterns of database activity that may indicate potential security threats.

Predefined Rules: The system comes with a set of predefined security rules that help identify common attack vectors.

4. Compliance Reporting:

Regulatory Compliance: AVDF assists organizations in meeting compliance requirements for regulations such as GDPR, HIPAA, PCI-DSS, and others by providing detailed audit logs and reports.

Custom Reporting: Users can generate custom reports based on specific criteria to support compliance audits.

5. Data Protection:

Sensitive Data Discovery: AVDF helps identify and classify sensitive data within databases, enabling organizations to apply appropriate security measures.

Data Masking: The solution can mask sensitive data in non-production environments to protect it from unauthorized access during testing or development.

6. Centralized Management:

Single Interface: AVDF provides a single management console for monitoring and managing security across multiple databases, simplifying administration tasks.

Integration with Existing Security Tools: The solution can integrate with other security products and SIEM (Security Information and Event Management) systems for enhanced visibility.

Use Cases:

Regulatory Compliance: Organizations in regulated industries can use AVDF to ensure they meet compliance requirements related to data security and auditing.

Data Security Posture Improvement: By implementing AVDF, organizations can strengthen their overall data security posture and reduce the risk of data breaches.

Incident Response: Security teams can leverage the real-time monitoring capabilities to quickly respond to potential threats and mitigate risks.

In summary, Oracle Audit Vault and Database Firewall provides organizations with a robust framework for securing their database environments through comprehensive auditing, real-time monitoring, threat detection, and compliance reporting. It is particularly valuable for businesses that handle sensitive data and need to adhere to strict regulatory requirements.



#oracle #database #devops #dba #linux #mysql #sqlserver #system

https://t.iss.one/unixmens
Academy and Foundation unixmens | Your skills, Your future
mariadb api.pdf
مقاله mariadb / oracle mysql api

نویسنده : مهندس یاشار اسمعیل دخت


نسخه : 0.1


MariaDB Connect Engine is a feature of MariaDB that allows users to connect to external data sources and treat them as if they were regular tables in a MariaDB database. This capability is particularly useful for integrating data from various sources without the need to import it into the database. Here are some key points about the MariaDB Connect Engine:

Data Sources: The Connect Engine can connect to a variety of data sources, including other databases (like MySQL, PostgreSQL, and Oracle), NoSQL databases, flat files (CSV, JSON, etc.), and even web services.

Virtual Tables: When you connect to an external data source, the Connect Engine creates virtual tables that represent the data in those sources. You can then perform SQL queries on these virtual tables just like you would with regular tables in MariaDB.

Data Federation: This feature allows for data federation, meaning you can query and join data from multiple sources in a single SQL statement. This is particularly useful for reporting and analytics where data is spread across different systems.

Configuration: To use the Connect Engine, you need to configure it properly by defining the connection parameters and the structure of the external data. This is typically done using SQL commands to create a table that specifies the connection details.

Performance: While the Connect Engine provides flexibility, performance can vary depending on the external data source and the complexity of the queries. It's important to consider the performance implications when designing your data architecture.

Use Cases: Common use cases for the Connect Engine include data integration, reporting, and analytics, where organizations need to access and analyze data from multiple disparate sources without duplicating data.

Installation: The Connect Engine is not enabled by default in all MariaDB installations, so you may need to install it separately or enable it in your MariaDB configuration.

Overall, the MariaDB Connect Engine is a powerful tool for organizations looking to integrate and analyze data from various sources seamlessly.


#mariadb #engine #mysql #oracle #dba #devops #database #yashar_esmaildokht

https://t.iss.one/unixmens
آگهی استخدام: کارشناس تحلیل داده و BI




نیازمندی‌ها:

• آشنایی با تحلیل داده و داده‌کاوی

• تسلط بر نوشتن کوئری (SQL)

• آشنایی با مفاهیم تحلیل داده و ایجاد انبار داده

موارد امتیازآور:

• آشنایی با ابزارهای Oracle

• تجربه کار با Oracle Analytics

• آشنایی با OBIEE و Oracle BI Administration

• آشنایی با پایگاه داده Oracle DB

• آشنایی با ابزار ODI

مدرک تحصیلی:
فارغ‌التحصیلان رشته‌های مهندسی کامپیوتر و صنایع

چرا به ما بپیوندید؟
ما به شما فرصتی برای کار در یک محیط پویا و چالش‌برانگیز ارائه می‌دهیم که در آن می‌توانید به توسعه مهارت‌ها و دانش خود بپردازید. همکاری با مشتریان بزرگ کشور و پروژه‌های استراتژیک، تجربه‌های ارزشمندی را برای شما به ارمغان خواهد آورد.


معرفی شرکت:
شرکت داده پردازی ایران با بیش از 60 سال سابقه در صنعت فناوری اطلاعات کشور، به عنوان یکی از پیشگامان این حوزه شناخته می‌شود. ما به دنبال جذب نیروهای حرفه‌ای و متخصص هستیم که با اخلاق حرفه‌ای، مسئولیت‌پذیری، نوآوری و خلاقیت خود، به تیم ما ملحق شوند. در این شرکت، ما به افراد کمک می‌کنیم تا مهارت‌ها و دانش خود را افزایش دهند و محیطی حرفه‌ای و امن را برای رشد و توسعه شغلی فراهم می‌کنیم.

حوزه فعالیت شرکت:

• مشاوره و ارائه راهکارهای نوین بانکی

• طراحی، پیاده‌سازی و پشتیبانی نرم‌افزارهای کاربردی شامل: Core Banking، Switch، Billing، ERP، Office Automation، Internet Bank، Mobile Bank و Channel Manager

• مشاوره و نظارت بر پروژه‌های صنایع استراتژیک کشور از جمله بانکداری نوین، خدمات بیمه، گمرک و تجارت الکترونیک و ...

• طراحی و راه‌اندازی سیستم‌های یکپارچه مشترکین

عزیزان می‌توانند رزومه خود را به این آیدی ارسال نمایند

#BI #DataScience #SQL #Database #Oracle #Linux #hiring #hire

@unixmens
معنایی که من باهاش در گیر هستم Database DevOps هست . در واقع این مفهوم یک رویکرد ترکیبی است که به توسعه و عملیات (DevOps) در زمینه پایگاه‌های داده می‌پردازد. این رویکرد هدفش بهبود همکاری بین تیم‌های توسعه‌دهنده نرم‌افزار و تیم‌های عملیاتی است تا بتوانند به سرعت و با کیفیت بیشتری پایگاه‌های داده را مدیریت، توسعه و استقرار کنند.
که بیشتر سازمان ها باهاش درگیر هستند . و بکر مونده .

در این زمینه تجربیات ارزشمندی بدست آورده ام که مرور در مورد آن خواهم نوشت .
کمی عمیق تر اگر نگاه کنیم به مفهوم cap و طراحی سیستم میرسیم .


مدل CAP (Consistency, Availability, Partition Tolerance) یک نظریه در سیستم‌های توزیع‌شده است که سه ویژگی کلیدی را تعریف می‌کند:

1. Consistency (یکنواختی): همه نودها در یک سیستم توزیع‌شده باید در هر زمان یک نسخه یکسان از داده‌ها را داشته باشند. به عبارت دیگر، پس از نوشتن یک داده، همه نودها باید آن داده را ببینند.

2. Availability (دسترس‌پذیری): هر درخواست به سیستم باید پاسخ دهد، حتی اگر برخی از نودها در دسترس نباشند. این بدان معناست که سیستم باید همیشه آماده ارائه خدمات باشد.

3. Partition Tolerance (تحمل تقسیم): سیستم باید بتواند به کار خود ادامه دهد حتی اگر شبکه به دو یا چند قسمت تقسیم شود. به عبارت دیگر، سیستم باید قادر باشد به کار خود ادامه دهد حتی اگر ارتباط بین نودها قطع شود.

طبق نظریه CAP، در یک سیستم توزیع‌شده نمی‌توان همزمان به هر سه ویژگی دست یافت. بنابراین، طراحان سیستم باید تصمیم بگیرند که کدام دو ویژگی را در اولویت قرار دهند و کدام یک را فدای دیگری کنند.
اما روش های را هم داریم که ترکیبی از این مفاهیم هست و پاسخی به این مسئله هست .


از یاد نبریم در طراحی سیستم (System Design) برای پایگاه‌های داده، چندین عامل مهم وجود دارد:

1. معماری: انتخاب معماری مناسب (مانند میکروسرویس‌ها یا معماری مونو لیتیک) بر اساس نیازهای پروژه.

2. مدل داده: طراحی مدل داده‌ای که شامل جداول، روابط، ایندکس‌ها و غیره باشد.

3. مقیاس‌پذیری: توانایی سیستم برای مقیاس‌پذیری افقی یا عمودی بر اساس بار کاری.

4. دسترس‌پذیری و بازیابی: برنامه‌ریزی برای دسترس‌پذیری بالا و روش‌های بازیابی اطلاعات در صورت بروز خرابی.

5. امنیت: پیاده‌سازی تدابیر امنیتی برای محافظت از داده‌ها.

نقش Database DevOps شامل موارد زیر است:

1. خودکارسازی: استفاده از ابزارهای خودکارسازی برای استقرار و مدیریت پایگاه‌های داده، که می‌تواند شامل نسخه‌گذاری، تست و استقرار باشد.

2. همکاری: بهبود همکاری بین تیم‌های توسعه‌دهنده و عملیاتی برای تسهیل فرآیندهای توسعه و استقرار.

3. مدیریت تغییرات: استفاده از روش‌های مدیریت تغییرات برای اطمینان از اینکه تغییرات در پایگاه داده به طور کنترل‌شده و مستند انجام می‌شود.

4. نظارت و تجزیه و تحلیل: نظارت بر عملکرد پایگاه‌های داده و تجزیه و تحلیل مشکلات به منظور بهبود مستمر.

5. آزمایش: ایجاد تست‌های خودکار برای اطمینان از اینکه تغییرات در پایگاه داده باعث بروز خطا نمیشود

در واقع Database DevOps به سازمان‌ها کمک میکند تا به سرعت و با کیفیت بالاتر به نیازهای بازار پاسخ دهند و همچنین هزینه‌های مرتبط با مدیریت پایگاه‌های داده را کاهش دهند.


#devops #database
https://t.iss.one/unixmens
Myth: Switching from one proprietary #database to another is a sticky situation.

Fact: #MariaDB makes it easier than ever to save up to 90% of proprietary database costs with:  
🤝 Open source Oracle and SQL Server compatibility
📈 Advanced features typically found in expensive proprietary systems such as system versioned tables, and workload capture & replay
🔐 Built-in enterprise-grade security 
🏋️ Best-in-class service and support

Have your cake and eat it, too, with #MariaDB Enterprise Platform. 🍰
https://t.iss.one/unixmens
مفهوم Time Series چیه؟

داده‌های سری زمانی، داده‌هایی هستن که به ترتیب زمان ثبت می‌شن؛ مثلاً داده‌های سنسورها، لاگ سیستم‌ها، یا حتی قیمت ارز توی بازار. نکته‌ی کلیدی اینه که زمان، محور اصلی تحلیله.
چالش‌های این نوع داده‌ها:

نرخ بالای ورود داده (High Ingestion Rate)

تحلیل لحظه‌ای (Real-time Analytics)

کاردینالیتی بالا؛ یعنی میلیون‌ها سنسور یا دستگاه یکتا

نیاز به توابع خاص مثل average، sampling، downsampling، backfill و غیره

تکنولوژی‌هایی که مطرحن:
۱. InfluxDB

یکی از معروف‌ترین‌ها، خیلی راحت راه می‌افته ولی تو کاردینالیتی بالا و ورودی خیلی زیاد کم میاره.
۲. TimescaleDB

بر پایه PostgreSQL، اگه تیم‌ آشنا با SQL باشه عالیه. اما مقیاس‌پذیری افقی محدوده.
۳. QuestDB

سریع و جمع‌وجوره، برای پروژه‌های سبک تا متوسط خیلی خوبه.
۴. ClickHouse

اگه تحلیل پیچیده و سریع real-time بخوایم، این عالیه. بیشتر به درد data analytics می‌خوره.
۵. HoraeDB

جدید و خیلی پیشرفته‌ست، برای داده‌های سری زمانی با کاردینالیتی بالا طراحی شده. با Rust نوشته شده، cloud-native و zero-disk هم هست، یعنی بخش ذخیره‌سازی و محاسبات جداست. هنوز نوپاست ولی آینده‌داره.
۶. ScyllaDB / Cassandra

برای write-heavy عالی‌ان. اگر مدل داده رو خوب طراحی کنیم، می‌تونه حجم بسیار بالای داده رو سریع ذخیره کنه.

مثال در DevOps Metrics :

۱. average (میانگین)
کاربرد:

محاسبه‌ی میانگین زمان پاسخ (Average Response Time)

محاسبه‌ی میانگین زمان استقرار (Average Deployment Time)

تحلیل Load average روی سرورها

مثال:

فرض کن Prometheus از endpoint اپلیکیشن، latency را برمی‌دارد:

avg_over_time(http_request_duration_seconds[5m])

میانگین زمان پاسخ‌گویی در ۵ دقیقه‌ی گذشته را محاسبه می‌کند.
📉 ۲. sampling (نمونه‌برداری)
کاربرد:

کاهش داده‌های ذخیره‌شده در زمان طولانی

بررسی نمای کلی بدون بار زیاد روی سیستم

ایجاد alertها بدون چک کردن ۱۰۰٪ داده‌ها

مثال:

در ابزارهای مانیتورینگ مثل Datadog یا NewRelic، به‌جای بررسی تمام ترافیک، تنها 10٪ نمونه‌برداری می‌شود:

Sampling rate = 0.1 (10% of total traffic)

⬇️ ۳. downsampling (کاهش نرخ داده‌های زمانی)
کاربرد:

نمایش داشبوردهای گرافانا با سرعت بالا

نگهداری long-term metrics (مثلاً ۱ سال اخیر، فقط داده ساعتی)

کاهش بار حافظه/دیسک برای داده‌های time-series

مثال با Prometheus:

avg_over_time(cpu_usage[1h])

داده‌های دقیقه‌ای CPU را به داده‌های ساعتی تبدیل می‌کند (میانگین هر ساعت).

در Grafana هم می‌تونیم تنظیم کنیم که هر بار فقط 1 نقطه در هر 5 دقیقه نمایش داده بشه، نه همه‌ی 1000 داده‌ی خام.

🧩 ۴. backfill (پر کردن داده‌ی گمشده با مقادیر آینده)
کاربرد:

وقتی سرویس مانیتورینگ قطع شده و بعداً reconnect می‌شود

بازیابی گراف‌ها برای تحلیل گذشته (retroactive metrics)

مثال:

فرض کن alertها با داده‌های ناقص کار نمی‌کنن. پس از reconnect شدن agent مانیتورینگ، سیستم مقدار بعدی رو backward propagate می‌کنه:

If data at 10:00 is missing,
use 10:01 value to fill 10:00 slot (backfill)

در ابزارهایی مثل VictoriaMetrics، InfluxDB و TimescaleDB، backfill یکی از ابزارهای مهم در pre-processing داده‌هاست.
ترکیب کاربردها در سناریوی واقعی

🔧 فرض: داری latency یک microservice رو در Grafana نشون می‌دی و باید alert بذاری که وقتی latency بیش از ۵۰۰ms شد، هشدار بده.

برای اینکه سیستم نترکه از انبوه داده، چه می‌کنی؟

با sampling فقط 10٪ داده رو بررسی می‌کنی

با downsampling گراف رو روی میانگین 1 دقیقه‌ای می‌ذاری

با average داده‌های noisy رو صاف می‌کنی

اگر داده‌ای نبود، backfill یا forward fill می‌کنی که alertها skip نشن


#database #time #series #bigdata #InfluxDB #ScyllaDB #Cassandra #ClickHouse #QuestDB #TimescaleDB #HoraeDB
https://t.iss.one/unixmens
This image is a creative and symbolic representation of the importance of SQL (Structured Query Language) across various tech roles. It’s styled like the Knights of the Round Table, where each character represents a different profession in the tech industry. They all have their swords pointed towards the center, symbolizing SQL as a shared, unifying tool or "power" they all rely on.

Here’s a breakdown of what each character symbolizes:
🔁 Roles Around the Table:

Software Engineer

Data Analyst

BI Analyst (Business Intelligence Analyst)

Database Administrator

Cybersecurity Analyst

Full Stack Developer

AI/ML Engineer

ETL Developer

Cloud Engineer

Data Engineer

Data Scientist

💡 Meaning and Message:

Central Role of SQL: Despite the diversity in roles—from data-centric ones (like Data Analyst, Data Scientist) to infrastructure roles (like Cloud Engineer, Cybersecurity Analyst)—SQL is portrayed as a foundational skill that all of them must wield.

Unity Through Data: The image shows that in today’s data-driven world, SQL is not just for database admins—everyone in tech needs to know it, at least to a basic level.

Visual Metaphor: The round table evokes equality and cooperation, symbolizing how all these roles collaborate with a common language: SQL.

🧠 Deeper Insight:

Symbolic Leadership: The person labeled Software Engineer is placed centrally (like a king), which could imply the pivotal or initiating role of software engineering in tech development, though it’s arguable depending on context.

Shared Knowledge Culture: It’s a humorous but poignant reminder that, like a sword for a knight, SQL is a key tool in the arsenal of nearly every modern tech professional.

#sql #devops #linux #database #data #dba

https://t.iss.one/unixmens
بعضا میبینم که برخی دوستان آگهی درستی را انشار نمیدن . برای مثال در حوزه پایگاه داده ، اگر بخواید نیرو جذب کنید بهتره دقیق‌تر توضیح بدید دنبال چه تخصصی هستید.

حوزه پایگاه داده بسیار گسترده است و هر بخش نیازمند مهارت‌ها و وظایف خاص خود است. نمونه‌هایی از نقش‌های رایج عبارتند از:

🟢 طراحی و توسعه (Design & Development)

Database Designer / Data Modeler → طراحی مدل داده، نرمال‌سازی، معماری منطقی و فیزیکی دیتابیس

SQL Developer → توسعه کوئری‌ها، Stored Procedures، توابع و تریگرها

Application Database Developer → یکپارچه‌سازی دیتابیس با اپلیکیشن‌ها و APIها

Database DevOps Engineer → خودکارسازی استقرار دیتابیس، CI/CD دیتابیس، نسخه‌بندی و تست تغییرات


🔵 مدیریت و عملیات (Administration & Operations)

Database Administrator (DBA) → مدیریت، مانیتورینگ، پشتیبان‌گیری، Disaster Recovery

Performance Tuning Specialist → بهینه‌سازی کوئری‌ها، ایندکس‌ها، تنظیمات سرور

Security & Compliance DBA → امنیت داده، کنترل دسترسی، انطباق با استانداردها (GDPR, HIPAA …)

Cloud Database Administrator → مدیریت دیتابیس‌های ابری (AWS RDS, Azure SQL, Google Cloud Spanner …)


🟣 داده‌محور و تحلیلی (Data Engineering & Analytics)

ETL Developer / DataOps Engineer → ساخت و مدیریت Pipeline داده (Extract, Transform, Load)

Data Engineer → معماری داده، طراحی Data Lake و Data Warehouse

BI Developer → توسعه سیستم‌های Business Intelligence

Dashboard / Report Designer → طراحی داشبورد مدیریتی و گزارش‌های تحلیلی

Data Quality Engineer → تضمین کیفیت داده، Data Cleansing، Validation


🟠 تخصصی و پیشرفته (Specialized & Advanced Roles)

Big Data Engineer → کار با Hadoop, Spark, Kafka و معماری داده‌های حجیم

Database Reliability Engineer (DBRE) → مشابه SRE ولی متمرکز بر دیتابیس‌ها (High Availability, Scaling, Monitoring)

Data Migration Specialist → انتقال داده بین سیستم‌ها/نسل‌های مختلف

Data Governance Specialist → مدیریت خط‌مشی‌های داده، Metadata Management

Machine Learning Data Engineer → آماده‌سازی و مدیریت داده برای تیم‌های هوش مصنوعی و یادگیری ماشین
همون‌طور که می‌بینیم، نقش‌هایی مثل Database DevOps Engineer یا Database Reliability Engineer (DBRE) تو نسل جدید مشاغل دیتابیسی اهمیت زیادی پیدا کردن، مخصوصاً با مهاجرت سیستم‌ها به Cloud و نیاز به Automation.


نکته بعدی مشخص‌کردن هدف و کاربری مورد انتظار هست .

نیروی مورد نظر برای چه منظوری نیاز دارید؟

عملیاتی (Operational): مدیریت دیتابیس‌های موجود، مانیتورینگ، نگهداری، پشتیبان‌گیری

فرآیندی (Process-oriented): بهینه‌سازی فرآیندهای داده، مستندسازی، استانداردسازی داده‌ها

فنی (Technical/Development): توسعه سیستم‌های جدید، طراحی معماری داده، پیاده‌سازی ابزارهای BI/ETL


۳. ذکر دقیق مهارت‌ها و ابزارهای مورد نیاز

نوع پایگاه داده: Oracle, SQL Server, PostgreSQL, MySQL, MongoDB, Cassandra, …

ابزارها: SSIS, Talend, Informatica, Power BI, Tableau, Qlik, Airflow, dbt, …

مهارت‌های مکمل: Performance Tuning, Data Modeling, Cloud (AWS/GCP/Azure), Security

سطح تجربه و مسئولیت‌ها

Junior / Entry Level: انجام وظایف روتین و پشتیبانی
Mid-Level: توسعه و بهبود سیستم‌ها، مشارکت در طراحی
Senior / Lead: معماری داده، مدیریت تیم، تصمیم‌گیری استراتژیک

#database #job #jobs #dba
👍3
DevOps has transformed how organizations deliver software by introducing automation, collaboration, and continuous integration/continuous delivery (CI/CD). Yet, databases have traditionally lagged behind in this transformation. Database changes are often managed manually, leading to slow deployments, risks of errors, and lack of visibility. "Database DevOps" aims to close this gap by applying DevOps principles directly to the database lifecycle.

One powerful approach to enabling Database DevOps is combining GitLab CI/CD with Liquibase, a database schema change management tool. This integration allows teams to automate, version, and safely deploy database changes alongside application code.

What is Database DevOps?

Database DevOps (or Database CI/CD) is the practice of managing database schema and data changes with the same rigor as application code. The core principles include:

Version control for database migrations.

Automation of deployment and rollback processes.

Continuous testing of schema and data integrity.

Drift detection to prevent environment inconsistencies.

Collaboration between developers, DBAs, and operations.

Auditing and traceability for compliance and governance.


Elite DevOps teams are 3.4x more likely to adopt database change management practices than low performers, underlining its importance

GitLab and Liquibase Integration

In the GitLab article "How to Bring DevOps to the Database with GitLab and Liquibase", the authors show how Liquibase can be seamlessly integrated into GitLab pipelines to enable full database CI/CD.

Key Components:

1. Liquibase – A tool for managing database migrations through versioned "changesets."


2. GitLab CI/CD – Automates pipelines for building, testing, and deploying database changes.


3. SQL Server (example DB) – The article demonstrates with SQL Server, but the approach applies to other databases too.


Example Pipeline Stages

The tutorial outlines a sample GitLab pipeline with these stages:

Build – Validate Liquibase properties and configurations.

Test – Run Liquibase updateSQL and checks run to ensure safe changes.

Deploy – Apply migrations (liquibase update) to environments (DEV → QA → PROD).

Compare – Use liquibase diff to detect drift between environments.

Post – Create schema snapshots with liquibase snapshot for auditing.

Benefits

1. Automation – Database changes run through the same CI/CD pipeline as code.

2. Validation & Checks – Prevents dangerous operations (DROP, TRUNCATE, etc


3. Rollback Support – Enables reverting last applied updates where possible

4. Drift Detection – Identifies schema inconsistencies between environments

5. Auditing – Snapshots and logs ensure traceability of changes

6. Collaboration – Developers and DBAs work together via version control and merge requests



https://about.gitlab.com/blog/how-to-bring-devops-to-the-database-with-gitlab-and-liquibase/


#database #devops #ci #cd #gitlab
https://t.iss.one/unixmens
unixmens
Academy and Foundation unixmens | Your skills, Your future
DevOps has transformed how organizations deliver software by introducing automation, collaboration, and continuous integration/continuous delivery (CI/CD). Yet, databases have traditionally lagged behind in this transformation. Database changes are often managed…
در دنیای توسعه نرم‌افزار مدرن، تغییرات پایگاه داده به اندازه تغییرات کد اهمیت دارند. اگرچه تیم‌های توسعه به‌طور گسترده از ابزارهایی مانند Git برای مدیریت نسخه‌ی کد استفاده می‌کنند، پایگاه‌های داده همچنان اغلب با روش‌های دستی مدیریت می‌شوند. این رویکرد باعث بروز مشکلاتی همچون ناسازگاری بین محیط‌ها، ریسک بالای خطا، و دشواری در ردیابی تغییرات می‌شود. در این میان، Liquibase به‌عنوان ابزاری قدرتمند برای مدیریت تغییرات پایگاه داده (Database Change Management) معرفی شده است.

ابزارLiquibase چیست؟

ابزارLiquibase یک ابزار متن‌باز و مستقل از پلتفرم است که برای مدیریت تغییرات پایگاه داده استفاده می‌شود. این ابزار به توسعه‌دهندگان و DBAها امکان می‌دهد تغییرات در ساختار پایگاه داده (مانند ایجاد جدول، افزودن ستون یا تغییر ایندکس‌ها) را به صورت کد نسخه‌پذیر (Database as Code) مدیریت کنند.

ابزار Liquibase از فایل‌هایی به نام ChangeLog استفاده می‌کند که شامل مجموعه‌ای از ChangeSetهاست. هر ChangeSet یک تغییر مشخص در پایگاه داده را تعریف می‌کند. به این ترتیب، تغییرات پایگاه داده به صورت تاریخچه‌دار، قابل بازبینی و تکرارپذیر مدیریت می‌شوند

ویژگی‌های کلیدی Liquibase

1. مدیریت نسخه‌ای تغییرات پایگاه داده
تمام تغییرات در قالب ChangeLog ذخیره شده و می‌توان آن‌ها را در مخزن Git مدیریت کرد.


2. قابلیت Rollback
ابزار Liquibase این امکان را فراهم می‌کند که در صورت بروز مشکل، تغییرات اعمال‌شده به عقب بازگردانده شوند.


3. پشتیبانی از فرمت‌های مختلف
در حقیقت ChangeLogها می‌توانند در قالب XML، YAML، JSON یا SQL نوشته شوند.


4. مستقل از پایگاه داده
از اکثر دیتابیس‌های محبوب (Oracle, PostgreSQL, MySQL, SQL Server و غیره) پشتیبانی می‌کند.


5. اتوماسیون در CI/CD
به راحتی با ابزارهای CI/CD مانند GitLab CI/CD، Jenkins، Azure DevOps و غیره یکپارچه می‌شود.


6. گزارش‌گیری و Drift Detection
امکان مقایسه پایگاه داده‌ها و شناسایی اختلافات (Schema Drift) را فراهم می‌سازد.

چرخه کار با Liquibase

1. ایجاد یک ChangeLog جدید و تعریف تغییرات.


2. ثبت تغییرات در سیستم کنترل نسخه (مانند Git).


3. اجرای دستورات Liquibase در محیط توسعه برای اعمال تغییرات.


4. اجرای خودکار در CI/CD pipeline برای انتشار تغییرات به محیط‌های Stage و Production.


5. استفاده از دستورات Diff و Snapshot برای بررسی تغییرات و جلوگیری از ناسازگاری.

مزایا

کاهش ریسک خطا در تغییرات دیتابیس.

بهبود همکاری بین توسعه‌دهندگان و DBAها.

امکان استقرار سریع‌تر و ایمن‌تر.

تضمین یکپارچگی دیتابیس در محیط‌های مختلف
چالش‌ها و محدودیت‌ها

برخی تغییرات (مانند حذف ستون‌های حاوی داده) به راحتی قابل Rollback نیستند.

نیاز به آموزش تیم‌ها برای تعریف ChangeSetها به صورت استاندارد.

مدیریت تغییرات پیچیده در دیتابیس‌های بزرگ ممکن است زمان‌بر باشد.



در حقیقت Liquibase ابزاری قدرتمند برای آوردن مفاهیم DevOps به دنیای پایگاه داده است. این ابزار با فراهم کردن امکان نسخه‌پذیری، Rollback، و اتوماسیون تغییرات، به سازمان‌ها کمک می‌کند پایگاه داده‌های خود را با همان کیفیت و سرعت کد نرم‌افزار مدیریت کنند. در نتیجه، استقرار تغییرات پایدارتر، سریع‌تر و قابل اعتمادتر خواهد بود.


#database #devops #dba #ci #cd
@unixmens
من در حوزه DevOps فعالیت میکنم و همچنین سالهاست در حوزه پایگاه داده فعالیت میکنم . بالای ۹ سال oracle dba بودم .
به طور میانگین عرض کنم . بالای ۷۰ درصد مشکلات performance مربوط به app ها در سمت پایگاه داده است .
این موضوع در database DevOps هم معنا پیدا کرده .
همچنین از یاد نبریم database storage engine ها و فلسفه اون ها و تفاوت engine ها را .
در هر پایگاه داده هم این مفاهیم به نحوی در معماری اون گنجانده شده .
از یاد نبریم پایگاه داده بدون system design مثل پرنده ای است که پرواز نمیکند .

به طور خلاصه:

واقعیت این است که خیلی از تیم‌ها وقتی درباره DevOps حرف می‌زنند، لایه‌ی داده را به چشم «black box» نگاه می‌کنند؛ در حالی‌که همان‌طور که گفتیم، بیش از ۷۰٪ مشکلات performance معمولاً ریشه در design و behavior پایگاه داده دارد، نه صرفاً در کد یا سرور اپلیکیشن.

چند نکته در ادامه‌ی برای تکمیل بحث:

در واقع Database DevOps یعنی درآوردن پایگاه داده از حاشیه و آوردنش به چرخه‌ی تحویل مستمر — دقیقاً مثل application code.
یعنی پایگاه داده هم باید versioned، testable و deployable باشد (مثلاً با ابزارهایی مثل Liquibase, Flyway, Alembic).
در موردش چندین مقاله نوشتم .

موضوع Storage Engine‌ها — مثل InnoDB، RocksDB، WiredTiger یا حتی ASM در Oracle — در واقع قلب تپنده‌ی رفتار سیستم هستند.
تفاوت در write pattern، buffer management، concurrency control، transaction isolation و logging مستقیماً روی latency و throughput اپ اثر می‌گذارد.


نکته بعدی : System Design برای پایگاه داده همان چیزی است که خیلی‌ها از آن غافل‌اند.
اگر schema design، index strategy، partitioning logic و data lifecycle مدیریت نشود، هیچ tuning یا DevOps pipeline نمی‌تواند نجاتش دهد.

#devops #database #dba #tips

https://t.iss.one/unixmens
3👍2
من در تعجبم ، چطور میشه به دیتابیس mssql اعتماد کرد ، وقتی مفهوم xtransaction و sharding را هنوز پشتیبانی نمیکنه


ضعف در Sharding (افقی‌سازی داده)

در حالی که MSSQL مفهومی به نام Partitioning دارد، اما این بیشتر شبیه Horizontal Partitioning داخلی در همان دیتابیس است، نه Sharding واقعی.

همچنین Sharding واقعی یعنی توزیع داده در چند نود مستقل (با استقلال پردازشی و storage)، در حالی که Partitioning در MSSQL همه‌چیز را داخل یک Instance نگه می‌دارد.

حتی قابلیت‌های “Federation” و “Elastic Database” که مایکروسافت در Azure معرفی کرده بود، عملاً depreciated شدند و به جای آنها Azure SQL Hyperscale یا Cosmos DB معرفی شد.
یعنی خود مایکروسافت هم پذیرفته که MSSQL به‌صورت native توان Sharding ندارد

⚙️ ۲. ضعف در Cross-Transaction / Distributed Transaction

در واقع MSSQL از Transaction Coordinator (MSDTC) برای تراکنش‌های توزیع‌شده استفاده می‌کند،
اما این مدل:

وابسته به Windows و DCOM است (در نسخه‌های لینوکسی هم محدودیت شدید دارد

باعث افزایش latency، overhead شبکه و کاهش scalability می‌شود.

برای معماری‌های Microservices و Cloud-native اصلاً قابل توصیه نیست.


در مقابل، دیتابیس‌هایی مثل:

وCockroachDB → از Raft و MVCC برای تراکنش‌های ACID توزیع‌شده استفاده می‌کند.

و TiDB → از مدل Percolator (گوگل) برای snapshot isolation در شاردهای مختلف بهره می‌برد.
یعنی در این دیتابیس‌ها، تراکنش به‌صورت natively distributed است، نه از طریق سرویس جانبی

🧠 ۳. دیدگاه فلسفی طراحی

در واقع SQL Server ذاتاً برای دنیای Monolithic Enterprise طراحی شده بود:

“یک دیتابیس مرکزی، روی یک سرور قدرتمند، برای کل سازمان.”



اما امروزه معماری‌ها تغییر کرده‌اند:

“چندین نود، در چند دیتاسنتر، با نیاز به eventual consistency و elastic scale.”



بنابراین حتی با وجود قابلیت‌هایی مثل:

Always On Availability Groups

Read Scale-Out Replicas

Clustered Instances


باز هم MSSQL در واقع Shared-Nothing Sharding یا Multi-Region Write واقعی ندارد.

این قابلیت در mariadb و mysql هم حتی وجود دارد در spider database storage engine و مدیریت با maxscale



وقتی حتی MySQL/MariaDB چنین قابلیت‌هایی دارند، اعتماد کامل به MSSQL در دنیای مدرن سخت است.



و SQL Server شاید از نظر ابزار مدیریتی (SSMS, Data Studio, Profiler, Integration Services) قوی‌تر باشد،
اما از نظر فلسفه‌ی توزیع، مقیاس‌پذیری و استقلال نودها، واقعاً عقب مانده است.



#mssql #windows #database
https://t.iss.one/unixmens
1😨1