HarborDBでのデータのエクスポート

Guides
最終更新: 2026年2月16日

HarborDBは、クエリ結果をさまざまな形式で保存するための強力なエクスポート機能を提供します。同僚とデータを共有したり、他のアプリケーションにインポートしたり、後で分析するために結果をアーカイブしたりする必要がある場合でも、このガイドでは、データを効率的かつ安全にエクスポートするために必要なすべての情報をカバーします。

エクスポート形式の概要

HarborDBは、さまざまな用途に適した複数のエクスポート形式をサポートしています:

CSV(カンマ区切り値)

  • 最適な用途:スプレッドシート(Excel、Google Sheets)、データのインポート/エクスポート、基本的なデータ交換
  • 機能:カスタム区切り文字、ヘッダー、テキスト修飾子、エンコーディングオプション
  • 制限:階層データのサポートなし、データ型の保存が限定

JSON(JavaScript Object Notation)

  • 最適な用途:Webアプリケーション、API、NoSQLデータベース、データ交換
  • 機能:整形出力、コンパクトなフォーマット、データ型の保存
  • 制限:ファイルサイズが大きい、スプレッドシートには理想的でない

Excel(近日公開)

  • 最適な用途:ビジネスレポート、フォーマットされたスプレッドシート、複雑なデータプレゼンテーション
  • 機能:複数シート、数式、フォーマット、グラフ
  • ステータス:将来のリリースで計画中

基本的なエクスポートプロセス

ステップ1:データの準備

  1. クエリを実行するか、サイドバーでテーブルを選択
  2. 結果を確認して、エクスポートしたいデータが含まれていることを確認
  3. 特定の行や列のみが必要な場合はフィルタリングを検討

ステップ2:エクスポートの開始

エクスポートを開始する方法はいくつかあります:

クエリ結果から

  1. 結果ツールバーのエクスポートボタン(📤)をクリック
  2. または結果グリッド内の任意の場所を右クリック
  3. コンテキストメニューから**「結果をエクスポート」を選択**

テーブルナビゲーションから

  1. サイドバーでテーブルを右クリック
  2. 「データをエクスポート」を選択
  3. エクスポート範囲を選択
    • テーブル全体:すべてのデータ(大規模テーブルの場合は注意して使用)
    • 最初のN行:限定されたサンプル(テストに推奨)
    • カスタムクエリ:特定のSELECTステートメントを記述

キーボードショートカット

  • ⌘ + E:クイックエクスポートダイアログ
  • ⌘ + Shift + E:最後に使用した設定でエクスポート

ステップ3:エクスポート設定の構成

エクスポートダイアログには設定オプションがあります:

一般設定

  • ファイル名:自動生成またはカスタム名
  • 保存場所:フォルダの保存先を選択
  • ヘッダーを含める:列名を最初の行として(CSV)
  • エンコーディング:UTF-8(推奨)、Latin-1、またはシステムデフォルト

CSV固有のオプション

  • 区切り文字:カンマ、セミコロン、タブ、パイプ、またはカスタム文字
  • テキスト修飾子:引用符、二重引用符、またはなし
  • 行末:macOS/Linux(LF)、Windows(CRLF)、またはシステムデフォルト
  • NULL表現:空文字列、「NULL」、またはカスタムテキスト

JSON固有のオプション

  • フォーマット:整形(人間が読みやすい)またはコンパクト(最小化)
  • 配列形式:オブジェクトの配列またはデータプロパティを持つオブジェクト
  • メタデータを含める:クエリ実行情報、列タイプ、タイムスタンプ

ステップ4:実行と確認

  1. 「エクスポート」をクリックしてファイルを保存
  2. 大規模なエクスポートの場合は進捗状況を監視
  3. ファイルサイズと内容を確認
  4. エクスポートされたファイルを開きフォーマットを確認

高度なエクスポートテクニック

特定のデータサブセットのエクスポート

列の選択

クエリを変更して特定の列のみをエクスポート:

-- SELECT * の代わりに
SELECT customer_id, email, last_purchase_date
FROM customers
WHERE active = true;

行のフィルタリング

WHERE句を使用してエクスポートデータを制限:

-- 最近のデータのみエクスポート
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;

バッチエクスポート

メモリ制限を超える大規模データセットの場合:

チャンクエクスポート

-- 10,000行ずつバッチでエクスポート
SELECT * FROM large_table
ORDER BY id
LIMIT 10000 OFFSET 0;

-- 次のバッチのためにOFFSETを増やす
SELECT * FROM large_table
ORDER BY id
LIMIT 10000 OFFSET 10000;

サーバーサイドカーソル

環境設定→パフォーマンスでサーバーサイドカーソルを有効にして、メモリの問題なく大規模な結果セットをストリーミング。

スケジュールされたエクスポート(上級)

