問題タブ [etl]
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.
java - データ型を理解し、Java で実装できるスクリプト言語は何ですか?
次の条件を満たすスクリプト言語を探しています。
- 十分に文書化されています
- Javaで実装
- データ型を理解する (long、string などを処理できる)
- 完全に拡張可能
助言がありますか?現在、私は Javascript を使用していますが、数値を設定する Doubles は、私が行っているデータ作業には十分な大きさではありません。
ありがとう!
asp.net - データベーステーブルへのExcelのアップロード
ユーザーがXLSスプレッドシートをアップロードして、データウェアハウス(DW)のテーブルにデータを入力できるようにするための最適なソリューションを探しています。
私たちのユーザーはヘビービジネスオブジェクト(BO)ユーザーであり、BOを使用するとXLSにエクスポートできます。DWにロードする必要のあるスプレッドシートにデータがある場合、XLSのデータをDWのデータベースにアップロードするプロセスが必要です。その結果、私たちが本当に必要としているのはプログラムによる自動フィードであると考えると、これらの「インターフェース」の多くができあがります。システム間フィードのデータソースとしてExcelを使用することは、私の直感では、私には悪い考えのように思えます。
質問1:あなたが同意するかどうか、そしてその理由または理由を確認したいと思います。
OK、その流れに逆らって泳ぐことはないので、XLSのアップロードが私たちのためにここにあることを前提としています。今、私は最良の解決策を見つける必要があります。最初に、私たちが今何をしているのかを説明し、次にそれについて私が嫌いなことを説明します。
Webページを介して、定義された列のセットを持つ空のXLSファイル(行なし)を提供します。各ファイルは、異なるターゲット宛先テーブルを更新するために使用することを目的としています。各スプレッドシートには「アップロード」ボタンがあります。[アップロード]ボタンを押すと、スプレッドシートのマクロがファイルの内容をCSVにシリアル化し、データをサーバーフォルダーにFTPで送信します。スケジューラーは、CSVファイルを入力として使用するInformatica ETLジョブを定期的に起動し、データをカスタムXLS固有のステージングテーブルにロードし、レコードが編集を通過した場合は、適切なターゲットテーブルにロードします。発生したエラーはすべてエラーテーブルに記録されます。アップロードされたXLSファイルごとに、データはファイルに固有の個別のステージングおよびエラーテーブルになります。
私が私たちのプロセスについて含めたくないもののいくつかは次のとおりです。
1)XLSのマクロコードが公開されすぎており、たとえばパスワードが含まれているため、改ざんされる可能性があり、ユーザーが最新のXLSテンプレートを使用していることを確認する際に問題が発生します。2)ビジネスルールの編集はETLプログラムに配置されますが、エラーをできるだけ早くキャッチしたいので、つまりスプレッドシートで、編集もマクロコードに追加されます。これにより、ビジネス編集が重複します。これらのルールを1か所にまとめて集中管理したいと思います。私見ですが、XLSにマクロコードを入れると、ストアドプロシージャの呼び出し(一部はあります)やWebサービスの呼び出し(XLSマクロから.NET Webサービスの呼び出しはまだ試みていません)でさえ、メンテナンスの問題が発生すると思います。)3)すべてのXLSファイルアップロードテンプレートには、ステージングテーブルとエラーテーブルの個別のセット、および発生したエラーを報告するためのカスタム画面を備えた独自のプロセスがあります。より一般化された再利用可能なソリューションが必要なようです。
BOからXLSにデータをエクスポートすることが多いほか、ユーザーはExcelも気に入っています。これは、Webインターフェイスを介して個々のレコードを編集するよりも、多数のレコードを編集する方が簡単で、扱いにくいためです。
これが私が考えている一般的な方向性です。
まず、スプレッドシートに埋め込みマクロを含めずに、編集を使用してExcelを簡単に編集できるようにする必要があります。私はExcelと互換性のあるFarpointのグリッドを試しました...
http://www.fpoint.com/netproducts/spreadweb/tour/excel.aspx
...そして、ユーザーが自分のPCにあるXLSファイルを開いてブラウザーで開き、サーバー側から読み取ったデータに簡単にアクセスできるようにするのは非常に簡単であることがわかりました。 NETWebコード。Excelはブラウザでローカルに実行されていませんが、Excelの機能は再現されています。おそらく、クライアント側のスクリプトを多数使用することで、自分自身を複製するのは非常に困難だと思います。ローカルのスプレッドシートからWebのスプレッドシートにカットアンドペーストすることもできます。これは素晴らしいことのように聞こえますが、最大の問題はコストです。私たちの会社は死にかけているので、新しいソフトウェアを購入することはできません。
次に、すべてのスプレッドシートのアップロード処理に共通するコンポーネントを特定し、一般的な処理コードを考え出します。たとえば、各スプレッドシートと、列名とデータ型の定義を含む各スプレッドシートの形式を、おそらくハードコーディングではなく宛先列の観点から定義するテーブルを想像します。このテーブルテンプレート定義に基づいて、このテーブル定義からダウンロードするXLSテンプレートを生成できます。入力したデータがテーブル定義と一致することを確認するために、簡単な一般的な編集を実行することもできます。また、1つの一般的なWebページを使用して、データを表示し、レポートデータ型の不一致エラーを許可し、ユーザーがそれらを修正できるようにすることができます。また、送信番号、行番号、名前、値の2つの列を持つテーブルを使用して、データを「ステージング」テーブルに格納するための共通テーブルを定義します。多分。これ以上の「すべてをカスタマイズする」ことが目標ではありません。
次に、ビジネスルールをどこに置くかを決める必要があります。私の部門の管理者は、データのすべてのロードはInformatica ETLバッチプロセスによって行われる必要があるため、ルール/編集は「Informatica」に属すると固く信じています。私はInformaticaツールの経験がまったくなく、.NETの人です。したがって、これらのルールがどのように実装されているかはわかりませんが、特定のレコードを検証するために.NET Webページで使用できるという意味で、再利用できないと思われます。場合によっては、ユーザーが一括アップロードを実行していないときに、特定のレコードを編集する機能があり、ETL一括挿入プロセスによって適用されたのと同じ編集を個々の更新に適用したいことがあります。 Webページを介して単一のレコードを試行します。単一のレコードの更新を実行するWebページから呼び出すことも、一括アップロードのレコードごとに数千回呼び出すこともできる単一のWebサービスまたはストアドプロシージャを作成するソリューションの場合はどうでしょうか。後者は非効率に聞こえます。
上記のことについてのあなたの考えは大歓迎です。
asp.net - Informatica ETL および ASP.NET CRUD ページ全体でビジネス ロジックを再利用する最善の方法は何ですか?
Informatica について最初に知っていることはありませんが、テーブル内のレコードを挿入および更新するためのビジネス ロジックの重複を解決する方法を探しています。問題はそれを効率的に行うことです。
1) レコードを 1 つずつ挿入、更新、および削除する Web ページがあります。
2) ステージング (一時) テーブルからレコードを取得してロードする Informatica ETL ロード プログラムがあります。このプロセスは私にとってブラック ボックスのようなものですが、Informatica にはメモリ内のかなり大きなテーブルの読み取りなどの効率が組み込まれているため、多くのレコードをすばやく検証できます。
ビジネス編集が Web サービスに配置された場合、CRUD 操作を実行する Web ページと Informatica ロード プロセスの両方でこの Web サービスを再利用できることは理解していますが、これを効率的に行うにはどうすればよいですか? 一度に 1 つのレコードを Web サービスに渡すと、ETL の効率が低下します。何千ものレコードを渡す場合も同様です。
インフォマティカがどのように機能するのかわからないため、暗闇の中にいるように感じます。
誰か提案はありますか?
.net - .Netイベントログ
新しいSystem.Diagnostics.Eventingイベントログを、アプリケーションに統合する前に、単純な.Netアプリで機能させようとしています。
このページで作業して、マニフェストを作成し、イベントを発生させる簡単なアプリを作成し、プロバイダーを登録してイベントビューアーに表示しました。イベントビューアまたはサンプルアプリでエラーは発生しませんが(プロバイダーIsEnabledおよびWriteEventはtrueを返します)、イベントは表示されません。
足りないものはありますか?または、私が確認できるいくつかの考えられる原因はありますか?
sql - SASからTeradataへのデータのロード-いつ準備ができていますか?
SASからTeradataにテーブルをロードする場合、SASはデータをロードし(通常はFASTLOAD機能を使用)、スクリプトを続行します。ただし、SASがデータがロードされていると言っているために重大なエラーが発生することがよくありますが、Teradataはまだテーブル内でデータをアセンブルしています。
したがって、データはデータベースにありますが、使用する準備ができていません。データを他のテーブルで処理する準備ができているかどうかを知る方法をまだ見つけていません。私はsleepコマンドの使用に成功しましたが、それは恣意的で信頼性がありません(誰がどれくらいの時間がかかるかを知っているため)。
この問題をどのように修正しますか?
ssis - SSIS を使用した SQL Server CDC では、どのデータをウィンドウ処理 (LSN または日付) 用に保存する必要がありますか?
ソース トランザクション テーブルの ID 列または日時列を使用して、トランザクション システムからデータ ウェアハウスをロードする際にデルタ検出を実装しました。次回データを抽出する必要がある場合は、前回抽出された最大の日時値を抽出クエリのフィルターで使用して、新しいレコードまたは変更されたレコードを識別します。同じミリ秒で複数のトランザクションがあった場合を除いて、これで十分でした。
しかし、現在、SQL Server 2008 には変更データ キャプチャ (CDC) があり、長さ 10 のバイナリである LSN (ログ シーケンス番号) と呼ばれる新しいものを提供しています。今、私は混乱しています。ウィンドウ処理の目的で保存する必要があるデータ (LSN または日時)。もちろん、LSN を使用すると、大きなトランザクション テーブルに追加の日時値を格納する必要がなくなりますが、これには欠点がありますか? どちらを使用する必要がありますか? LSNを日時にマッピングしてから日時を保存することは、信頼できる方法ではないと感じています。あなたの意見は何ですか?
PS: BI の専門家でない方、申し訳ありません。
asp.net - 整数ゼロ、「0」はSQLServerにアップロードするときに無視されます
ユーザーがExcelファイルをアップロードし、ExcelファイルのデータをSQLServerに挿入できるページがあります。ここで、「001」、「029」、「236」などの値を持つExcelファイルの列があるという小さな問題があります。SQL Serverに挿入すると、SQLでは前のゼロが無視されるため、データは「1」、「29」、「239」になります。SQLの列のデータ型はvarchar(10)です。これを解決する方法は?
sql - SQL Server テーブルからテキスト データをエクスポートする方法は?
MS SQL Server 2005 インポート/エクスポート ツールを使用してテーブルをエクスポートし、アーカイブ用に別のデータベースにインポートできるようにしようとしています。列の 1 つがテキストであるため、カンマ区切りでエクスポートすると、それをアーカイブ テーブルにインポートしようとすると、そのフィールドにカンマがある行では正しく機能しません。インポートが正しく機能するようにするには、どのオプションを選択すればよいですか?
vba - Excelによるデータ抽出
私は毎月 100 以上の Excel スプレッドシートを受け取り、そこから一定の範囲を取り、他のスプレッドシートに貼り付けてレポートを作成しています。
VBA スクリプトを作成して、Excel ファイルを反復処理し、範囲を 1 つのスプレッドシートにコピーしようとしていますが、実行できませんでした。
これを行う簡単な方法はありますか?