صادرسازی داده‌ها در HarborDB

قابلیت‌های قدرتمند صادرسازی HarborDB برای ذخیره نتایج کوئری‌های شما در قالب‌های مختلف.

Guides
آخرین به‌روزرسانی: ۲۷ بهمن ۱۴۰۴

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

نمای کلی قالب‌های صادرسازی

HarborDB از چندین قالب صادرسازی پشتیبانی می‌کند که هر کدام برای موارد استفاده مختلف مناسب هستند:

CSV (مقادیر جدا شده با کاما)

  • بهترین برای: صفحات گسترده (Excel، Google Sheets)، واردسازی/صادرسازی داده‌ها، تبادل داده پایه
  • ویژگی‌ها: جداکننده‌های سفارشی، سرستون‌ها، محدودکننده متن، گزینه‌های رمزگذاری
  • محدودیت‌ها: عدم پشتیبانی از داده‌های سلسله‌مراتبی، حفظ محدود نوع داده

JSON (نمادگذاری شیء جاوااسکریپت)

  • بهترین برای: برنامه‌های وب، APIها، پایگاه‌های داده NoSQL، تبادل داده
  • ویژگی‌ها: چاپ زیبا، قالب‌بندی فشرده، حفظ انواع داده
  • محدودیت‌ها: اندازه فایل بزرگتر، ایده‌آل نیست برای صفحات گسترده

Excel (به زودی)

  • بهترین برای: گزارش‌دهی تجاری، صفحات گسترده قالب‌بندی شده، ارائه داده پیچیده
  • ویژگی‌ها: چندین برگه، فرمول‌ها، قالب‌بندی، نمودارها
  • وضعیت: برنامه‌ریزی شده برای انتشار آینده

فرآیند پایه صادرسازی

مرحله ۱: آماده‌سازی داده‌های شما

  1. یک کوئری اجرا کنید یا جدولی را در نوار کناری انتخاب کنید
  2. نتایج را مرور کنید تا مطمئن شوید داده‌های مورد نظر برای صادرسازی را شامل می‌شوند
  3. در نظر بگیرید فیلتر کنید اگر فقط به ردیف‌ها یا ستون‌های خاصی نیاز دارید

مرحله ۲: شروع صادرسازی

راه‌های مختلفی برای شروع صادرسازی وجود دارد:

از نتایج کوئری

  1. روی دکمه Export کلیک کنید (📤) در نوار ابزار نتایج
  2. یا کلیک راست کنید در هر جای شبکه نتایج
  3. "Export Results" را انتخاب کنید از منوی زمینه

از ناوبری جدول

  1. روی یک جدول کلیک راست کنید در نوار کناری
  2. "Export Data" را انتخاب کنید
  3. محدوده صادرسازی را انتخاب کنید:
    • کل جدول: تمام داده‌ها (با احتیاط در جداول بزرگ استفاده کنید)
    • N ردیف اول: نمونه محدود (توصیه شده برای تست)
    • کوئری سفارشی: عبارت SELECT خاص بنویسید

میانبرهای صفحه‌کلید

  • ⌘ + E: دیالوگ صادرسازی سریع
  • ⌘ + Shift + E: صادرسازی با آخرین تنظیمات استفاده شده

مرحله ۳: پیکربندی تنظیمات صادرسازی

دیالوگ صادرسازی گزینه‌های پیکربندی ارائه می‌دهد:

تنظیمات عمومی

  • نام فایل: تولید خودکار یا نام سفارشی
  • محل ذخیره: انتخاب پوشه مقصد
  • شامل کردن سرستون‌ها: نام ستون‌ها به عنوان ردیف اول (CSV)
  • رمزگذاری: UTF-8 (توصیه شده)، Latin-1، یا پیش‌فرض سیستم

گزینه‌های خاص CSV

  • جداکننده: کاما، سمیکالن، تب، pipe، یا کاراکتر سفارشی
  • محدودکننده متن: کوتیشن، دابل کوتیشن، یا هیچ
  • پایان خط: macOS/Linux (LF)، Windows (CRLF)، یا پیش‌فرض سیستم
  • نمایش NULL: رشته خالی، "NULL"، یا متن سفارشی

گزینه‌های خاص JSON

  • قالب: Pretty (قابل خواندن برای انسان) یا Compact (کم حجم)
  • قالب آرایه: آرایه‌ای از اشیاء یا شیء با ویژگی data
  • شامل متادیتا: اطلاعات اجرای کوئری، انواع ستون‌ها، timestampها

