X

Author Profile

Miki Kawauchi

Recent Posts by Miki Kawauchi

Big Data SQL - Semi-structured data

以前の投稿で、Schema on ReadとSchema on Writeの長所短所について触れました。結論として、HDFSはデータをオリジナルフォーマットで置いておくのに適していることが分かりました。時折、ユーザはXMLやJSONのような半構造化データ(semi-structured data)を持ちます。今回は、それをどのように扱うかを紹介します。 半構造化データのユースケース HDFS上に半構造化データを格納する一般的なユースケースのひとつは、全てのオリジナルデータを格納し、そのうち部分的にリレーショナルデータベースに移動することです。これは日常的にはデータの一部が必要だが、その他の部分は極めて稀にアクセスされる(深い分析に必要になるかも知れない)ということかもしれません。例えば、以下のようなXMLフォーマットがあります。 ... ... ... ... ... 日常的には、リレーショナルデータベースで名前と年齢のみ必要: Name Age ---- ---- .... .... 他の列はごくまれにア...

Big Data SQL - マルチユーザー認証

Big Data SQLのメリットの1つは、セキュリティです。Oracle Databaseを利用して、HDFSやその他のソースに格納されたデータを処理します。そのため、Data Redaction、VPD、Database Vaultなどの多くのデータベース機能を適用できます。これらの機能は、データベース・スキーマと権限を組み合わせて、侵入者がデータベース側からデータにアクセスしようとする場合、データを保護します。 しかし、HDFSに格納されたデータは、他の目的(Spark、Solr、Impala…)で使用される場合もあり、他のメカニズムで保護する必要もあります。Hadoopの世界では、Kerberosがデータ保護の最も一般的な認証方法です。KerberosとHDFS ACLを組み合わせて、ファイルシステムレベルでデータを保護できます。ファイルシステムとしてのHDFSは、ユーザーとグループの概念を持ち、所有者、グループ、その他のユーザーにそれぞれの権限を付与できます。   結論:Kerberizedクラスタを使用する場合、Big...

Big Data SQL - Partition Pruning

パーティションはデータウェアハウスやあらゆる種類のデータベースで共通のテクニックです。読者の皆さんはパーティションとは何か?ということはよくご存知だと思うので割愛します。必要に応じてOracle RDBMSの例を参照下さい。 Hiveパーティション Hiveは元々HDFS上にMapReduceでWriteするための簡単な方法として開発されました。HDFSはファイルシステムで、Linuxライクな構造を持ちます。従って、パーティションと見なすのはとても簡単で、サブディレクトリにするだけです。ここで2つの表を挙げます。大きなファクト表:STORE_SALESと、小さなディメンジョン表:DATE_DIMです。それらは以下の関係を持ちます。   ファクト表(STORE_SALES)は明確な時刻識別子は持たないが、ディメンジョン(dictionary)との関係性がありDATA_DIM表で明確にデータ定義されています (d_domは日、d_moyは月、d_yearは年)。ではパーティション化されたSTORE_SALES表を作成しましょう。 SQL> CREATE...