タグ付けされた質問 「etl」

12
MySQL-行から列へ
投稿を検索しようとしましたが、SQL Server / Accessのソリューションしか見つかりませんでした。MySQL(5.X)のソリューションが必要です。 hostid、itemname、itemvalueの3つの列を持つテーブル(履歴と呼ばれる)があります。 選択(select * from history)すると、戻ります +--------+----------+-----------+ | hostid | itemname | itemvalue | +--------+----------+-----------+ | 1 | A | 10 | +--------+----------+-----------+ | 1 | B | 3 | +--------+----------+-----------+ | 2 | A | 9 | +--------+----------+-----------+ | 2 | c | 40 | +--------+----------+-----------+ …
188 mysql  sql  pivot-table  etl  crosstab 

5
Pythonで巨大なCSVの処理が突然停止した場合、「killed」とはどういう意味ですか?
大きなCSVファイルをインポートし、ファイル内の各単語の出現回数をカウントして、そのカウントを別のCSVファイルにエクスポートするPythonスクリプトがあります。 しかし、何が起こっているのかというと、そのカウント部分が終了してエクスポートが開始されるとKilled、ターミナルに表示されます。 これはメモリの問題ではないと思います(もしそうなら、メモリエラーが発生するのではなく、発生すると思いますKilled)。 プロセスに時間がかかりすぎている可能性がありますか?もしそうなら、私がこれを避けることができるようにタイムアウト期間を延長する方法はありますか? コードは次のとおりです。 csv.field_size_limit(sys.maxsize) counter={} with open("/home/alex/Documents/version2/cooccur_list.csv",'rb') as file_name: reader=csv.reader(file_name) for row in reader: if len(row)>1: pair=row[0]+' '+row[1] if pair in counter: counter[pair]+=1 else: counter[pair]=1 print 'finished counting' writer = csv.writer(open('/home/alex/Documents/version2/dict.csv', 'wb')) for key, value in counter.items(): writer.writerow([key, value]) そして、印刷Killed後に発生finished countingし、完全なメッセージは次のとおりです。 killed (program exited with code: 137)
89 python  csv  etl  kill 

2
エラー0xc0202049:データフロータスク1:読み取り専用列への挿入に失敗しました
SQL Server2008のインポートおよびエクスポートウィザードを使用しています。データベースをインポートする必要があります。SQLサーバーのインポート/エクスポートウィザードを開き、次のアクションを実行しました。- 宛先には「SQLサーバーネイティブクライアント10」を選択しました。 次に、1つ以上のテーブルまたはビューからデータのコピーを選択しました。 SSISはすぐに実行されます しかし、私は次のエラーが発生しました、 動作停止... データフロータスクの初期化(成功) 接続の初期化(成功) SQLコマンドの設定(成功) ソース接続の設定(成功) 宛先接続の設定(成功) 検証中(エラー) メッセージエラー0xc0202049:データフロータスク1:読み取り専用列「ActionID」への挿入に失敗しました。(SQL Serverインポートおよびエクスポートウィザード) エラー0xc0202045:データフロータスク1:列メタデータの検証に失敗しました。(SQL Serverインポートおよびエクスポートウィザード) エラー0xc004706b:データフロータスク1:「コンポーネント「Destination-AuditActions」(22)」は検証に失敗し、検証ステータス「VS_ISBROKEN」を返しました。(SQL Serverインポートおよびエクスポートウィザード) ID列とタイムスタンプ列をインポートできないようですが、これらの値を強制的にインポートするにはどうすればよいですか?

2
制約データベース
私は制約プログラミングの背後にある直感を知っているので、制約ソルバーを使用したプログラミングを実際に経験したことはありません。一貫性のあるデータとして定義することを達成できるようになるのは、別の状況だと思いますが。 環境: ETLサーバーに実装する一連のルールがあります。これらのルールは次のいずれかです。 一列に作用します。 行間、1つまたは異なるテーブルでの動作。 2つの実行間で同じように動作します(すべてのデータ、または最後のn回の実行に対して同じ制約を維持する必要があります)。 3番目のケースは、2番目のケースとは異なります。2番目のケースが成立するときに成立しますが、明確に定義された実行数の場合です。これは、1回の実行(1つのファイル)またはその間の(1からn(前の)またはすべてのファイル)に適用できます。 技術的にはETLを考案したため、2つの実行の間にメモリはありません:2つのファイル(ただし、これは再考されます) 3番目の種類のルールを適用するには、ETLにメモリが必要です(データをETLでバックアップすることになると思います)。または、ある時間枠の後でデータベース全体を無限に再チェック(ジョブ)することで、データベースに到達するデータは、必ずしも3番目の種類のルールを時間内に満たす必要はありません。 例: 継続的に流れるデータがありますが、制約されたデータベース全体に制約を適用します。翌日、たとえば1か月のバックアップまたは修正データを受け取ります。この時間枠では、これだけの制約が満たされるようにしたいと考えていますデータベース全体を気にせずに実行(この時間枠)。将来の実行では、過去のデータを気にせずにすべてのデータを以前と同様に制約する必要があります。時相論理に適合する他のルールを想像できます。 現時点では、最初の種類のルールのみが実装されています。私が考えた方法は、以前に基づいた一貫性を参照するフラグを使用してすべてのデータ(制約された列のみ、おそらくハッシュ値で)をバックアップする(あらゆる種類のMySQL、PostgreSQL、MongoDBなどの)縮小データベースを用意することです一種のルール。 質問:このプロセスを容易にする解決策/概念の代替案はありますか? するために、説明クックプログラミング言語で、一連のルールと次のアクションの例: run1 : WHEN tableA.ID == tableB.ID AND tableA.column1 > tableB.column2 BACK-UP FLAG tableA.rule1 AFTER run1 : LOG ('WARN') run2 : WHEN tableA.column1 > 0 DO NOT BACK-UP FLAG tableA.rule2 AFTER run2 : LOG ('ERROR') 注:制約プログラミングは理論的には組み合わせ問題を解決するためのパラダイムですが、実際には問題の開発と実行を高速化できます。これは、制約を解決する問題とは異なると思います。最初の目的は解決前に制約を最適化することではないため、おそらくデータドメインを制限することもありません。主な関心事は、データ受信にルールを適用し、いくつかの基本的なアクションを実行することです(行の拒否、行の受け入れ、ロギング...)。 これが非常に広範な質問ではなく、これが正しい場所であることを本当に望みます。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.