ディスカッション

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

ODBC Driverを使ってBOX内のCSVを読込むには

湯寧
アステロイド

CDataのツールCSV ODBC Driverを使ってBOX内のCSVを読み込んでいますが、

データの最初の行は列名になっており、それが列名にならない方法がありますか?

設定画面とSQLのクエリを添付いたします。

 

また、BOX内の複数のCSVをワイルドカードで読み込みたいですが、方法がありますか?

BOXの入力_1.jpgBOXの入力_2.jpg

8件の返信8
Yoshiro_Fujimori
16 - Nebula
16 - Nebula

@湯寧 さん

データの最初の行は列名になっており、それが列名にならない方法がありますか?

すでに結果ウィンドウのレコード1は列名ではなくデータになっていますが、どういう出力を期待していますか?

データ出力ツールで "Skip Field Names" をオンにすることで出力データのヘッダ行を出さないようにすることはできます。

 

>BOX内の複数のCSVをワイルドカードで読み込みたいですが、方法がありますか?

これは SQL文を工夫することで対応できると思います。

DBMSによって書き方が異なりますが、BOXは SQL Server や MySQL をサポートしているようなので

生成AI に「SQLで同じスキーマのテーブルをワイルドカードで読み込む方法」などと質問して試してみることをお勧めします。

湯寧
アステロイド

ご返信ありがとうございます。

最初の入力段階で、現在の結果ウィンドウの列名をレコード1に表示させたいことです。

現在の列名は元々の測定データの一番最初のデータで、見出しではないですので、見出しとして入力されたくないということです。

 

BOX内の複数のCSVをワールドカードで読み込む方法を生成AIに聞いてみます。

アドバイスありがとうございました。

 

Yoshiro_Fujimori
16 - Nebula
16 - Nebula

BOXを使っていないのでわかりませんが、

>現在の列名は元々の測定データの一番最初のデータで、見出しではない

とは、ソースデータがヘッダの行を持っていないCSV形式だということでしょうか。

 

そうだとすると、そういうCSVは ODBC Driver ではなく Box Input Tool を使うべきかと思いますが、そうできない理由があるのでしょうか?

Box Input Tool - CSV File Format Configurations

First row contains field name というオプションがありますので、これをオフにして読めば1行目もデータとして読み込まれると思います。

(デフォルトもオフのようです)

 
AkimasaKajitani
17 - Castor
17 - Castor

@Yoshiro_Fujimori さん

 

CDataのドライバのようなので、それはそれで一つの手段かとは思います。

ちなみに、Box Input toolはあまり良い話を聞かないのであまりおすすめできないです・・・(つなぐまでのセキュリティ等の設定が結構めんどくさくて、動いても安定しないという話を聞いたことがあります。ちなみに、Boxの契約が無料の場合は使えませんでした)。

 

@湯寧 さん

 

BoxはBox Driveで利用されている方の話はよく聞いており、こちらで比較的安定的に利用されている方が多いので、Box Driveも検討してみてください(若干、データの同期で時間がかかることがありますが・・・)。

 

あと、CDataさんに直接聞かれた方が良いかと思います(有償のドライバだと思うので、テストも難しいので・・・)。

 

 

湯寧
アステロイド

ご返信ありがとうございます。

大変参考になりました。

 

弊社の特別な事情で、Box Driveを使えないです。

また、Box Input Toolも並行して検討していますが、仰る通りセキュリティの設定に時間がかかっています。

 

本件について、CDataにもお問合せしています。

 

色々アドバイス頂き、ありがとうございました。

Yoshiro_Fujimori
16 - Nebula
16 - Nebula

@AkimasaKajitani さん

ご教示いただきありがとうございます。

 

@湯寧 さん

そういうことで、あらためて以下の課題を検討しました。

>現在の結果ウィンドウの列名をレコード1に表示させたい

 

単純に入力されたデータの列名を抽出して1行目に追加するサンプルワークフローを作りました。

colNameToFirstRow.png

ご参考になれば。

AkimasaKajitani
17 - Castor
17 - Castor

BoxはAPIもあるため、Box Inputツールがうまくいかない場合はAPIも検討してみてください。ただ、Box Inputツールは結局裏でAPIを通じてアクセスしているので・・・。いずれにしても、めんどくさいセキュリティをなんとかする必要があります。

 

Box API

https://ja.developer.box.com/reference/

AkimasaKajitani
17 - Castor
17 - Castor

@湯寧 さん

 

Box ODBCのドキュメントによると、特定の文字列をファイル名に含むファイル一覧の取得は、以下のようなSQLで可能なようです。

SELECT * FROM Files WHERE SearchTerms LIKE '%untitled%'

https://cdn.cdata.com/help/BBK/jp/odbc/pg_table-files.htm

 

ODBCドライバなので、基本的にデータベースと同じ考え方になります。基本ドライバ自体になにか特殊なオプションがあるわけではなく、すべてSQLでアクセスしてやりたいことを行う必要があります。

 

マニュアルを少しみた感じですと、FilesやFoldersというテーブルがあってそこにBox内のファイルやフォルダーのリストが入っているように思います。

 

リストが取得できれば、あとはバッチマクロで複数ファイルを一気に読み込んだり、ということが可能です。