مرحله ۴: اجرا و تأیید

  1. روی "Export" کلیک کنید برای ذخیره فایل
  2. پیشرفت را نظارت کنید برای صادرسازی‌های بزرگ
  3. اندازه فایل و محتوا را تأیید کنید
  4. فایل صادر شده را باز کنید برای تأیید قالب‌بندی

تکنیک‌های پیشرفته صادرسازی

صادرسازی زیرمجموعه‌های خاص داده

انتخاب ستون

فقط ستون‌های خاص را با تغییر کوئری خود صادر کنید:

-- به جای SELECT *
SELECT customer_id, email, last_purchase_date
FROM customers
WHERE active = true;

فیلتر کردن ردیف‌ها

از WHERE clause برای محدود کردن داده‌های صادر شده استفاده کنید:

-- فقط داده‌های اخیر را صادر کنید
SELECT * FROM orders
WHERE order_date >= CURRENT_DATE - INTERVAL '30 days';

داده‌های تجمیعی

نتایج خلاصه شده را صادر کنید:

-- مجموع فروش روزانه را صادر کنید
SELECT
    DATE(order_date) as day,
    COUNT(*) as order_count,
    SUM(total_amount) as daily_revenue
FROM orders
GROUP BY DATE(order_date)
ORDER BY day DESC;

صادرسازی دسته‌ای

برای مجموعه داده‌های بزرگ که از محدودیت حافظه فراتر می‌روند:

صادرسازی تکه‌تکه

-- صادرسازی در دسته‌های ۱۰۰۰۰ ردیفی
SELECT * FROM large_table
ORDER BY id
LIMIT 10000 OFFSET 0;

-- سپس OFFSET را برای دسته بعدی افزایش دهید
SELECT * FROM large_table
ORDER BY id
LIMIT 10000 OFFSET 10000;

Cursorهای سمت سرور

Cursorهای سمت سرور را در Preferences → Performance برای جریان‌دهی مجموعه نتایج بزرگ بدون مشکلات حافظه فعال کنید.

صادرسازی زمان‌بندی شده (پیشرفته)

در حالی که HarborDB زمان‌بندی داخلی ندارد، می‌توانید:

  1. کوئری‌های صادرسازی را ذخیره کنید به عنوان فایل
  2. از macOS Automator استفاده کنید برای اجرای صادرسازی‌ها
  3. با cron یا launchd زمان‌بندی کنید (کاربران پیشرفته)
  4. به پوشه‌های نظارت شده صادر کنید برای پردازش خودکار

راهنمایی‌های خاص قالب

بهترین شیوه‌های صادرسازی CSV

آماده‌سازی داده

  1. کاراکترهای خاص را پاک کنید که ممکن است تجزیه CSV را خراب کنند:
-- کاماها را در فیلدهای متن حذف یا escape کنید
SELECT
    id,
    REPLACE(description, ',', ';') as description,
    amount
FROM products;
  1. خطوط شکسته در فیلدهای متن را مدیریت کنید:
-- خطوط جدید را با فاصله جایگزین کنید
SELECT
    id,
    REPLACE(REPLACE(notes, CHR(10), ' '), CHR(13), ' ') as notes_clean
FROM customer_notes;

تنظیمات سازگار با واردسازی

برای حداکثر سازگاری با برنامه‌های دیگر:

| برنامه | تنظیمات توصیه شده | | ------------------ | ----------------------------------------------------- | | Excel | جداکننده کاما، محدودکننده دابل کوتیشن، رمزگذاری UTF-8 | | Google Sheets | جداکننده کاما، رمزگذاری پیش‌فرض | | Python/R Pandas| جداکننده کاما، بدون محدودکننده متن | | PostgreSQL COPY| جداکننده کاما، سرستون CSV، کوتیشن دابل کوتیشن |

بهترین شیوه‌های صادرسازی JSON

صادرسازی داده ساختاریافته

-- داده‌های سلسله‌مراتبی را صادر کنید
SELECT
    order_id,
    order_date,
    JSON_BUILD_OBJECT(
        'customer_id', c.customer_id,
        'name', c.name,
        'email', c.email
    ) as customer,
    JSON_AGG(
        JSON_BUILD_OBJECT(
            'product_id', p.product_id,
            'name', p.name,
            'quantity', oi.quantity,
            'price', oi.price
        )
    ) as items
FROM orders o
JOIN customers c ON o.customer_id = c.customer_id
JOIN order_items oi ON o.order_id = oi.order_id
JOIN products p ON oi.product_id = p.product_id
GROUP BY o.order_id, o.order_date, c.customer_id, c.name, c.email;

ملاحظات Schema JSON

  • ساختار یکنواخت: اطمینان حاصل کنید تمام ردیف‌ها کلیدهای یکسانی دارند
  • انواع داده: JSON رشته‌ها، اعداد، مقادیر بولین، null را حفظ می‌کند
  • عمق تودرتو: برای برخی برنامه‌ها مسطح کردن را در نظر بگیرید

