これは、Ubuntu Online、Fedora Online、Windowsオンラインエミュレーター、MACOSオンラインエミュレーターなどの複数の無料オンラインワークステーションのXNUMXつを使用してOnWorks無料ホスティングプロバイダーで実行できるコマンドpgloaderです。
プログラム:
NAME
pgloader -PostgreSQLデータローダー
SYNOPSIS
pgloader [ ] [ ]..。
pgloader [ ] ソース・ターゲット
DESCRIPTION
pgloaderは、さまざまなソースからPostgreSQLにデータをロードします。 それはそれがデータを変換することができます
その場で読み取り、ロードの前後に生のSQLを送信します。 それは使用します COPY
データをサーバーにストリーミングし、次の情報を入力してエラーを管理するPostgreSQLプロトコル
一対の react.dat と 拒否.log ファイル。
pgloaderは、ファイルから読み取られるコマンドを使用して動作します。
pgloaderコマンド.load
または、すべてコマンドラインで提供される引数とオプションを使用します。
pgloaderソースターゲット
議論
pgloader引数は、必要な数のロードファイル、またはいくつかの接続にすることができます
特定の入力ファイルへの文字列。
SOURCE インターフェイス STRING
ソース接続文字列の形式は次のとおりです。
format:///absolute/path/to/file.ext
format://./relative/path/to/file.ext
フォーマットは次のいずれかになります csvファイル, 固定の, copy, dbf, db3 or IXF.
db:// user:pass @ host:port / dbname
dbはどこにあるのか sqlite, mysqlの or mssql.
ファイルベースのソース形式を使用する場合、pgloaderはファイルのネイティブフェッチもサポートします
httpの場所から、必要に応じてアーカイブを解凍します。 その場合、それは必要です
使用します - タイプ ファイルの予想される形式を指定するオプション。 例を見る
を参照してください。
また、一部のファイル形式では、次のような実装の詳細を記述する必要があることに注意してください。
読み取る列、区切り文字、およびcsvからロードするときの引用符。
より複雑な読み込みシナリオの場合は、本格的な読み込みコマンドを次のように記述する必要があります。
このドキュメントで後述する構文。
TARGET インターフェイス STRING
ターゲット接続文字列の形式については、このドキュメントの後半で詳しく説明します。を参照してください。
セクション接続文字列。
OPTIONS
お問い合わせ OPTIONS
使用方法について詳しく知りたい場合は、これらのオプションを使用してください pgloader、それらのオプションとして
引き起こすだろう pgloader データをロードしないでください。
-h, - 助けて
コマンドの使用法の要約を表示して終了します。
-V, - バージョン
pgloaderのバージョン文字列を表示して終了します。
-E, --リストエンコーディング
このバージョンのpgloaderの既知のエンコーディングを一覧表示します。
-U, --アップグレード構成
コマンドラインで指定されたファイルを次のように解析します pgloader.conf とファイル INI 構文
これはpgloaderバージョン2.xで使用されており、次の新しいコマンド構文を出力します。
標準出力のpgloader。
全般的な OPTIONS
これらのオプションは微調整することを目的としています pgloader データをロードするときの動作。
-v, -詳細
冗長になります。
-q, - 静かな
静かにして。
-d, - デバッグ
デバッグレベルの情報メッセージを表示します。
-D, --ルートディレクトリ
ルート作業ディレクトリを設定します(デフォルトは「/ tmp / pgloader」)。
-L, --ログファイル
pgloaderログファイルを設定します(デフォルトは「/tmp/pgloader.log」)。
--log-min-messages
ログメッセージがログファイルに到達するために必要な最小レベルの冗長性。 の一つ
クリティカル、ログ、エラー、警告、通知、情報、またはデバッグ。
--client-min-messages
ログメッセージがコンソールに到達するために必要な最小レベルの冗長性。 の一つ
クリティカル、ログ、エラー、警告、通知、情報、またはデバッグ。
-S, - まとめ
要約出力をコピーするファイル名。 相対的な場合、ファイル名は
に拡大 * root-dir *.
ファイル名の形式はデフォルトで次のようになります 人間 読みやすいです。 持つことが可能です
次のようなマシンフレンドリーな形式の出力 CSV, COPY (PostgreSQL独自のコピー
フォーマット)または JSONの 拡張子respのファイル名を指定します。 この.csv, 。コピー or
.json.
-l , --load-lisp-ファイル
Lispを指定する file を読み取る前に、コンパイルしてpgloaderイメージにロードします。
コマンド、追加の変換関数を定義できます。 これらの関数は
で定義されます pgloader.transforms パッケージ。 このオプションは、
コマンドラインでXNUMX回。
-自己アップグレード :
指定します ディレクトリにジョブを開始します。 pgloaderソースを見つける場所。
それが行うことは、動的に別のものをロードイン(およびマシンコードにコンパイル)することです
それ自体のバージョンであり、通常はごく最近のgitチェックアウトのような新しいバージョンです。
COMMAND LINE たったの オペレーション
これらのオプションは、を使用するときに使用することを目的としています pgloader コマンドラインからのみ、むしろ
コマンドファイルと豊富なコマンド句とパーサーを使用するよりも。 単純なケースでは、
はるかに使いやすく SOURCE と TARGET コマンドラインで直接、次に微調整します
これらのオプションを使用してロードする:
· - と "オプション":
コマンドラインからオプションを設定できます。 そのオプションは何度でも使用できます
あなたが欲しい。 オプションの引数は、 WITH ソースタイプの句
SOURCE このドキュメントで後述する仕様。
· - 設定 "guc_name =´value´"
コマンドラインからPostgreSQL構成を設定できます。 オプションに注意してください
解析は、から使用した場合と同じです。 セット コマンド句、特にあなたはしなければなりません
guc値を一重引用符で囲みます。
· - 分野 「……」
ソースフィールド定義を設定できます。 フィールドは、指定された順序で累積されます
コマンドライン。 どちらを使用することも可能です - 分野 ソースのフィールドごとのオプション
ファイル、またはフィールド定義をコンマで区切るには、 HAVING
フィールド 句。
· - キャスト 「……」
データをロードするための特定のキャストルールを設定できます。
· - タイプ csv | fixed | db3 | ixf | sqlite | mysql | mssql
次の場合に、ソースタイプを強制できます。 SOURCE 構文解析は満足のいくものではありません。
· - エンコーディング
データをロードするソースファイルのエンコーディングを設定します。
· - 前
SQLクエリの指定されたファイル名を解析し、前にターゲットデータベースに対して実行します
ソースからデータをロードします。 クエリはpgloader自体によって解析されます:それらは必要です
セミコロン(;)で終了し、ファイルには次のものが含まれる場合があります \i or \ ir にコマンド
include 別のファイル。
· - 後
SQLクエリの指定されたファイル名を解析し、後でターゲットデータベースに対して実行します。
ソースからデータをロードした。 クエリは、と同じ方法で解析されます
- 前 オプション、上記を参照してください。
MORE DEBUG 情報
最大量のデバッグ情報を取得するには、両方を使用できます。 -詳細 と
- デバッグ 同時に切り替える、これは言うのと同じです --client-min-messages
データ。 次に、ログメッセージには、処理中のデータが表示されます。
コードはそれを明示的にサポートしています。
USAGE 例
コマンドラインオプションとpgloaderのバージョンを確認します。
pgloader --ヘルプ
pgloader --バージョン
ローディング from a 複雑な command
コマンドファイルをpgloaderコマンド引数として使用します。pgloaderはそのファイルを解析し、
その中にあるコマンドを実行します。
pgloader -verbose ./test/csv-districts.load
CSV
CSVファイルからデータベース内の既存のテーブルにデータをロードします。
pgloader --type csv
--フィールド ID --フィールド フィールド
--切り捨てあり
-- 「',' で終了するフィールド」を使用
./test/data/matching-1.csv
postgres:/// pgloader?tablename = matching
その例では、ロード全体がコマンドラインから駆動され、
pgloaderコマンド構文でコマンドを完全に記述します。 ただし、コマンドがないため、
必要な追加情報は、コマンドラインで - タイプ と
- 分野 と - と スイッチ。
で使用可能な構文に関するドキュメントについては、 - 分野 と - と スイッチをお願いします
マニュアルページで後述するCSVセクションを参照してください。
PostgreSQLURIにはターゲットが含まれていることにも注意してください テーブル名.
リーディング from 標準入力
次のように、ファイルベースのpgloaderソースを標準入力からロードできます。
例:
pgloader --type csv
-フィールド "usps、geoid、aland、awater、aland_sqmi、awater_sqmi、intptlat、intptlong"
--「ヘッダーをスキップ = 1」の場合
-- 「'\t' で終了するフィールド」を使用
-
postgresql:/// pgloader?districts_longlat
<test / data / 2013_Gaz_113CDs_national.txt
ダッシュ(-)ソースとしての文字は、 標準 、Unixではいつものように
コマンドライン。 この手法を使用すると、圧縮されたコンテンツをpgloaderにストリーミングできます。
Unixパイプの使用:
gunzip -c source.gz | pgloader --type csv ... --pgsql:/// target?foo
ローディング from CSV 利用できます HTTP
CSVファイルがたまたまで見つかった場合は、上記と同じコマンドを実行することもできます。
リモートHTTPの場所:
pgloader --type csv
-フィールド "usps、geoid、aland、awater、aland_sqmi、awater_sqmi、intptlat、intptlong"
--「ヘッダーをスキップ = 1」の場合
-- 「'\t' で終了するフィールド」を使用
http://pgsql.tapoueh.org/temp/2013_Gaz_113CDs_national.txt
postgresql:/// pgloader?districts_longlat
その場合、ファイルにはXNUMX行のヘッダーが含まれているため、さらにいくつかのオプションを使用する必要があります。
(最も一般的には、その列名は著作権表示である可能性があります)。 また、その場合、
すべてのフィールドをXNUMXつに指定します - 分野 オプション引数。
繰り返しますが、PostgreSQLのターゲット接続文字列には テーブル名 オプションとあなた
ターゲットテーブルが存在し、データに適合する可能性があることを確認する必要があります。 これがSQLコマンドです
自分で試してみたい場合に、その例で使用されます。
テーブルdistricts_longlatを作成します
(
uspsテキスト、
ジオイドテキスト、
aland bigint、
awater bigint、
aland_sqmi倍精度、
awater_sqmi倍精度、
intptlat倍精度、
intptlong倍精度
);
また、同じコマンドが同じデータのアーカイブバージョンに対して機能することにも注意してください。
マシン情報の記入> という構文でなければなりません。例えば、 http://pgsql.tapoueh.org/temp/2013_Gaz_113CDs_national.txt.gz.
最後に、pgloaderが最初にHTTPURLからコンテンツをフェッチすることに注意することが重要です。
ローカルファイルに保存し、アーカイブがXNUMXつであると認識されたら、アーカイブを展開します。
ローカルに展開されたファイルを処理します。
場合によっては、pgloaderがアーカイブ形式を直接サポートしていないため、または
ご使用の環境ではアーカイブの拡張が不可能なためか、次のことをお勧めします。
流れ コンテンツをリモートの場所からPostgreSQLに直接送信します。 方法は次のとおりです
それは、古い戦いでテストされたUnixパイプのトリックを使用して:
curl http://pgsql.tapoueh.org/temp/2013_Gaz_113CDs_national.txt.gz
| | ガンジップ -c
| | pgloader --type csv
-フィールド "usps、geoid、aland、awater、aland_sqmi、awater_sqmi、intptlat、intptlong"
--「ヘッダーをスキップ = 1」の場合
-- 「'\t' で終了するフィールド」を使用
-
postgresql:/// pgloader?districts_longlat
これで、OSがネットワークと
コマンドとpgloaderは、データをPostgreSQLにストリーミングする処理を行います。
移行中 from SQLiteの
次のコマンドはSQLiteデータベースを開き、そのテーブル定義を検出します
インデックスと外部キーを含め、それらの定義を移行しながら 鋳造 データ型
仕様をPostgreSQLに相当するものに変更してから、次のデータを移行します。
作成されたb新しいdb
pgloader ./test/sqlite/sqlite.db postgresql:/// newdb
移行中 from MySQL
MySQLデータと定義をホストするデータベースを作成し、pgloaderに実行させるだけです
単一のコマンドラインでの移行:
作成されたパギラ
pgloader mysql:// user @ localhost / sakila postgresql:/// pagila
フェッチ an アーカイブ DBF file from a HTTP リモート 場所
pgloaderがHTTPからファイルをダウンロードし、アーカイブを解除してから開くことができます。
スキーマを検出してからデータをロードします。
作成されたb foo
pgloader --type dbf http://www.insee.fr/fr/methodes/nomenclatures/cog/telechargement/2013/dbf/historiq2013.zip postgresql:/// foo
ここでは、pgloaderが提供されているデータソースの種類を推測することはできません。
を使用する必要があります - タイプ コマンドラインスイッチ。
バッチ そして RETRY 動作
PostgreSQLにデータをロードするために、pgloaderは COPY ストリーミングプロトコル。 これは
データをロードするより速い方法、 COPY 重要な欠点があります:PostgreSQLが放出するとすぐに
送信されたデータのビットにエラーがあり、問題が何であれ、データセット全体が
PostgreSQLによって拒否されました。
これを回避するために、pgloaderはデータをにカットします バッチ それぞれ25000行の
問題が発生すると、その数のデータ行にのみ影響します。 各バッチはメモリに保持されます
同時に COPY エラーが発生した場合にエラーを処理できるようにするために、ストリーミングが発生します。
PostgreSQLがバッチ全体を拒否すると、pgloaderはエラーメッセージをログに記録し、
バッチ処理された行を小さなバッチで再試行することにより、受け入れられた行からの不良行。 する
つまり、pgloaderは コンテキスト 失敗したCOPYからのエラーメッセージ、メッセージとして
次のように、バッチでエラーが見つかった行番号が含まれます
例:
コンテキスト:コピーエラー、3行目b列:「2006-13-11」
その情報を使用して、pgloaderはエラーが発生する前にバッチ内のすべての行をリロードします
XNUMXつは、エラーのあるものを拒否としてログに記録してから、残りのバッチを
XNUMX回の試行。これには、他の誤ったデータが含まれる場合と含まれない場合があります。
拒否された行を含むロードの最後に、XNUMXつのファイルがあります。 ルートディレクトリ
セットアップのターゲットデータベースと同じ名前のディレクトリの下の場所。 The
ファイル名はターゲットテーブルであり、その拡張子は .DAT 拒否されたデータと
.logに 拒否されたデータに関する完全なPostgreSQLクライアント側ログを含むファイルの場合。
この .DAT ファイルはPostgreSQLでフォーマットされており、
http://www.postgresql.org/docs/9.2/static/sql-copy.html#AEN66609。
A 注意 わたしたち PERFORMANCE
pgloaderは、パフォーマンスを念頭に置いて開発されており、これまでに対応できるようになっています。
PostgreSQLに大量のデータをロードする必要性が高まっています。
使用する基本的なアーキテクチャは、スレッドが担当する古いUnixパイプモデルです。
データの読み込み(CSVファイルの読み取り、MySQLのクエリなど)および前処理された入力
データをキューに入れます。 別のスレッドがキューからフィードし、さらにいくつか適用します 変換
入力データに変換し、COPYプロトコルを使用して最終結果をPostgreSQLにストリーミングします。
PostgreSQLがそのファイルを与えられたとき COPY コマンドは解析方法を知っており、ファイルが
誤ったデータが含まれていない場合、pgloaderは単に使用するほど高速にはなりません
PostgreSQL COPY
なお、 COPY コマンドは、標準入力または
サーバーのファイルシステム上のローカルファイルから、コマンドラインツール psql を実装します
\コピー ネットワークを介してクライアントにローカルなファイルをストリーミングする方法を知っているコマンドと
pgloaderが使用するのと同じプロトコルを使用してPostgreSQLサーバーに接続します。
SOURCE 書式
pgloaderは、次の入力形式をサポートしています。
・csv。これには、tsvおよびその他の一般的なバリアントも含まれています。
セパレーター と 引用 ルールと方法 脱出 引用 彼ら自身;
・固定列ファイル。pgloaderはソースファイルに対応するのに十分な柔軟性があります。
欠落している列(不規則 固定の 長さ の項目に表示されます。 ファイル 存在します);
・PostgreSQLのCOPY TEXTドキュメントに従って、PostgreSLQCOPY形式のファイル。
pgloaderによって準備された拒否ファイルなど。
・db3またはdbfファイルと呼ばれるdbaseファイル。
・ixf形式のファイル。ixfはIBMのバイナリストレージ形式です。
・スキーマと高度なキャストルールの完全に自動化された検出を備えたsqliteデータベース。
・スキーマと高度なキャストルールの完全に自動化された検出を備えたmysqlデータベース。
・スキーマと高度なキャストルールの完全に自動化された検出を備えたMSSQLデータベース。
PGローダー コマンド 構文
pgloaderはドメイン固有言語を実装しており、複雑なデータ読み込みを設定できます
計算列と入力データのオンザフライサニタイズを処理するスクリプト。 多くのための
複雑なデータ読み込みシナリオでは、DSLの構文を学ぶ必要があります。 これは
理にかなっているSQLに触発されて、DBAに馴染みがあるように見えることを意味しますが、そうではありません。
結局のところ、それだけです。
pgloaderコマンドは、同じグローバル文法規則に従います。 それらのそれぞれがサポートする可能性があります
一般的なオプションのサブセットのみであり、特定のオプションを提供します。
ロード
から[フィールドを持っている]
の中へ[ターゲット列]
[ と]
[ セットする]
[ロードする前に[ | 実行する] ...]
[ロード後[実行| 実行する] ...]
;
主な条項は 負荷, FROM, INTO と WITH 各コマンドが実装する句。
次に、いくつかのコマンドが セット コマンド、またはなどの特定の句 CAST
句。
COMMON 条項
一部の句はすべてのコマンドに共通です。
· FROM
この FROM 句はデータの読み取り先を指定し、各コマンドはそのデータを導入します
ソースの独自のバリアント。 たとえば、 CSV ソースサポート インライン, stdin
ファイル名、引用符で囲まれたファイル名、および ファイル名 マッチング 条項(上記を参照)。 一方、
MySQL sourceは、MySQLデータベースのURI仕様のみをサポートします。
すべての場合において、 FROM 句は環境変数からその値を読み取ることができます
フォームを使用する場合 ゲテンブ 「varname」.
· INTO
PostgreSQL接続URIには、ロードするターゲットテーブルの名前が含まれている必要があります
データをに。 そのテーブルはPostgreSQLですでに作成されている必要があり、名前は
スキーマ修飾されている可能性があります。
この INTO ターゲット データベース接続 URI は環境の値から解析できます。
フォームを使用する場合の変数 ゲテンブ 「varname」.
その後 INTO オプションは、ターゲット列のオプションのコンマ区切りリストもサポートします。
入力の名前のいずれかです フィールド または空白で区切られたリスト
ターゲット列名、そのPostgreSQLデータ型、および 使用する 式です。
この 使用する 式は任意の有効なCommonLisp形式にすることができ、
現在のパッケージはに設定されています pgloader.transforms、で定義された関数を使用できるように
そのパッケージ、たとえば、 - ロード コマンドライン
パラメータに一致する最初のデバイスのリモートコントロール URL を返します。
各 使用する 式は実行時にネイティブコードにコンパイルされます。
この機能により、pgloaderはCSVファイル内の任意の数のフィールドを
そのためのカスタムコードを使用して、データベース内の列の数が異なる可能性があります
投影。
· WITH
次のいずれかのグローバル構文を使用して、コマンドに適用するオプションのセット。
· キー = 値
· つかいます オプション
· do つかいます オプション
詳細については、それぞれの特定のコマンドを参照してください。
· セット
この句を使用すると、開いているすべてのセッションに設定するセッションパラメータを指定できます。
pgloaderによる。 パラメータ名、等号、そして
カンマ区切りのリストとしての単一引用符の値。
パラメータの名前と値はpgloaderによって検証されません、それらは与えられます
そのままPostgreSQLに。
· BEFORE 負荷 DO
からデータをロードする前に、データベースに対してSQLクエリを実行できます。 CSV
ファイル。 最も一般的なSQLクエリは CREATE 表 IF NOT 存在する データができるように
ロードされました。
各コマンドは ドル相場:二重ドル記号で開始および終了する必要があります。
$$。 ドルで引用されたクエリは、コンマで区切られます。 余分な句読点はありません
最後のSQLクエリの後。
· BEFORE 負荷 実行
と同じ動作 BEFORE 負荷 DO 句。 SQLクエリを読み取ることができます
SQLファイルから。 PostgreSQLのドル見積もりと \i と \ ir
のような施設を含む psql バッチモード(同じもの)。
· AFTER 負荷 DO
と同じフォーマット BEFORE 負荷 DO、そのセクションで見つかったドルで引用されたクエリは
ロードが完了すると実行されます。 インデックスを作成するのに適切なタイミングであり、
制約、またはトリガーを再度有効にします。
· AFTER 負荷 実行
と同じ動作 AFTER 負荷 DO 句。 からSQLクエリを読み取ることができます
SQLファイル。 PostgreSQLのドル見積もりと \i と \ ir
のような施設を含む psql バッチモード(同じもの)。
接続 String
この パラメータは次のように指定されることが期待されます 接続 URI 文書化されているように
PostgreSQLのドキュメントで
http://www.postgresql.org/docs/9.3/static/libpq-connect.html#LIBPQ-CONNSTRING。
postgresql:// [user [:password] @] [netloc] [:port] [/ dbname] [?option = value&...]
どこ:
· user
コロン(コロン(:)次にXNUMX倍にする必要があります(::)と
アットマーク (@)次にXNUMX倍にする必要があります(@@).
省略した場合、 user nameのデフォルトはの値です プユーザー 環境変数、
設定されていない場合、 USER 環境変数。
· password
アットマーク(@)次にXNUMX倍にする必要があります(@@).
パスワードを空のままにするには、 user 名前はアットマークで終わります、それからあなたはしなければなりません
構文user:@を使用します。
省略した場合、 password デフォルトの値は PGPパスワード 環境
設定されている場合は変数、それ以外の場合はパスワードは未設定のままになります。
· ネットロック
ドット付き表記のホスト名、ipv4、またはUnixドメインソケットのいずれかです。
道。 空は、以下を提供するシステムの下でのデフォルトのネットワークロケーションです。 UNIX ドメイン
ソケット その方法が推奨されます。それ以外の場合は、 ネットロック デフォルトは ローカルホスト.
強制することは可能です UNIX ドメイン ソケット 構文を使用したパス
unix:/ path / to / where / the / socket / file / is、したがって、デフォルト以外のソケットパスと
デフォルト以外のポートの場合、次のようになります。
postgresql:// unix:/ tmpに:54321 / dbname
この ネットロック デフォルトの値は ゴースト 環境変数、および設定されていない場合は、
デフォルトのいずれかに UNIX Unixシステムで実行している場合のソケットパス、および ローカルホスト
さもないと。
· データベース名
適切な識別子である必要があります(文字の後に文字、数字、および
句読点はコンマ(,)、ダッシュ(-)およびアンダースコア(_).
省略した場合、 データベース名 デフォルトは環境変数の値です PGDATABASE,
それが設定されていない場合は、 user 上記で決定された値。
· オプション
オプションのパラメータは、フォームで指定する必要があります 名前=値、および使用できます
アンパサンドを使用してそれらを分離することによるいくつかのパラメータ(&) キャラクター。
ここでは一部のオプションのみがサポートされています。 テーブル名 (これは、
スキーマ名) SSLモード, host, ポート, データベース名, user と password.
この SSLモード パラメータ値は次のいずれかになります disable, 許す, 好む or 必要とする.
下位互換性の理由から、 テーブル名 オプション
直接、スペルアウトせずに tablename = 部品を切断してマーキングします。
オプションは、両方が指定されている場合、メインのURIコンポーネントをオーバーライドし、
パーセントエンコードされたオプションパラメータを使用すると、コロンと
制限を解析する他のURIコンポーネントをバイパスします。
レギュラー 式
以下にリストされているいくつかの条項は受け入れます レギュラー 表現 以下で
入力ルール:
・正規表現はチルダ記号で始まります(~),
・その後、開始記号が続きます。
・その後、任意の文字が許可され、正規表現の一部と見なされます。
閉会のサインのために、
・その後、終了サインが期待されます。
開始記号と終了記号はペアで許可されています。許可されているものの完全なリストは次のとおりです。
区切り文字:
〜//
〜[]
〜{}
〜()
〜<>
〜 ""
〜´´
〜||
〜##
と衝突しない区切り文字のセットを選択してください レギュラー 表現 あなたがしようとしている
入力。 あなたの表現がどの解決策もあなたがそれを入力することを許さないようなものであるならば、
そのような式が許可されている場所では、式のリストを許可する必要があります。
コメント
これらの入力ルールに従って、任意のコマンドにコメントを含めることができます。
・ NS -- 区切り文字は、現在の行の終わりで終わるコメントを開始します。
・区切り文字 /* と */ コメントを開始および終了します。コメントは次の場所にあります。
コマンドの途中、または複数行にまたがる。
あなたが入ることができる任意の場所 空白 コメントも受け付けます。
バッチ 行動 オプション
すべてのpgloaderコマンドは、 WITH オプションの指定を可能にする句。
一部のオプションは一般的であり、次のようなすべてのコマンドで受け入れられます。 バッチ 行動
オプション、および一部のオプションは、CSVなどのデータソースの種類に固有です。 スキップ ヘッダ
オプションを選択します。
グローバルバッチ動作オプションは次のとおりです。
· バッチ 行
引数として数値を取り、で許可される行の最大数として使用されます
バッチ。 デフォルトは 25 000 より良いパフォーマンスを試すために変更することができます
特性またはpgloaderのメモリ使用量を制御するため。
· バッチ サイズ
次のようなメモリユニットを引数として取ります 20 MB、そのデフォルト値。 受け入れられました
乗数は kB, MB, GB, TB と PB。 混乱しないようにケースは重要です
ビット対バイトについては、ここではバイトについてのみ説明します。
· バッチ 並行性
引数として数値を取り、デフォルトは 10。 それはバッチの数です
pgloaderを使用すると、一度にXNUMXつのバッチしか作成できない場合でも、メモリを組み込むことができます。
PostgreSQLに送信されます。
一度に送信される複数のバッチをサポートすることは、TODOリストにあります。
pgloaderですが、まだ実装されていません。 このオプションは、メモリの制御に関するものです
パフォーマンス特性とのトレードオフとしてのpgloaderのニーズであり、
pgloaderの並列アクティビティ。
その他のオプションは各入力ソースに固有です。の特定の部分を参照してください。
それらのリストとカバーのためのドキュメント。
その後、バッチは、 バッチ 行 または バッチ サイズ しきい値は
交差した方。 のためにバッチを閉じる必要がある場合
バッチ サイズ 設定、 debug レベルログメッセージは、何行が収まったかを示して出力されます。
特大の バッチ。
負荷 CSV
このコマンドは、pgloader に、 CSV ファイル。 次に例を示します。
CSVを読み込む
「GeoLiteCity-Blocks.csv」からiso-646-usをエンコード
フィールドを持っている
(
startIpNum、endIpNum、locId
)
INTO postgresql:// user @ localhost:54393 / dbname?geolite.blocks
ターゲット列
(
iprange ip4r using(ip-range startIpNum endIpNum)、
場所ID
)
切り捨てあり、
ヘッダーをスキップ= 2、
オプションで ´"´で囲まれたフィールド、
バックスラッシュでエスケープされたフィールド-quote、
´\ t´で終了するフィールド
work_memを「32MB」に、maintenance_work_memを「64MB」に設定します。
この csvファイル formatコマンドは、次の句とオプションを受け入れます。
· FROM
データのロード元のファイル名。 を受け入れる エンコーディング オプション。 使用
--リストエンコーディング サポートされているエンコーディング名を知るためのオプション。
ファイル名は一重引用符で囲むことができ、次のいずれかになります。
特別な値:
· インライン
データは、解析されたコマンドの終了後に見つかります。 任意の数の空の行
コマンドの終わりとデータの始まりの間が受け入れられます。
· stdin
標準の入力ストリームからデータを読み取ります。
· ファイル名 マッチング
全体 マッチング 句は次のルールに従う必要があります。
[すべてのファイル名| [最初の]ファイル名]
正規表現のマッチング
[ディレクトリ内 ´...´]
この マッチング 条項が適用されます レギュラー 表現 (正確な構文については上記を参照してください、いくつか
オプションはここで使用できます)ファイル名に。 その後、のみからデータをロードすることが可能です
それらすべての最初の一致。
オプション IN DIRECTORY 句を使用すると、検索するためにウォークするディレクトリを指定できます。
データファイルであり、コマンドファイルの読み取り元に相対的であるか、または
絶対。 指定されたディレクトリが存在する必要があります。
この FROM オプションは、オプションのコンマ区切りリストもサポートします フィールド 説明する名前
で期待されること CSV データファイル、オプションで句によって導入されます HAVING フィールド.
各フィールド名は、XNUMXつの名前のみ、または特定のリーダーに続く名前にすることができます
そのフィールドのオプション。角かっこで囲まれ、コンマで区切られます。 サポートされています
フィールドごとのリーダーオプションは次のとおりです。
· 終わる by
の説明を参照してください フィールド 終わる by を参照してください。
このオプションの処理は現在実装されていません。
· date 形式でアーカイブしたプロジェクトを保存します.
フィールドに日付タイプが必要な場合、このオプションを使用すると、
ファイルで使用される日付形式。
日付形式の文字列は、PostgreSQLに対してモデル化されたテンプレート文字列です。 to_char
テンプレート文字列のサポート。次のパターンに限定されます。
・YYYY、YYY、YY年の部分
・月の数値部分のMM
・数値の日の部分のDD
・時間部分のHH、HH12、HH24
・午前、午前、午前、午前
・午後、午後、午後、午後
・分部分のMI
・秒部分のSS
・ミリ秒部分のMS(4桁)
・マイクロ秒部分の米国(6桁)
・未解析の句読点:-。 *#@ T / \とスペース
これが例です date 形式でアーカイブしたプロジェクトを保存します. 仕様:
列名[日付形式´YYYY-MM-DD HH24-MI-SS.US´]
· ヌル if
このオプションは、キーワードのいずれかである引数を取ります 空白 または二重引用符
文字列。
日時 空白 が使用され、読み取られるフィールド値にはスペース文字のみが含まれます。
その後、自動的にSQLに変換されます NULL の値です。
二重引用符で囲まれた文字列が使用され、その文字列がフィールド値として読み取られる場合、
フィールド値は自動的にSQLに変換されます NULL の値です。
· トリム 両言語で 空白, トリム 左 空白, トリム 右 空白
このオプションを使用すると、読み取りデータの空白を、
データ、またはストリークの左側にある空白文字のみ、またはのみ
文字列の右側にあるもの。
· WITH
からロードする場合 CSV ファイルの場合、次のオプションがサポートされています。
· 切り詰める
このオプションがリストされている場合、pgloaderは 切り捨てる PostgreSQLに対するコマンド
データファイルを読み取る前のターゲットテーブル。
· ドロップ インデックス
このオプションがリストされている場合、pgloaderは DROP INDEX すべてに対するコマンド
データをコピーする前にターゲットテーブルで定義されたインデックス、次に CREATE INDEX
一度コマンド COPY 終わらせる。
可能な限り最高のパフォーマンスを得るために、すべてのインデックスはで作成されます
並列で、完了すると、主キーは一意のインデックスから再構築されます。
作成した。 このXNUMX段階のプロセスにより、主キーインデックスを並行して作成できます。
他のインデックス、 変更する 表 コマンドには アクセス 排他的な ロック on
ターゲットテーブル。
· disable トリガされ
このオプションがリストされている場合、pgloaderは 変更する 表 ... 無効にする TRIGGER 全て
データをコピーする前にPostgreSQLターゲットテーブルに対してコマンドを実行し、次にコマンド
変更する 表 ... 有効 TRIGGER 全て かつて COPY 終わらせる。
このオプションを使用すると、既存のテーブルにデータをロードして、 外国の キー
制約 およびユーザー定義のトリガーであり、無効になる可能性があります 外国の キー
制約 データがロードされたら。 注意して使用してください。
· スキップ ヘッダ
引数として数値を取ります。 pgloaderに、その数の行をスキップするように指示します。
入力ファイルの先頭。
· csvファイル ヘッダ
後に読み取った最初の行を使用します スキップ ヘッダ 検出されるcsvフィールド名のリストとして
CSVファイルで、CSVデータと同じCSVパラメータを使用します。
· トリム 引用されていない 空白
引用符で囲まれていない値を読み取る場合 CSV ファイル、間にある空白を削除します
セパレータと値。 その動作がデフォルトです。
· 続ける 引用されていない 空白
引用符で囲まれていない値を読み取る場合 CSV ファイル、間に空白が見つかりました
セパレータと値。
· フィールド 必要に応じて 同封 by
引数として単一の文字を取ります。これは一重引用符で囲まれている必要があり、
印刷可能な文字自体として指定される場合があります。特別な値\ tは、
集計文字、または 0x 次に、XNUMX進値がASCIIコードとして読み取られます。
文字。
この文字は、の引用文字として使用されます CSV ファイル、デフォルトは
二重引用符。
· フィールド 同封
デフォルトでは、pgloaderは二重引用符を囲み文字として使用します。
フィールドが囲まれておらず、二重引用符を使用しているCSVファイルがある場合
期待される普通の文字、そしてオプションを使用する フィールド 同封 CSVの場合
それらの値を受け入れるパーサー。
· フィールド 逃げた by
いずれかの特別な価値を取ります バックスラッシュ-引用 or 二重引用符、またはサポートされている任意の値
を通じて、タンピングされたコーヒーベッドの上から均一にフィルターバスケットの内の粉に浸透していきます。 フィールド 終わる by オプション(以下を参照)。 この値は、認識に使用されます
エスケープされたフィールドセパレータは、データフィールド自体の中にある場合に使用されます。
デフォルトは 二重引用符.
· csvファイル 脱出 モード
いずれかの特別な価値を取ります 率 (デフォルト)または フォロー中 CSVを許可します
エスケープされたフィールド区切り文字のみまたは任意の文字(CSVを含む)を解析するパーサー
データ)を使用する場合 フォロー中 の値です。
· フィールド 終わる by
引数として単一の文字を取ります。これは一重引用符で囲まれている必要があり、
印刷可能な文字自体として指定される場合があります。特別な値\ tは、
集計文字、または 0x 次に、XNUMX進値がASCIIコードとして読み取られます。
文字。
この文字は、 フィールド セパレーター 読むとき CSV データ。
· ライン 終わる by
引数として単一の文字を取ります。これは一重引用符で囲まれている必要があり、
印刷可能な文字自体として指定される場合があります。特別な値\ tは、
集計文字、または 0x 次に、XNUMX進値がASCIIコードとして読み取られます。
文字。
この文字は認識に使用されます 行末 読むときの状態 CSV データ。
負荷 FIXED 列
このコマンドは、配列された列を含むテキスト ファイルからデータをロードするように pgloader に指示します。
固定の サイズ マナー。 次に例を示します。
負荷が修正されました
インラインから
(
a0から10
b10から8
c18から8
d 26から17 [空白の場合はnull、右の空白を削除]
)
INTO postgresql:/// pgloader?fixed
(
a、b、
c使用時間(セパレータなしの時間c)、
d
)
切り捨てあり
client_encodingを「latin1」に設定します。
work_memから´14MB´、
standard_conforming_stringsを「on」に
ロードする前に
$$存在する場合はテーブルを削除します。 $$、
$$テーブルの作成を修正しました(
整数、
b日付、
c時間、
dテキスト
);
$$;
01234567892008052011431250ファーストライン
01234562008052115182300空白-パッド付き
12345678902008052208231560別の行
2345609872014092914371500
2345678902014092914371520
この 固定の formatコマンドは、次の句とオプションを受け入れます。
· FROM
データのロード元のファイル名。 を受け入れる エンコーディング オプション。 使用
--リストエンコーディング サポートされているエンコーディング名を知るためのオプション。
ファイル名は一重引用符で囲むことができ、次のいずれかになります。
特別な値:
· インライン
データは、解析されたコマンドの終了後に見つかります。 任意の数の空の行
コマンドの終わりとデータの始まりの間が受け入れられます。
· stdin
標準の入力ストリームからデータを読み取ります。
この FROM オプションは、オプションのコンマ区切りリストもサポートします フィールド 説明する名前
で期待されること FIXED データファイル。
各フィールド名は、フィールド名とそれに続く特定のリーダーオプションで構成されます。
そのフィールド。 サポートされているフィールドごとのリーダーオプションは次のとおりです。 start と
長さ 必要とされます。
· start
そのフィールドの値の読み取りを開始する行の位置。 で入力できます
XNUMX進数または 0x 次にXNUMX進数。
· 長さ
から読み取るバイト数 start そのフィールドの値を読み取る位置。 同じフォーマット
as start.
これらのオプションのパラメーターは、角括弧で囲み、コンマで区切る必要があります。
· 終わる by
の説明を参照してください フィールド 終わる by を参照してください。
このオプションの処理は現在実装されていません。
· date 形式でアーカイブしたプロジェクトを保存します.
フィールドに日付タイプが必要な場合、このオプションを使用すると、
ファイルで使用される日付形式。
日付形式の文字列は、PostgreSQLに対してモデル化されたテンプレート文字列です。 to_char
テンプレート文字列のサポート。次のパターンに限定されます。
・YYYY、YYY、YY年の部分
・月の数値部分のMM
・数値の日の部分のDD
・時間部分のHH、HH12、HH24
・午前、午前、午前、午前
・午後、午後、午後、午後
・分部分のMI
・秒部分のSS
・ミリ秒部分のMS(4桁)
・マイクロ秒部分の米国(6桁)
・未解析の句読点:-。 *#@ T / \とスペース
これが例です date 形式でアーカイブしたプロジェクトを保存します. 仕様:
列名[日付形式´YYYY-MM-DD HH24-MI-SS.US´]
· ヌル if
このオプションは、キーワードのいずれかである引数を取ります 空白 または二重引用符
文字列。
日時 空白 が使用され、読み取られるフィールド値にはスペース文字のみが含まれます。
その後、自動的にSQLに変換されます NULL の値です。
二重引用符で囲まれた文字列が使用され、その文字列がフィールド値として読み取られる場合、
フィールド値は自動的にSQLに変換されます NULL の値です。
· トリム 両言語で 空白, トリム 左 空白, トリム 右 空白
このオプションを使用すると、読み取りデータの空白を、
データ、またはストリークの左側にある空白文字のみ、またはのみ
文字列の右側にあるもの。
· WITH
からロードする場合 FIXED ファイルの場合、次のオプションがサポートされています。
· 切り詰める
このオプションがリストされている場合、pgloaderは 切り捨てる PostgreSQLに対するコマンド
データファイルを読み取る前のターゲットテーブル。
· disable トリガされ
このオプションがリストされている場合、pgloaderは 変更する 表 ... 無効にする TRIGGER 全て
データをコピーする前にPostgreSQLターゲットテーブルに対してコマンドを実行し、次にコマンド
変更する 表 ... 有効 TRIGGER 全て かつて COPY 終わらせる。
このオプションを使用すると、既存のテーブルにデータをロードして、 外国の キー
制約 およびユーザー定義のトリガーであり、無効になる可能性があります 外国の キー
制約 データがロードされたら。 注意して使用してください。
· スキップ ヘッダ
引数として数値を取ります。 pgloaderに、その数の行をスキップするように指示します。
入力ファイルの先頭。
負荷 COPY フォーマット済み ファイル
このコマンドは、COPYTEXTデータを含むファイルからロードするようにpgloaderに指示します。
PostgreSQLのドキュメントで説明されています。 次に例を示します。
コピーをロード
FROM copy://./data/track.copy
(
trackid、track、album、media、genre、composer、
ミリ秒、バイト、単価
)
INTO postgresql:/// pgloader?track_full
切り捨てあり
client_encodingを「latin1」に設定します。
work_memから´14MB´、
standard_conforming_stringsを「on」に
ロードする前に
$$が存在する場合はテーブルを削除しますtrack_full; $$、
$$ create table track_full(
trackid bigserial、
テキストを追跡し、
アルバムテキスト、
メディアテキスト、
ジャンルテキスト、
作曲家のテキスト、
ミリ秒bigint、
バイトbigint、
単価数値
);
$$;
この COPY formatコマンドは、次の句とオプションを受け入れます。
· FROM
データのロード元のファイル名。 これは、ローカルファイル、HTTP URL、およびzipをサポートします
同じ名前の単一のdbfファイルを含むファイル。 そのようなzipファイルをからフェッチします
もちろんHTTPアドレスもサポートされています。
· WITH
からロードする場合 COPY ファイルの場合、次のオプションがサポートされています。
· 区切り文字
引数として単一の文字を取ります。これは一重引用符で囲まれている必要があり、
印刷可能な文字自体として指定される場合があります。特別な値\ tは、
集計文字、または 0x 次に、XNUMX進値がASCIIコードとして読み取られます。
文字。
この文字は、 区切り文字 データを読み取るときは、
PostgreSQL COPY オプションを選択します。
· ヌル
引用符で囲まれた文字列を引数として取ります(引用符は二重引用符または単一引用符のいずれかです)
引用符)そしてその文字列を NULL データ内の表現。
これはに似ています ヌル COPY PostgreSQLのオプション。
· 切り詰める
このオプションがリストされている場合、pgloaderは 切り捨てる PostgreSQLに対するコマンド
データファイルを読み取る前のターゲットテーブル。
· disable トリガされ
このオプションがリストされている場合、pgloaderは 変更する 表 ... 無効にする TRIGGER 全て
データをコピーする前にPostgreSQLターゲットテーブルに対してコマンドを実行し、次にコマンド
変更する 表 ... 有効 TRIGGER 全て かつて COPY 終わらせる。
このオプションを使用すると、既存のテーブルにデータをロードして、 外国の キー
制約 およびユーザー定義のトリガーであり、無効になる可能性があります 外国の キー
制約 データがロードされたら。 注意して使用してください。
· スキップ ヘッダ
引数として数値を取ります。 pgloaderに、その数の行をスキップするように指示します。
入力ファイルの先頭。
負荷 DBF
このコマンドは、pgloader に、 DBF ファイル。 次に例を示します。
DBFをロード
FROM http://www.insee.fr/fr/methodes/nomenclatures/cog/telechargement/2013/dbf/reg2013.dbf
INTO postgresql:// user @ localhost / dbname
切り捨てを使用して、テーブルを作成します。
この dbf formatコマンドは、次の句とオプションを受け入れます。
· FROM
データのロード元のファイル名。 これは、ローカルファイル、HTTP URL、およびzipをサポートします
同じ名前の単一のdbfファイルを含むファイル。 そのようなzipファイルをからフェッチします
もちろんHTTPアドレスもサポートされています。
· WITH
からロードする場合 DBF ファイルの場合、次のオプションがサポートされています。
· 切り詰める
このオプションがリストされている場合、pgloaderは 切り捨てる PostgreSQLに対するコマンド
データファイルを読み取る前のターゲットテーブル。
· disable トリガされ
このオプションがリストされている場合、pgloaderは 変更する 表 ... 無効にする TRIGGER 全て
データをコピーする前にPostgreSQLターゲットテーブルに対してコマンドを実行し、次にコマンド
変更する 表 ... 有効 TRIGGER 全て かつて COPY 終わらせる。
このオプションを使用すると、既存のテーブルにデータをロードして、 外国の キー
制約 およびユーザー定義のトリガーであり、無効になる可能性があります 外国の キー
制約 データがロードされたら。 注意して使用してください。
· 作ります テーブル
このオプションがリストされている場合、pgloaderはで見つかったメタデータを使用してテーブルを作成します
DBF ファイル。データ型を持つフィールドのリストが含まれている必要があります。 標準
DBFからPostgreSQLへのデータ型変換が行われます。
· テーブル 名
このオプションは、その値として、作成するテーブルの修飾された可能性のある名前を想定しています。
負荷 IXF
このコマンドは、IBMからデータをロードするようにpgloaderに指示します IXF ファイル。 次に例を示します。
IXFをロード
FROM data / nsitra.test1.ixf
INTO postgresql:/// pgloader?nsitra.test1
切り捨てて、テーブルを作成します
ロードする前に
$$存在しない場合はスキーマを作成しますnsitra; $$、
$$テーブルが存在する場合はドロップしますnsitra.test1; $$;
この IXF formatコマンドは、次の句とオプションを受け入れます。
· FROM
データのロード元のファイル名。 これは、ローカルファイル、HTTP URL、およびzipをサポートします
同じ名前の単一のixfファイルを含むファイル。 そのようなzipファイルをからフェッチします
もちろんHTTPアドレスもサポートされています。
· WITH
からロードする場合 IXF ファイルの場合、次のオプションがサポートされています。
· 切り詰める
このオプションがリストされている場合、pgloaderは 切り捨てる PostgreSQLに対するコマンド
データファイルを読み取る前のターゲットテーブル。
· disable トリガされ
このオプションがリストされている場合、pgloaderは 変更する 表 ... 無効にする TRIGGER 全て
データをコピーする前にPostgreSQLターゲットテーブルに対してコマンドを実行し、次にコマンド
変更する 表 ... 有効 TRIGGER 全て かつて COPY 終わらせる。
このオプションを使用すると、既存のテーブルにデータをロードして、 外国の キー
制約 およびユーザー定義のトリガーであり、無効になる可能性があります 外国の キー
制約 データがロードされたら。 注意して使用してください。
· 作ります テーブル
このオプションがリストされている場合、pgloaderはで見つかったメタデータを使用してテーブルを作成します
DBF ファイル。データ型を持つフィールドのリストが含まれている必要があります。 標準
DBFからPostgreSQLへのデータ型変換が行われます。
· テーブル 名
このオプションは、その値として、作成するテーブルの修飾された可能性のある名前を想定しています。
負荷 アーカイブ
このコマンドは、pgloaderに、に含まれるXNUMXつ以上のファイルからデータをロードするように指示します。
記録。 現在サポートされているアーカイブ形式は ZIP、およびアーカイブは
からダウンロード HTTP URL。
次に例を示します。
アーカイブをロード
from /users/dim/downloads/geolitecity-latest.zip
INTO postgresql:/// ip4r
ロードする前に
ip4rが存在しない場合は、$$で拡張機能を作成してください。 $$、
$$ジオライトが存在しない場合は、スキーマを作成します。 $$、
´geolite.sql´を実行します
CSVを読み込む
ファイル名の一致から 〜/ GeoLiteCity-Location.csv /
エンコード付きiso-8859-1
(
locId、
国、
空白の場合は領域null、
空白の場合は都市null、
空白の場合はpostalCodenull、
緯度、
経度、
空白の場合はmetroCodenull、
空白の場合はareaCodenull
)
INTO postgresql:/// ip4r?geolite.location
(
locid、country、region、city、postalCode、
(format nil "(〜a、〜a)"経度緯度)を使用したロケーションポイント、
メトロコード、エリアコード
)
WITHスキップヘッダー= 2。
オプションで ´"´で囲まれたフィールド、
二重引用符でエスケープされたフィールド、
´、´で終了するフィールド
そしてCSVをロード
ファイル名の一致から 〜/ GeoLiteCity-Blocks.csv /
エンコード付きiso-8859-1
(
startIpNum、endIpNum、locId
)
INTO postgresql:/// ip4r?geolite.blocks
(
iprange ip4r using(ip-range startIpNum endIpNum)、
場所ID
)
WITHスキップヘッダー= 2。
オプションで ´"´で囲まれたフィールド、
二重引用符でエスケープされたフィールド、
´、´で終了するフィールド
最後にやる
$$ gist(iprange);を使用してgeolite.blocksにインデックスblocks_ip4r_idxを作成します。 $$;
この アーカイブ コマンドは、次の句とオプションを受け入れます。
· FROM
データのロード元のファイル名またはHTTPURI。 リンクされたHTTPURLが与えられると
ファイルは処理前にローカルにダウンロードされます。
ファイルが ZIP ファイル、コマンドラインユーティリティ 解凍する を拡張するために使用されます
のファイルにアーカイブ $ TMPDIRまたは / tmpに if $ TMPDIR 設定されていないか、存在しないように設定されています
ディレクトリにあります。
次に、アーカイブが配置されている最上位ディレクトリから次のコマンドを使用します
拡張されました。
・ 指図 [ そして 指図 ... ]
現時点では、アーカイブの内容に対する一連のコマンドのみ
CSV,修繕 と DBF コマンドがサポートされています。
コマンドが句をサポートしていることに注意してください FROM ファイル名 マッチング これにより、
アーカイブディレクトリの正確な名前に依存しないpgloaderコマンド。
スペルを使用して、同じ句を複数のファイルに適用することもできます FROM 全て
ファイル名 マッチング と正規表現。
全体 マッチング 句は次のルールに従う必要があります。
FROM [すべてのファイル名| [最初の]ファイル名]マッチング
· 最後に DO
データが読み込まれると実行されるSQLクエリ(次のような) CREATE INDEX.
負荷 MYSQL DATABASE
このコマンドは、データベース接続からデータをロードするようにpgloaderに指示します。 唯一の
サポートされているデータベースソースは現在 MySQL、およびpgloaderは動的変換をサポートします
ソースデータベースとインデックス構築のスキーマ。
キャストルールのデフォルトセットが提供されており、オーバーロードされて追加される可能性があります
次に例を示します。
データベースのロード
mysqlから://ルート@ localhost / sakila
INTO postgresql:// localhost:54393 / sakila
WITHには、ドロップ、テーブルの作成、インデックスの作成、シーケンスのリセットが含まれます
Maintenance_work_memを「128MB」に設定します。
work_memから´12MB´、
´sakila´へのsearch_path
CASTタイプdatetimeからtimestamptzは、zero-dates-to-nullを使用してnullではなくデフォルトのドロップをドロップします。
タイプdatedrop not null drop default using zero-dates-to-null、
--tinyint-to-booleanを使用してtinyinttobooleanと入力します。
年を整数に入力
マテリアライズドビューfilm_list、staff_list
-一致するテーブル名のみを含む 〜/ film /、「俳優」
-一致するテーブル名を除外する〜
-一致するテーブル名のデコード 〜/めちゃくちゃ/, 〜/ encoding / ASutf8
ロードする前に
$$存在しない場合はスキーマを作成しますsakila; $$;
この データベース コマンドは、次の句とオプションを受け入れます。
· FROM
MySQLデータベースを指す接続URLである必要があります。 現時点では、MySQLのみが
pgloaderソースとしてサポートされています。
接続URIにテーブル名が含まれている場合、このテーブルのみがから移行されます
MySQLからPostgreSQLへ。
· WITH
からロードする場合 MySQL データベース、次のオプションがサポートされており、
失敗 WITH 条項は次のとおりです。 いいえ 切り詰める, 作ります テーブル, include ドロップ, 作ります インデックス, リセット
シーケンス, 外国の キー, 小文字 識別子.
WITH オプション:
· include ドロップ
このオプションがリストされている場合、pgloaderはターゲットPostgreSQLのすべてのテーブルを削除します
SQLiteデータベースに名前が表示されるデータベース。 このオプションを使用すると、
すべてのオプションを理解するまで、同じコマンドを数回続けて開始します
クリーンな環境から自動的に。 その点に注意してください CASCADE 確実にするために使用されます
それらを指す外部キーがある場合でも、そのテーブルは削除されます。 これは
正確には何 include ドロップ 目的は次のとおりです。すべてのターゲットテーブルを削除して再作成します
それら。
使用する際は細心の注意が必要です include ドロップ、カスケードするので を
ターゲットテーブルを参照するオブジェクト。おそらく、そうでない他のテーブルを含みます。
ソースDBからロードされます。
· include いいえ ドロップ
このオプションがリストされている場合、pgloaderには何も含まれません DROP ロード時のステートメント
データ。
· 切り詰める
このオプションがリストされている場合、pgloaderは 切り捨てる それぞれに対するコマンド
データをロードする直前のPostgreSQLテーブル。
· いいえ 切り詰める
このオプションがリストされている場合、pgloaderは何も発行しません 切り捨てる
· disable トリガされ
このオプションがリストされている場合、pgloaderは 変更する 表 ... 無効にする TRIGGER 全て
データをコピーする前にPostgreSQLターゲットテーブルに対してコマンドを実行し、次にコマンド
変更する 表 ... 有効 TRIGGER 全て かつて COPY 終わらせる。
このオプションを使用すると、既存のテーブルにデータをロードして、 外国の キー
制約 およびユーザー定義のトリガーであり、無効になる可能性があります 外国の キー
制約 データがロードされたら。 注意して使用してください。
· 作ります テーブル
このオプションがリストされている場合、pgloaderはで見つかったメタデータを使用してテーブルを作成します
MySQL ファイル。データ型を持つフィールドのリストが含まれている必要があります。 標準
DBFからPostgreSQLへのデータ型変換が行われます。
· 作ります いいえ テーブル
このオプションがリストされている場合、pgloaderはデータをロードする前にテーブルの作成をスキップします。
その場合、ターゲットテーブルはすでに存在している必要があります。
· 作ります インデックス
このオプションがリストされている場合、pgloaderはで見つかったすべてのインデックスの定義を取得します
MySQLデータベースを作成し、PostgreSQLに対して同じインデックス定義のセットを作成します
データベース。
· 作ります いいえ インデックス
このオプションがリストされている場合、pgloaderはインデックスの作成をスキップします。
· 一意化 index 名, 保存する index 名
MySQLのインデックス名はテーブルごとに一意ですが、PostgreSQLではインデックス名は
ユニークなスキーマごと。 pgloaderのデフォルトでは、プレフィックスを付けてインデックス名を変更します
それで idx_OID コラボレー OID インデックスがであるテーブルの内部数値識別子です
に対して構築されました。
DDLが完全にフレームワークに任されている場合など、場合によっては賢明かもしれません。
pgloaderがインデックスの一意の名前の処理を控える場合、これは
保存する index 名 オプションを選択します。
デフォルトは 一意化 index 名.
オプションを使用する場合でも 保存する index 名、MySQLの主キーインデックスという名前
「PRIMARY」は名前が一意になります。 そうしないと、プライマリが妨げられます
PostgreSQLで再度作成されるキー。インデックス名は次のように一意である必要があります。
スキーマ
· 外国の キー
このオプションがリストされている場合、pgloaderはすべての外部キーの定義を取得します
MySQLデータベースで見つかり、同じ外部キー定義のセットを作成します。
PostgreSQLデータベース。
· いいえ 外国の キー
このオプションがリストされている場合、pgloaderは外部キーの作成をスキップします。
· リセット シーケンス
このオプションがリストされている場合、データのロードの最後とインデックスの後に
すべてが作成されると、pgloaderは作成されたすべてのPostgreSQLシーケンスを現在の状態にリセットします
それらが接続されている列の最大値。
オプション スキーマ の と データ の このオプションには影響しません。
· リセット いいえ シーケンス
このオプションがリストされている場合、pgloaderはロード後のシーケンスのリセットをスキップします。
オプション スキーマ の と データ の このオプションには影響しません。
· 小文字 識別子
このオプションがリストされている場合、pgloaderはすべてのMySQL識別子(テーブル名、
インデックス名、列名)から 小文字、PostgreSQLを除く 予約済み キーワード。
PostgreSQL 予約済み キーワードは、システムを使用して動的に決定されます
function pg_get_keywords().
· 率 識別子
このオプションがリストされている場合、pgloaderはすべてのMySQL識別子を引用します。
尊重されます。 その後、アプリケーションで同じことを行う必要があることに注意してください
コードクエリ。
· スキーマ の
このオプションがリストされている場合、pgloaderはデータの移行を控えます。 ご了承ください
このコンテキストのスキーマには、オプションの場合にインデックスが含まれます 作ります インデックス 持っています
リストされています。
· データ の
このオプションがリストされている場合、pgloaderは COPY ステートメント、何もせずに
その他の処理。
· CAST
cast句を使用すると、デフォルトのオーバーロードを行うために、カスタムキャストルールを指定できます。
ルールをキャストするか、特別な場合にそれらを修正します。
キャストルールは、次のいずれかの形式に従うことが期待されます。
タイプ[[ ... ] に[[ ...]
桁。 [[ ] に ...
それは可能です 鋳造 ルール MySQLデータ型または
与えられた の項目に表示されます。 名 与えられた テーブル 名。 その柔軟性により、次のような場合に対処できます。
タイプ タイニーント として使用された可能性があります boolean 場合によっては、 小さい整数 in
その他。
この 鋳造 ルール 順番に適用される場合、最初の一致により、次のルールが次のようになります。
適用され、ユーザー定義のルールが最初に評価されます。
サポートされているガードは次のとおりです。
· いつ デフォルト 価値
キャストルールは、ソースタイプのMySQL列にのみ適用されます。
与えられた 値、これは一重引用符または二重引用符で囲まれた文字列である必要があります。
· いつ タイプモッド 表現
キャストルールは、ソースタイプのMySQL列にのみ適用されます。
タイプモッド 与えられた値と一致する値 タイプモッド 表現を選択します。 タイプモッド に分けられます
精度 と 階段 コンポーネント。
を使用したキャストルールの例 タイプモッド ガード:
typemodをcharに保つとき(=精度1)のときにcharと入力します
この式はMySQLをキャストします チャリオット(1) タイプのPostgreSQL列への列 チャリオット(1) while
一般的なケースを考慮に入れる char(N) デフォルトのキャストルールによってに変換されます
PostgreSQLタイプ varchar(N).
· 余分な 自動増加
キャストルールは、次のようなMySQL列にのみ適用されます。 余分な の項目に表示されます。
自動増加 オプションが設定されているため、たとえば シリアル ではなく
整数.
このオプションが設定されていない場合のデフォルトの一致動作は、両方の列を一致させることです。
追加の定義がある場合とない場合。
これは、どちらかを対象とするキャストルールを実装する場合を意味します シリアル or
整数 から 小さい整数 に応じた定義 自動増加 の余分なビット
MySQLからの情報の場合、次のようにXNUMXつのキャストルールを詳しく説明する必要があります。
追加のauto_incrementを指定してsmallintと入力します
シリアルドロップtypemodにデフォルトを保持し、nullを保持しません。
smallintと入力します
整数ドロップtypemodにデフォルトを保持null以外を保持
サポートされているキャストオプションは次のとおりです。
· ドロップ デフォルト, 続ける デフォルト
オプションの場合 ドロップ デフォルト がリストされている場合、pgloaderは既存のデフォルト式をすべて削除します
MySQLデータベースで、からのソースタイプの列 CREATE 表 ステートメント
生成します。
スペル 続ける デフォルト その動作を明示的に防止し、
デフォルトのキャストルールをオーバーロードします。
· ドロップ ヌル, 続ける ヌル
オプションの場合 ドロップ ヌル リストされている場合、pgloaderは既存のものをすべて削除します NOT NULL
テーブルを作成するときに指定されたソースMySQLデータ型に関連付けられた制約
PostgreSQLデータベース内。
スペル 続ける ヌル その動作を明示的に防止し、
デフォルトのキャストルールをオーバーロードします。
· ドロップ タイプモッド, 続ける タイプモッド
オプションの場合 ドロップ タイプモッド リストされている場合、pgloaderは既存のものをすべて削除します タイプモッド 定義
(例えば 精度 と 階段)のMySQL列にあるデータ型定義から
PostgreSQLデータベースにテーブルを作成したときのソースタイプ。
スペル 続ける タイプモッド その動作を明示的に防止し、
デフォルトのキャストルールをオーバーロードします。
·
このオプションは、その単一の引数として、にある関数の名前を取ります。
pgloader.transforms CommonLispパッケージ。 詳細については、上記を参照してください。
デフォルトのキャストルール( 列挙型
たとえば、データ型) function 完全に省略して type
次の例のように、キャストルールの一部:
empty-string-to-nullを使用した列enumerate.foo
· マテリアライズ VIEWS
この句を使用すると、データソースでカスタムデータ処理を実装できます。
提供する ビュー 定義 pgloaderがデータを照会する対象。 そうではありません
プレーンを許可することが可能 SQL 正確なことについてたくさん知りたいので
クエリ出力に含まれる各列のデータ型。
この句は、ビュー定義のコンマ区切りのリストを想定しています。各リストは次のいずれかです。
データベース内の既存のビューの名前または次の式:
名 AS $$ SQL クエリー $$
この 名 と SQL クエリー で使用されます CREATE VIEW 冒頭の声明
データが読み込まれ、結果のビューがデータの最後にドロップされます
読み込み中。
· マテリアライズ 全て VIEWS
と同じ動作 マテリアライズ VIEWS によって返されるビューの動的リストを使用する
ユーザーにリストの指定を求めるのではなく、MySQL。
· INCLUDING たったの 表 名前 マッチング
テーブル名のコンマ区切りリストを導入するか、 レギュラー 表現 制限するために使用
サブリストに移行するテーブル。
例:
一致するテーブル名のみを含む 〜/ film /、「俳優」
· 除く 表 名前 マッチング
テーブル名のコンマ区切りリストを導入するか、 レギュラー 表現 除外するために使用
移行からのテーブル名。 このフィルターは、
INCLUDING フィルタ。
一致するテーブル名を除外する〜
· デコード 表 名前 マッチング
テーブル名のコンマ区切りリストを導入するか、 レギュラー 表現 強制するために使用
MySQLからのデータを処理するときに使用するエンコーディング。 あなたが知っているデータエンコーディングの場合
MySQLの考え方とは異なり、これを使用するオプションです。
一致するテーブル名のデコード 〜/めちゃくちゃ/, 〜/ encoding / ASutf8
このようなルールは必要な数だけ使用できますが、すべてエンコードが異なる可能性があります。
制限
この データベース コマンドは現在、MySQLソースデータベースのみをサポートしており、次のものがあります
制限:
・ビューは移行されません。
ビューをサポートするには、MySQLダイアレクト用の完全なSQLパーサーを実装する必要がある場合があります
名前の変更を含め、PostgreSQLに対してSQLを書き換えるための移植エンジンを使用
関数といくつかの構成の変更。
理論的には不可能ではありませんが、息を止めないでください。
・トリガーは移行されません
そうすることの難しさはまだ評価されていません。
· ON UPDATE current_timestamp 現在移行されていません
実装は簡単ですが、まだ優先順位リストには載っていません。
・幾何学的データ型のうち、 POINT データベースがカバーされました。 他のもの
今すぐ実装するのは簡単なはずですが、まだ完了していません。
DEFAULT MySQL CASTING RULES
MySQLから移行する場合、次のキャストルールが提供されます。
番号:
・(<精度10)の場合、シリアルに追加のauto_incrementを指定してintと入力します
・(<= 10の精度)の場合、bigserialにauto_incrementを追加してintと入力します
・intをintに入力する場合(<精度10)
・次の場合にintをbigintに入力します(<= 10精度)
・シリアルに追加のauto_incrementを指定してtinyintと入力します
・シリアルに追加のauto_incrementを指定してsmallintと入力します
・シリアルに追加のauto_incrementを指定してmediumintと入力します
・bigserialにauto_incrementを追加してbigintと入力します
・tinyint-to-booleanを使用して(= 1精度)の場合、tinyint tobooleanと入力します
・tinyintからsmallint droptypemodと入力します
・smallintからsmallintドロップtypemodと入力します
・mediumintからinteger droptypemodと入力します
・整数から整数へのドロップtypemodを入力します
・float to float droptypemodと入力します
・bigintからbigint droptypemodと入力します
・倍精度から倍精度のドロップtypemodを入力します
・numericをnumericキープtypemodに入力します
・XNUMX進数からXNUMX進数のキープtypemodを入力します
テキスト:
・charをvarcharに入力してtypemodを保持します
・varcharをテキストに入力します
・テキストにtinytextと入力します
・テキストをテキストに入力
・mediumtextをテキストに入力します
・テキストにlongtextと入力します
バイナリ:
・バイナリをbyteaに入力します
・varbinaryをbyteaに入力します
・tinyblobをbyteaと入力します
・blobをbyteaに入力します
・ミディアムブロブをビテアに入力します
・longblobをbyteaに入力します
日付:
・デフォルトの「0000-00-00 00:00:00」の場合はdatetimeと入力し、timestamptzにnullを入力しないでください。
null-dates-to-nullを使用したデフォルトのドロップ
・デフォルトの「0000-00-00 00:00:00」の場合はdatetimeと入力し、timestamptzを使用してデフォルトを削除します。
ゼロ-日付からnull
・デフォルトの「0000-00-00 00:00:00」の場合はtimestampと入力し、timestamptzにnullではない場合はドロップしない
null-dates-to-nullを使用したデフォルトのドロップ
・デフォルトの場合はtimestamp "0000-00-00 00:00:00"と入力し、timestamptzを使用してデフォルトを削除します。
ゼロ-日付からnull
・デフォルトの「0000-00-00」のときに日付を入力して、zero-dates-to-nullを使用してデフォルトの日付を削除します
・datetodateと入力します
・datetimeをtimestamptzに入力します
・timestampをtimestamptzに入力します
・年を整数ドロップtypemodに入力します
幾何学的:
・pgloader.transforms :: convert-mysql-pointを使用してポイントツーポイントを入力します
列挙型はMySQLでインラインで宣言され、個別に宣言されます。 CREATE タイプ コマンドイン
PostgreSQLであるため、列挙型の各列は、テーブルにちなんで名付けられた型に変換され、
同じラベルで同じ順序で定義された列名。
ソースタイプの定義がデフォルトのキャストルールにも一致しない場合
コマンドで指定されたキャストルールの場合、typemodを含むタイプ名が使用されます。
負荷 SQLiteの DATABASE
このコマンドは、SQLiteファイルからデータをロードするようにpgloaderに指示します。 の自動検出
インデックスのビルドを含め、スキーマがサポートされています。
次に例を示します。
データベースをロードする
sqlite:/// Users / dim / Downloads /lastfm_tags.dbから
postgresql:/// tagsに
インクルードドロップ、テーブルの作成、インデックスの作成、シーケンスのリセット
work_memを「16MB」に設定し、maintenance_work_memを「512MB」に設定します。
この sqlite コマンドは、次の句とオプションを受け入れます。
· FROM
SQLiteファイルへのパスまたはHTTPURLは、 .zip ファイルにソフトウェアを指定する必要があります。
· WITH
からロードする場合 SQLiteの データベースでは、次のオプションがサポートされています。
からロードする場合 SQLiteの データベース、次のオプションがサポートされており、
デフォルト WITH 条項は次のとおりです。 いいえ 切り詰める, 作ります テーブル, include ドロップ, 作ります インデックス,
リセット シーケンス, 小文字 識別子, エンコーディング 「utf-8」.
· include ドロップ
このオプションがリストされている場合、pgloaderはターゲットPostgreSQLのすべてのテーブルを削除します
SQLiteデータベースに名前が表示されるデータベース。 このオプションを使用すると、
すべてのオプションを理解するまで、同じコマンドを数回続けて開始します
クリーンな環境から自動的に。 その点に注意してください CASCADE 確実にするために使用されます
それらを指す外部キーがある場合でも、そのテーブルは削除されます。 これは
正確には何 include ドロップ 目的は次のとおりです。すべてのターゲットテーブルを削除して再作成します
それら。
使用する際は細心の注意が必要です include ドロップ、カスケードするので を
ターゲットテーブルを参照するオブジェクト。おそらく、そうでない他のテーブルを含みます。
ソースDBからロードされます。
· include いいえ ドロップ
このオプションがリストされている場合、pgloaderには何も含まれません DROP ロード時のステートメント
データ。
· 切り詰める
このオプションがリストされている場合、pgloaderは 切り捨てる それぞれに対するコマンド
データをロードする直前のPostgreSQLテーブル。
· いいえ 切り詰める
このオプションがリストされている場合、pgloaderは何も発行しません 切り捨てる
· disable トリガされ
このオプションがリストされている場合、pgloaderは 変更する 表 ... 無効にする TRIGGER 全て
データをコピーする前にPostgreSQLターゲットテーブルに対してコマンドを実行し、次にコマンド
変更する 表 ... 有効 TRIGGER 全て かつて COPY 終わらせる。
このオプションを使用すると、既存のテーブルにデータをロードして、 外国の キー
制約 およびユーザー定義のトリガーであり、無効になる可能性があります 外国の キー
制約 データがロードされたら。 注意して使用してください。
· 作ります テーブル
このオプションがリストされている場合、pgloaderはで見つかったメタデータを使用してテーブルを作成します
SQLiteの ファイル。データ型を持つフィールドのリストが含まれている必要があります。 標準
DBFからPostgreSQLへのデータ型変換が行われます。
· 作ります いいえ テーブル
このオプションがリストされている場合、pgloaderはデータをロードする前にテーブルの作成をスキップします。
その場合、ターゲットテーブルはすでに存在している必要があります。
· 作ります インデックス
このオプションがリストされている場合、pgloaderはで見つかったすべてのインデックスの定義を取得します
SQLiteデータベースに対して、同じインデックス定義のセットを作成します。
PostgreSQL データベース。
· 作ります いいえ インデックス
このオプションがリストされている場合、pgloaderはインデックスの作成をスキップします。
· リセット シーケンス
このオプションがリストされている場合、データのロードの最後とインデックスの後に
すべてが作成されると、pgloaderは作成されたすべてのPostgreSQLシーケンスを現在の状態にリセットします
それらが接続されている列の最大値。
· リセット いいえ シーケンス
このオプションがリストされている場合、pgloaderはロード後のシーケンスのリセットをスキップします。
オプション スキーマ の と データ の このオプションには影響しません。
· スキーマ の
このオプションがリストされている場合、pgloaderはデータの移行を控えます。 ノート
このコンテキストのスキーマには、オプションのときにインデックスが含まれていること 作ります インデックス
リストされています。
· データ の
このオプションがリストされている場合、pgloaderは COPY ステートメント、何もせずに
その他の処理。
· エンコーディング
このオプションを使用すると、SQLiteテキストデータを解析するエンコードを制御できます。
デフォルトはUTF-8です。
· CAST
cast句を使用すると、デフォルトのオーバーロードを行うために、カスタムキャストルールを指定できます。
ルールをキャストするか、特別な場合にそれらを修正します。
詳細については、MySQLCAST句を参照してください。
· INCLUDING たったの 表 名前 マッチング
テーブル名のコンマ区切りリストを導入するか、 レギュラー 表現 制限するために使用
サブリストに移行するテーブル。
例:
一致するテーブル名のみを含む 〜/ film /、「俳優」
· 除く 表 名前 マッチング
テーブル名のコンマ区切りリストを導入するか、 レギュラー 表現 除外するために使用
移行からのテーブル名。 このフィルターは、
INCLUDING フィルタ。
一致するテーブル名を除外する〜
DEFAULT SQLiteの CASTING RULES
SQLiteから移行する場合、次のキャストルールが提供されます。
番号:
・tinyintからsmallintと入力します
・整数をbigintに入力します
・float-to-stringを使用してfloat tofloatと入力します
・float-to-stringを使用して実数から実数を入力します
・float-to-stringを使用して倍精度から倍精度を入力します
・float-to-stringを使用して数値から数値を入力します
テキスト:
・文字をテキストに入力ドロップtypemod
・varcharをテキストドロップtypemodに入力します
・nvarcharをテキストドロップtypemodに入力します
・charをテキストドロップtypemodに入力します
・ncharをテキストドロップtypemodに入力します
・nvarcharをテキストドロップtypemodに入力します
・clobをテキストドロップtypemodに入力します
バイナリ:
・blobをbyteaに入力します
日付:
・sqlite-timestamp-to-timestampを使用してdatetimeをtimestamptzに入力します
・sqlite-timestamp-to-timestampを使用してtimestampをtimestamptzに入力します
・sqlite-timestamp-to-timestampを使用してtimestamptzからtimestamptzと入力します
負荷 MS SQL DATABASE
このコマンドは、MSSQLデータベースからデータをロードするようにpgloaderに指示します。 自動検出
インデックス、主キー、外部キーの構築など、スキーマの
制約
次に例を示します。
データベースをロードする
mssql:// user @ host / dbnameから
postgresql:/// dbnameに
スキーマ「dbo」に「GlobalAccount」などのテーブル名のみを含める
work_memを「16MB」に設定し、maintenance_work_memを「512MB」に設定します
ロードする前に、dboカスケードが存在する場合は$$ドロップスキーマを実行します。 $$;
この mssql コマンドは、次の句とオプションを受け入れます。
· FROM
リッスンして歓迎する既存のMSSQLデータベースサーバーへの接続文字列
外部TCP / IP接続。 pgloaderは現在FreeTDSドライバーに便乗しているので、
サーバーのポートを変更してください TDSスポーツ 環境変数。
· WITH
からロードする場合 MS SQL データベース、ロード時と同じオプション MySQL データベース
サポートされています。 MySQLのセクションを参照してください。 次のオプションが追加されました。
· 作ります スキーマ
このオプションがリストされている場合、pgloaderはMSSQLにあるものと同じスキーマを作成します
実例。 これがデフォルトです。
· 作ります いいえ スキーマ
このオプションがリストされている場合、pgloaderはスキーマの作成をまったく控えます。
次に、ターゲットスキーマが存在することを確認する必要があります。
· CAST
cast句を使用すると、デフォルトのオーバーロードを行うために、カスタムキャストルールを指定できます。
ルールをキャストするか、特別な場合にそれらを修正します。
詳細については、MySQLCAST句を参照してください。
· INCLUDING たったの 表 名前 LIKE 「...」 [, 「…」] IN スキーマ 「...」
テーブルをに制限するために使用されるテーブル名パターンのコンマ区切りリストを導入します
サブリストに移行します。 そのような句を複数使用することができ、それらは蓄積されます
一緒に。
例:
スキーマ「dbo」にテーブル名lile「GlobalAccount」のみを含める
· 除く 表 名前 LIKE 「...」 [, 「…」] IN スキーマ 「...」
テーブル名を除外するために使用されるテーブル名パターンのコンマ区切りリストを導入します
移行から。 このフィルターは、 INCLUDING フィルタ。
スキーマ「dbo」の「LocalAccount」に一致するテーブル名を除外する
DEFAULT MS SQL CASTING RULES
MS SQLから移行する場合、次のキャストルールが提供されます。
番号:
・tinyintからsmallintと入力します
・float-to-stringを使用してfloat tofloatと入力します
・float-to-stringを使用して実数から実数を入力します
・float-to-stringを使用して倍精度から倍精度を入力します
・float-to-stringを使用して数値から数値を入力します
・float-to-stringを使用してXNUMX進数から数値を入力します
・float-to-stringを使用してお金を数値に入力します
・float-to-stringを使用してsmallmoneyを数値に入力します
テキスト:
・charをテキストドロップtypemodに入力します
・テキストドロップtypemodにnchatと入力します
・varcharをテキストドロップtypemodに入力します
・nvarcharをテキストドロップtypemodに入力します
・xmlをテキストドロップtypemodに入力します
バイナリ:
・byte-vector-to-byteaを使用してbinaryをbyteaに入力します
・byte-vector-to-byteaを使用してvarbinaryをbyteaに入力します
日付:
・datetimeをtimestamptzに入力します
・datetime2をtimestamptzに入力します
その他:
・ビットをブール値に入力します
・hierarchyidをbyteaと入力します
・地理をbyteaに入力します
・sql-server-uniqueidentifier-to-uuidを使用してuuidにuniqueidentifierと入力します
TRANSFORMATION 関数
一部のデータ型は、変換関数が十分に異なる方法で実装されています
必要です。 この関数はで書かれている必要があります コマンドと Lisp で検索されます
pgloader.transforms パッケージ。
いくつかのデフォルトの変換関数がpgloaderで提供されており、
- ロード 独自のlispファイルをpgloaderにロードしてコンパイルするコマンドラインオプション
ランタイム。 関数を見つけるには、lispファイルを
次のフォーム:
(パッケージ内#:pgloader.transforms)
提供される変換関数は次のとおりです。
· ゼロ-日付からnull
入力日がすべてゼロの場合、 ゼロ、PostgreSQLとしてロードされます NULL
の値です。
· セパレータなしの日付
適用 ゼロ-日付からnull 次に、指定された日付をPostgreSQLの形式に変換します
実際に処理します:
で:「20041002152952」
Out: "2004-10-02 15:29:52"
· セパレータなしの時間
指定された時間をPostgreSQLが実際に処理する形式に変換します。
で:「08231560」
アウト: "08:23:15.60"
· tinyint から boolean へ
MySQLには適切なブール型がないため、 タイニーント それを実装するためによく使用されます。 この
関数変換 0 〜へ 「偽」 と他の何か 真実´。
· ビットからブール
MySQLには適切なブール型がないため、 BIT それを実装するためによく使用されます。 この
関数は1ビットビットベクトルをから変換します 0 〜へ f およびその他の値 t..
· 内部からIPへ
整数をip4の点線表現に変換します。
で:18435761
アウト:「1.25.78.177」
· IP範囲
文字列として指定されたいくつかの整数をip4の範囲に変換します。
で: "16825344" "16825599"
アウト:「1.0.188.0-1.0.188.255」
· 変換 mysql ポイント
から変換 アテキスト MySQLのポイントのPostgreSQLへの表現
表現。
で:「POINT(48.5513589)」
アウト:「(48.5513589,7.6926827)」
· フロートからストリングへ
CommonLispフロートをPostgreSQLフロートに適した文字列に変換します。
で:100.0d0
アウト:「100.0」
· 列挙型配列に設定
MySQLSETを表す文字列をからの列挙値のPostgreSQL配列に変換します
セット。
で: "foo、bar"
アウト: "{foo、bar}"
· 空の文字列からnull
空の文字列をnullに変換します。
· 右トリム
文字列の末尾の空白を削除します。
· バイトベクトルからバイトへ
符号なしバイトの単純な配列をPostgreSQLbyteaHex形式に変換します
で文書化された表現
http://www.postgresql.org/docs/9.3/interactive/datatype-binary.html
· sqlite-タイムスタンプからタイムスタンプへ
SQLite型システムは非常に興味深いので、ここでそれに対処してタイムスタンプを生成します
PostgreSQLで期待されるリテラル。 それは4桁の年のみをカバーし、0の日付から
null、および適切な日付文字列。
· SQLサーバー固有識別子からUUIDへ
SQL Serverドライバーは、一意の識別子型のデータをバイトベクトルとして受け取ります。
次に、PostgreSQLCOPY入力形式を処理するためにUUID文字列に変換する必要があります。
· unix タイムスタンプからタイムスタンプへ
UNIXタイムスタンプ(1970年の初めから経過した秒数)をに変換します
適切なPostgreSQLタイムスタンプ形式。
負荷 メッセージ
このコマンドはまだ実験段階であり、syslogを使用してUDP経由でメッセージを受信できます
フォーマットと同様に、ルールの一致に応じて、データストリームの名前付き部分をにロードします
宛先テーブル。
メッセージの読み込み
FROM syslog:// localhost:10514 /
rsyslog-msgがapacheで一致する場合
タイムスタンプ、IP、残りの登録
INTO postgresql://localhost/db?logs.apache
SET guc_1 =´value´、guc_2 =´other value´
他の人のrsyslog-msgと一致するとき
タイムスタンプ、アプリ名、データの登録
INTO postgresql://localhost/db?logs.others
SET guc_1 =´value´、guc_2 =´other value´
WITH Apache = rsyslog
データ=IPREST
IP = 1 *3DIGIT"。" 1 *3DIGIT"。"1*3DIGIT"。"1* 3DIGIT
残り = 〜/。*/
その他と = rsyslog;
コマンドはまだ実験的なものであるため、オプションは将来変更される可能性があり、
詳細は文書化されていません。
onworks.netサービスを使用してオンラインでpgloaderを使用する