HarborDBには組み込みのスケジューリング機能はありませんが、以下のことができます:

  1. エクスポートクエリをファイルとして保存
  2. macOS Automatorを使用してエクスポートを実行
  3. cronまたはlaunchdでスケジュール(上級ユーザー向け)
  4. 自動処理のために監視フォルダにエクスポート

形式固有のガイダンス

CSVエクスポートのベストプラクティス

データの準備

  1. CSV解析を壊す可能性のある特殊文字をクリーンアップ
-- テキストフィールドのカンマを削除またはエスケープ
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;

インポートに適したCSV設定

他のアプリケーションとの最大限の互換性のために:

| アプリケーション | 推奨設定 | | ------------------- | ------------------------------------------------------- | | 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;

JSONスキーマの考慮事項

  • 一貫した構造:すべての行が同じキーを持つことを確認
  • データ型:JSONは文字列、数値、ブール値、nullを保存
  • ネストの深さ:一部のアプリケーションでは平坦化を検討

パフォーマンス最適化

大規模データセットのエクスポート

メモリ管理

  1. 環境設定→パフォーマンスでストリーミングモードを有効化
  2. より高速なエクスポートのためにチャンクサイズを増加(十分なRAMがある場合)
  3. システムリソースを解放するために他のアプリケーションを閉じる
  4. メモリ使用量をアクティビティモニターで監視

ネットワークの考慮事項

リモートデータベースのエクスポートの場合:

  1. 可能であればサーバー上でエクスポート(SSHまたはリモートデスクトップを使用)
  2. エクスポートを圧縮(HarborDBは大規模なJSONを自動圧縮)
  3. 本番データベースではピーク時間外にスケジュール
  4. データ転送を制限するためにWHERE句を使用

エクスポート速度のヒント

  1. 必要な列のみを選択(SELECT * ではない)
  2. エクスポートクエリで高コストな計算を避ける
  3. WHERE句でインデックス付き列を使用
  4. より高速なディスクI/OのためにSSDにエクスポート
  5. エクスポートフォルダのウイルス対策リアルタイムスキャンを無効化(一時的に)

セキュリティとプライバシー

機密データの処理

データの編集

-- 機密情報なしでエクスポート
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. エクスポートログを監査(環境設定→ログで利用可能)

一般的な問題のトラブルシューティング

CSVの問題

「Excelで列がずれている」

  • 原因:データに埋め込まれたカンマまたは改行
  • 解決策:テキスト修飾子を使用するか、エクスポート前にデータをクリーンアップ

「文字エンコーディングの問題」

  • 原因:データに非UTF-8文字が含まれている
  • 解決策:Excel用にBOM付きUTF-8エンコーディングでエクスポート

「大規模ファイルのインポートエラー」

  • 原因:Excelの行/列制限(1,048,576行、16,384列)
  • 解決策:データを分割するか、制限のないCSVツールを使用

JSONの問題

「無効なJSON構文」

  • 原因:特殊文字が適切にエスケープされていない
  • 解決策:PostgreSQL JSON関数を使用してデータをサニタイズ

「大規模エクスポートでのメモリエラー」

  • 原因:データセット全体をメモリに読み込もうとしている
  • 解決策:ストリーミングエクスポートを有効化するか、チャンクでエクスポート

「ネストされたデータが複雑すぎる」

  • 原因:深くネストされたJSONの解析が困難
  • 解決策:構造を平坦化するか、クエリを簡素化

一般的な問題

「エクスポートが遅すぎる」

  • 考えられる原因:ネットワーク遅延、ディスク速度、クエリパフォーマンス
  • デバッグ手順
    1. まず小規模なデータセットでテスト
    2. ネットワーク接続を確認
    3. ディスクに空き容量があることを確認
    4. データベースクエリを最適化

「エクスポートにデータが欠けている」

  • 確認:WHERE句フィルタ、列選択、NULL処理
  • 検証:行数が期待通りか、すべての列が含まれているか

「パーミッション拒否エラー」

  • 解決策
    1. 別の保存場所を選択
    2. フォルダ権限を確認
    3. HarborDBを適切な権限で実行
    4. 一時的にセキュリティソフトウェアを無効化

他のツールとの統合

スクリプトによる自動化

シェルスクリプトの例

#!/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:データ→テキスト/CSVから直接インポート
  2. JSON:Power Query(Excel)またはApps Script(Sheets)を使用

データベースシステム

-- PostgreSQL COPYコマンド(エクスポートされたCSVから)
COPY customers FROM '/path/to/export.csv' DELIMITER ',' CSV HEADER;

-- MySQL LOAD DATA
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

# HarborDB CSVエクスポートを読み込み
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. よくある質問については**FAQ**を参照
  3. 個別の支援については**サポートにお問い合わせ**

これは役に立ちましたか?

フィードバックを提供してこのドキュメントの改善にご協力ください。