بهینه‌سازی عملکرد

صادرسازی مجموعه داده‌های بزرگ

مدیریت حافظه

  1. حالت streaming را فعال کنید در Preferences → Performance
  2. اندازه chunk را افزایش دهید برای صادرسازی سریعتر (اگر RAM کافی دارید)
  3. برنامه‌های دیگر را ببندید برای آزادسازی منابع سیستم
  4. Activity Monitor را نظارت کنید برای استفاده حافظه

ملاحظات شبکه

برای صادرسازی از پایگاه داده از راه دور:

  1. در صورت امکان روی سرور صادر کنید (از SSH یا remote desktop استفاده کنید)
  2. صادرسازی‌ها را فشرده کنید (HarborDB به طور خودکار JSON بزرگ را فشرده می‌کند)
  3. ساعت‌های خارج از اوج را زمان‌بندی کنید برای پایگاه‌های داده production
  4. از WHERE clauses استفاده کنید برای محدود کردن انتقال داده

نکات سرعت صادرسازی

  1. فقط ستون‌های مورد نیاز را انتخاب کنید (نه SELECT *)
  2. از محاسبات گران قیمت در کوئری‌های صادرسازی اجتناب کنید
  3. از ستون‌های ایندکس شده در WHERE clauses استفاده کنید
  4. به SSD صادر کنید برای I/O دیسک سریعتر
  5. اسکن real-time آنتی‌ویروس را غیرفعال کنید روی پوشه صادرسازی (موقتاً)

امنیت و حریم خصوصی

مدیریت داده‌های حساس

پوشاندن داده

-- بدون اطلاعات حساس صادر کنید
SELECT
    user_id,
    LEFT(email, 3) || '***@***' as email_masked,
    '***' as password_hash,
    created_at
FROM users;

ملاحظات انطباق

  1. GDPR/CCPA: اطلاعات شناسایی شخصی (PII) را حذف کنید
  2. HIPAA: اطلاعات سلامت محافظت شده (PHI) را ناشناس کنید
  3. PCI DSS: هرگز شماره کارت اعتباری کامل صادر نکنید
  4. سیاست‌های داخلی: قوانین مدیریت داده سازمان خود را دنبال کنید

شیوه‌های صادرسازی امن

  1. صادرسازی‌های حساس را رمزگذاری کنید با استفاده از macOS FileVault یا ابزارهای شخص ثالث
  2. از روش‌های انتقال امن استفاده کنید برای فایل‌های صادر شده (SFTP، ایمیل رمزگذاری شده)
  3. مجوزهای فایل مناسب را تنظیم کنید (chmod 600 برای فایل‌های حساس)
  4. به طور خودکار فایل‌های صادرسازی موقت را حذف کنید
  5. لاگ‌های صادرسازی را ممیزی کنید (در Preferences → Logs موجود است)

رفع مشکلات رایج

مشکلات CSV

"ستون‌ها در Excel ناهمتراز هستند"

  • علت: کاماها یا خطوط شکسته تعبیه شده در داده
  • راه‌حل: از محدودکننده متن استفاده کنید یا داده را قبل از صادرسازی پاک کنید

"مشکلات رمزگذاری کاراکتر"

  • علت: کاراکترهای غیر UTF-8 در داده
  • راه‌حل: با رمزگذاری UTF-8 با BOM برای Excel صادر کنید

"خطاهای واردسازی فایل بزرگ"

  • علت: محدودیت‌های ردیف/ستون Excel (۱,۰۴۸,۵۷۶ ردیف، ۱۶,۳۸۴ ستون)
  • راه‌حل: داده را تقسیم کنید یا از ابزارهای CSV بدون محدودیت استفاده کنید

مشکلات JSON

"نحو JSON نامعتبر"

  • علت: کاراکترهای خاص به درستی escape نشده‌اند
  • راه‌حل: از توابع JSON PostgreSQL برای پاکسازی داده استفاده کنید

"خطاهای حافظه در صادرسازی‌های بزرگ"

  • علت: تلاش برای بارگذاری کل مجموعه داده در حافظه
  • راه‌حل: صادرسازی streaming را فعال کنید یا به صورت تکه‌تکه صادر کنید

"داده‌های تودرتو خیلی پیچیده"

  • علت: JSON عمیقاً تودرتو برای تجزیه دشوار است
  • راه‌حل: ساختار را مسطح کنید یا کوئری را ساده کنید

مشکلات عمومی

