問題タブ [pygrametl]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - Python-Django を使用して CSV ファイルを PostgreSQL DB にインポートする
注:有用な詳細については、[背景]セクションまで下にスクロールします。次の図では、プロジェクトが Python-Django と South を使用しているとします。
次の CSV をインポートする最良の方法は何ですか?
関連するテーブルPerson、Account、およびAccountTypeを含む PostgreSQL データベースに、以下を考慮します。
- 管理者ユーザーは、カスタム UI を介してリアルタイムでデータベース モデルと CSV インポート表現を変更できます
- 保存された CSV からデータベースへのテーブル/フィールドのマッピングは、通常のユーザーが CSV ファイルをインポートするときに使用されます
これまで2つのアプローチが検討されてきました
- ETL-API アプローチ: ETL API にスプレッドシート、CSV からデータベースへのテーブル/フィールドのマッピング、およびターゲット データベースへの接続情報を提供します。その後、API はスプレッドシートをロードし、ターゲット データベース テーブルに入力します。pygrametl を見ると、私が目指していることが可能だとは思えません。実際、これを行う ETL API があるかどうかはわかりません。
- 行レベル挿入アプローチ: CSV からデータベースへのテーブル/フィールド マッピングの解析、スプレッドシートの解析、および「結合順序」での SQL 挿入の生成。
2 番目のアプローチを実装しましたが、アルゴリズムの欠陥とコードの複雑さに苦労しています。私が望むことを行うPython ETL APIはありますか? それとも、車輪の再発明を伴わないアプローチですか?
バックグラウンド
私が働いている会社は、SharePoint でホストされている何百ものプロジェクト固有の設計スプレッドシートをデータベースに移行しようとしています。管理者が各プロジェクトのデータベースを定義/モデル化し、そこにスプレッドシートを保存し、ブラウズ エクスペリエンスを定義できるようにすることで、ニーズを満たす Web アプリケーションの完成に近づいています。完成のこの段階では、商用ツールへの移行はオプションではありません。Web アプリケーションは、DB モデリング UI、CSV インポート/エクスポート機能、カスタマイズ可能なブラウズ、およびプロジェクト固有のカスタマイズに対応するためのモジュール化されたコードを備えた、django-admin の代替手段と考えてください。
実装された CSV インポート インターフェイスは面倒でバグが多いため、フィードバックを得て別の方法を見つけようとしています。
python - pygrametl 次元の抽象化
Pythonのpygrametlパッケージの経験がある人は、以下のエラーを理解するのに役立ちますか
pygrametl ドキュメントのサンプル コード:
私が書いたコード:
エラー:
python - pygrametl CSVSource TypeError: init() は少なくとも 2 つの引数を取ります (1 つ指定)
ドキュメントに示されているように、pygrametl CSVSource を使用しようとしています
これは私のコードです
正確なコードを使用しても、次のエラーが発生します。
TypeError: init () は少なくとも 2 つの引数を取ります (1 つ指定)
どうすればこれを修正できますか?
psycopg2 - CSV から PostGres へのバルクロードのエラー
コードはエラーで失敗しています -
私の理解によると、ターゲットテーブルが空であるため、エラーが発生します。CSV ソースにもヘッダーがありません。これはコードに影響を与える可能性がありますか? コードの開発に使用されたリンクを見つけてください - https://chrthomsen.github.io/pygrametl/