Free Trial

ディスカッション

答えを見つけ、質問し、Alteryx の専門知識を共有してください。
解決済み

改行された複数行のテキストファイルを1行のレコードとして読み込む方法について

Masa23
メテオール

お世話になっております。

他社製品(ETL製品やアドホックな分析製品)の感覚で試しておりますが

基本的なデータ入力の使い方で躓いており、ご助力頂けませんでしょうか?

 

今回、改行されたテキストファイルを1行のレコードとして読み込もうと試みております。

具体的には

(1)Alteryx Designerのデータ入力ツールでSQLファイルを読み込み

(2)フォーミュラツールでSQLステートメントの加工

(3)加工したSQLステートメントを、ファイル出力ツールの「SQLステートメント事前作成/事後作成」に適用(マクロに渡す)

を考えております。

 

ご相談1:

表題の件になります。

データ入力ツールでテキストファイル読み込み時に改行コード(行の区切り)を指定できそうにありませんでした。

改行されたテキストデータを1行で読み込むコツ、ご存じの方いらっしゃいますでしょうか?

 

 

111111.PNG

ご相談2:

ご相談1の件が難しい場合、別の方法を検討しております。

データ入力ツールで読み込んだデータのレコード順序は、元々のファイルのレコード順序を維持してくれるでしょうか?

 

※何パターンか試したところ、レコード順序が崩れることはありませんでした。

※ファイル名の指定時にワイルドカードは使用しておりません。

※複数行で読み込んだレコードを連結する方法(縦横変換後にユニオン処理など)して、1つのSQLステートメントに戻そうとする過程で、そもそもデータ読込時にレコード順序が保持されるのか気になった次第です。

 

 

本件、お詳しい方いらっしゃいましたら、お力添えいただけますと幸いです。

以上となります。よろしくお願いいたします。

4件の返信4
AkimasaKajitani
17 - Castor
17 - Castor

@Masa23 さん

 

ご相談1:

 

 基本的にデータ入力ツールでは改行コードは選択できません。

 Blobツールを使って読み込む方法もありますが、特にそのようなことをしなくても別の手段で可能かと思います。

 

ご相談2:

>データ入力ツールで読み込んだデータのレコード順序は、元々のファイルのレコード順序を維持してくれるでしょうか?

 

 基本的に維持されています。

 

>※複数行で読み込んだレコードを連結する方法(縦横変換後にユニオン処理など)して、1つのSQLステートメントに戻そうとする過程で、そもそもデータ読込時にレコード順序が保持されるのか気になった次第です。

 

 ツールによっては自動的にソートされたり、AMP Engineとオリジナルのエンジン間でもデータの順序の並び方に

 差異があったりしますので、データ入力ツールで読み込んだ直後にレコードIDツールでレコードの並びを一度保存して

 置くのが良いかと思います(順番が重要なところで、RecordIDで並び直せば問題ないかと思います)。

 

 

 基本的に今実現しようとしていることは、

 データ入力ツールでデータ読み込み → 集計ツールで結合 → フォーミュラツール

 といった形になるかと思います。

 

AkimasaKajitani
17 - Castor
17 - Castor

Blobツールを使ってテキストを読み込む方法は、以下のブログ(私の個人ブログです)が参考になるかと思います。

 

https://analytics-x.tech/archives/2803

 

gawa
16 - Nebula
16 - Nebula

データ入力ツールとBlob入力の2パターンでサンプルのワークフロー作ってみました。データ入力ツールでテキストとして読み込む場合、幅の設定が不十分だとデータが見切れることがある点は注意です。

@AkimasaKajitani さんブログのBlob入力の手法が汎用性高いと思われます。

image.png

 

余談ですが、フォーミュラでSQL文を書き換えるのであれば、一行ずつ分割されたレコードにしておくのも、悪くない気がします。(特定の条件に該当する文のみをフィルターしたり、複数行フォーミュラでWHERE句に該当する箇所を特定して、その中だけ変数や閾値を書き換える、などなど)

Masa23
メテオール

AkimasaKajitani様、gawa
ご返信ありがとうございます。

いくつかご紹介いただいた方法を勉強兼ねて試してから、第三者から見ても理解しやすいような構成を選択したいと思います。

 

お忙しいところ、ご教授ありがとうございました。