Docs Menu
Docs Home
/
Relational Migrator
/ /

ビューの変換

項目一覧

  • このタスクについて
  • 始める前に
  • 手順
  • 次のステップ
  • 詳細

クエリ 変換は SQLを使用してビューを作成し、それを同等のMQLに変換します。 クエリ ドライバーは、SQL コードを変換する際にプロジェクトに定義されたマッピング ルールとスキーマ変換を考慮します。 変換プロセスの詳細については、 変換ビューの例を参照してください。

  • クエリ ドライバーはAIテクノロジーを使用しますが、長いクエリや複雑なクエリ、トリガー、または保存された手順を変換できない場合があります。 正しく変換されないクエリもあれば、まったく変換されないクエリもあります。

  • クエリ ドライバーは、リレーショナル スキーマ、MongoDB スキーマ、現在のプロジェクト内のマッピング ルールを使用して、クエリを変換する方法を決定します。 クエリがリレーショナル スキーマにないテーブルを参照する場合、または MongoDB コレクションにマップされていない場合、変換が失敗したり不正確になることがあります。

  • 変換されたクエリ、trigger、ビュー、保存された手順はプロジェクトに保存され、プロジェクトのインポートおよびエクスポート後も保持されます。

  • SQLクエリは40 、 000テキスト文字に制限されています。

  • 左側の [ Query Converterペインで以前の変換履歴を表示できます。 各変換には、変換の結果を示す アイコンがあります。 オブジェクトの横に アイコンがない場合、変換はまだ試行されていません。

    Icon
    説明
    スピナー
    変換が実行中です。
    緑色のチェックマーク
    変換は成功しました。
    赤色の句読点
    前回の試行では変換は失敗しました。

クエリ 変換によって生成されたコードは、本番環境に配置する前に、必ず確認とテストを行ってください。

1

[ Code Generationタブから、 Query Converterペインをクリックします。

2
  • プロジェクトでクエリ 変換を初めて使用する場合は、[ Import From Databaseをクリックします。

  • プロジェクトですでに SQL コードを変換している場合は、左側ペインの [ Manage Database Objects ] ボタンをクリックします。

3
  1. ソース データベースへの接続の詳細を指定します。

    詳細については、 リレーショナルデータベース接続文字列」を参照してください。

  2. [Connect] をクリックします。

4
  1. Import Database Objectsモーダルで、データベースをクリックします。

  2. をクリックしますスキーマの横にある アイコン。

  3. をクリックしますViewsの横にあるアイコン。

  4. 変換するビューを選択するには、次をクリックします。ビュー名の横にあるアイコン。 デフォルトでは、すべてのビューが選択されています。

  5. [Save] をクリックします。

5
  1. 左側のペインからViewsの下のビューの名前をクリックします。

    SQL コードはImported Viewペインに表示されます。

  2. [ Convert ] ボタンをクリックします。 クエリ ドライバーがコードを変換するまで待ちます。

    変換された MongoDB コードはConverted MongoDB Queryペインに表示されます。

    クエリ 変換にエラーが発生した場合は、 Converted MongoDB Queryペインで詳細を表示できます。

  3. をクリックしますアイコンを使用して、MongoDB コードをクリップボードにコピーします。

  4. 生成された MongoDB コードをテストして検証します。

Tip

Filterテキスト ボックスを使用して、オブジェクト名と SQL 構文に基づいて、クエリ、保存済み手順、trigger、ビューをフィルタリングできます。

次の例は、 Northwind データベースの例から MongoDB コードに変換された PostgreSQL ビューを示しています。

クエリから MongoDB ビューを作成するには、次のようにします。

次の例は、MongoDB に変換された内部結合ビューを示しています。

SQL Syntax
MongoDB 構文
SELECT
O.ORDER_ID,
O.CUSTOMER_ID,
O.ORDER_DATE,
OD.UNIT_PRICE,
OD.DISCOUNT
FROM ORDERS AS O
INNER JOIN ORDER_DETAILS AS OD
ON O.ORDER_ID = OD.ORDER_ID;
async function query(db) {
return await db.collection('orders').aggregate(
[
{
$lookup:
{
from: "orderDetails",
localField: "orderId",
foreignField: "orderId",
as: "orderDetails"
},
},
{
$unwind: "$orderDetails",
},
{
$project:
{
orderId: 1,
customerId: 1,
orderDate: 1,
unitPrice: "$orderDetails.unitPrice",
discount: "$orderDetails.discount"
}
}
]
).toArray();
}

MongoDB でこのビューを作成する shell コマンドは次のとおりです。

db.createView("VW_OrderDetails", "orders",
[
{
$lookup:
{
from: "orderDetails",
localField: "orderId",
foreignField: "orderId",
as: "orderDetails"
},
},
{
$unwind: "$orderDetails",
},
{
$project:
{
orderId: 1,
customerId: 1,
orderDate: 1,
unitPrice: "$orderDetails.unitPrice",
discount: "$orderDetails.discount"
}
}
]
)

次の例では、MongoDB に変換されたビュー別の集計グループを示しています。

SQL Syntax
MongoDB 構文
SELECT
POSTAL_CODE,
COUNT(*) AS CUSTOMERCOUNT
FROM CUSTOMERS
GROUP BY POSTAL_CODE
ORDER BY CUSTOMERCOUNT DESC;
async function query(db) {
return db.collection('customers').aggregate(
[
{
$group:
{
_id: "$postal_code",
customercount: { $sum: 1 }
}
},
{
$sort: { customercount: -1 }
}
]
).toArray();
}

MongoDB でこのビューを作成する shell コマンドは次のとおりです。

db.createView("VW_Customers", "customers",
[
{
$group:
{
_id: "$postal_code",
customercount: { $sum: 1 }
}
},
{
$sort: { customercount: -1 }
}
]
)

戻る

トリガーを変換する