"صادرسازی خیلی کند است"

  • علل احتمالی: تأخیر شبکه، سرعت دیسک، عملکرد کوئری
  • مراحل عیب‌یابی:
    1. ابتدا با مجموعه داده کوچک تست کنید
    2. اتصال شبکه را بررسی کنید
    3. فضای آزاد دیسک را تأیید کنید
    4. کوئری پایگاه داده را بهینه کنید

"داده‌های گم شده در صادرسازی"

  • بررسی کنید: فیلترهای WHERE clause، انتخاب ستون، مدیریت NULL
  • تأیید کنید: تعداد ردیف با انتظارات مطابقت دارد، تمام ستون‌ها شامل شده‌اند

"خطاهای denied permission"**

  • راه‌حل:
    1. محل ذخیره متفاوت انتخاب کنید
    2. مجوزهای پوشه را بررسی کنید
    3. HarborDB را با امتیازات مناسب اجرا کنید
    4. نرم‌افزار امنیتی را موقتاً غیرفعال کنید

یکپارچه‌سازی با ابزارهای دیگر

خودکارسازی با اسکریپت‌ها

مثال اسکریپت Shell

#!/bin/bash
# گزارش روزانه را صادر کنید و ایمیل بزنید
EXPORT_FILE="/Users/$(whoami)/Exports/daily_sales_$(date +%Y%m%d).csv"

# شما نیاز دارید اقدامات HarborDB را اینجا اسکریپت کنید
# برای خودکارسازی از ابزارهای خط فرمان PostgreSQL استفاده کنید
pg_dump -t sales -c --inserts your_database > "$EXPORT_FILE"

# فشرده کنید و ایمیل بزنید
gzip "$EXPORT_FILE"
echo "Daily sales export attached" | mail -s "Daily Sales Report" \
  -a "$EXPORT_FILE.gz" team@example.com

وارد کردن به برنامه‌های دیگر

Excel/Google Sheets

  1. CSV: واردسازی مستقیم از طریق Data → From Text/CSV
  2. JSON: از Power Query (Excel) یا Apps Script (Sheets) استفاده کنید

سیستم‌های پایگاه داده

-- دستور COPY PostgreSQL (از CSV صادر شده)
COPY customers FROM '/path/to/export.csv' DELIMITER ',' CSV HEADER;

-- LOAD DATA MySQL
LOAD DATA LOCAL INFILE '/path/to/export.csv'
INTO TABLE customers
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 ROWS;

زبان‌های برنامه‌نویسی

# مثال Python pandas
import pandas as pd

# صادرسازی CSV HarborDB را بخوانید
df = pd.read_csv('export.csv', encoding='utf-8')
print(f"Imported {len(df)} rows")

# یا صادرسازی JSON
df_json = pd.read_json('export.json', orient='records')

خلاصه بهترین شیوه‌ها

قبل از صادرسازی

  1. ابتدا با مجموعه داده کوچک تست کنید
  2. نتایج کوئری را تأیید کنید مطابقت با انتظارات
  3. فضای دیسک موجود را بررسی کنید
  4. حساسیت داده و نیازمندی‌های انطباق را در نظر بگیرید

در حین صادرسازی

  1. قالب مناسب برای مورد استفاده خود انتخاب کنید
  2. از نام‌های فایل توصیفی با تاریخ استفاده کنید
  3. سرستون/متادیتا را برای وضوح شامل کنید
  4. پیشرفت را برای صادرسازی‌های بزرگ نظارت کنید

پس از صادرسازی

  1. یکپارچگی فایل را تأیید کنید (باز کنید و نمونه بررسی کنید)
  2. فایل‌های حساس را ایمن کنید (در صورت نیاز رمزگذاری کنید)
  3. فایل‌های موقت را پاک کنید
  4. صادرسازی را مستند کنید برای تکرارپذیری

مراحل بعدی

اکنون که می‌توانید داده‌ها را به طور مؤثر صادر کنید:

  1. مبانی کوئری - نوشتن کوئری SQL را تسلط پیدا کنید
  2. ناوبری پایگاه داده - ساختار پایگاه داده را کاوش کنید
  3. بهینه‌سازی عملکرد - سرعت صادرسازی را بهینه کنید
  4. یکپارچگی macOS - از ویژگی‌های بومی macOS استفاده کنید

دریافت کمک

اگر با مشکلات صادرسازی مواجه شدید:

  1. راهنمای پشتیبانی ما را برای رفع عیب بررسی کنید
  2. سؤالات متداول را برای سؤالات رایج ببینید
  3. با پشتیبانی تماس بگیرید برای کمک شخصی‌سازی شده

آیا این مفید بود؟

با ارائه بازخورد به ما کمک کنید این مستندات را بهبود بخشیم.