7

この sql リクエストに相当するものを Hive に書きたい:

select * from information_schema.columns where table_schema='database_name'

ハイブのメタストアにアクセスして、特定のデータベースに格納されているすべてのテーブルのすべての列を取得するにはどうすればよいですか? describe [table_name] を介してテーブルごとに実行できることはわかっていますが、データベース内のすべてのテーブルのすべての列を同じリクエストで取得する方法はありますか?

4

2 に答える 2

5

Hive メタデータを返すようなクエリを実行する機能が必要な場合は、MySQL で Hive メタストアをセットアップできます。Hive で使用されるメタデータは、MySQL の特定のアカウントに保存されます。

を実行して、ハイブ用の MySQL のユーザーを作成する必要がありますCREATE USER 'hive'@'metastorehost' IDENTIFIED BY 'mypassword'

COLUMNS_VS次に、探している情報のようなテーブルが見つかります。

すべてのテーブルのすべての列を取得するクエリの例は、次のようになります。SELECT COLUMN_NAME, TBL_NAME FROM COLUMNS_V2 c JOIN TBLS a ON c.CD_ID=a.TBL_ID

または、 WebHCatへのREST 呼び出しを介してこの情報にアクセスすることもできます。詳細については、 wikiを参照してください。

于 2015-10-15T16:53:46.243 に答える