Python 計算ノードを開発する場合、ビジネスシナリオに合わせてリソースパッケージをインストールする必要がある場合があります。Dataphin は、import <package_name> 文をコードの先頭に追加することで使用できるプリインストール済みリソースパッケージを提供します。例: import configparser。
組み込みリソースパッケージのリスト
次の表に、Dataphin に組み込まれているリソースパッケージを示します。Shell 計算ノードで pip list コマンドを実行して、組み込みパッケージモジュールを表示することもできます。
リソースパッケージ | バージョン | シナリオ |
configparser | >=3.5.0 | 構成ファイルを読み取ります。 |
DateTime | なし | データ処理。 |
hdfs | >=2.1.0 | Hadoop コンピュートエンジンで HDFS を使用します。 |
jumpssh | なし | ジャンプサーバーを使用してサーバーに接続します。 |
mysql-connector-python | >=8.0.11 | MySQL に接続して操作します。 |
numpy | なし | 基本的なアルゴリズム処理。 |
pandas | なし | 基本的なアルゴリズム処理。 |
psycopg2 | >=2.7.4 | PostgreSQL に接続して操作します。 |
pyhdfs | >=0.2.1 | Hadoop コンピュートエンジンで HDFS を使用します。 |
pyhs2 | >=0.6.0 | HDFS に接続して操作します。 |
pyodps | >=0.7.16 | ODPS 操作を実行します。 ODPS に適しています。 |
pyspark | >=2.3.1 | Hadoop コンピュートエンジンで Spark を使用します。 |
requests | >=2.4.0 | 基本的なアルゴリズム処理。 |
scikit-learn | なし | 基本的なアルゴリズム処理。 |
scipy | なし | 基本的なアルゴリズム処理。 |
setuptools | >=3.0 | 基本的な Python 機能ライブラリ。 |
yarn-api-client | >=0.2.3 | Yarn API クライアント。 |
Matplotlib | なし | 基本的なアルゴリズム処理。 |
Dataphin で PyHive と PyOdps を使用する
Dataphin では、 PyHive と PyOdps をローカルで使用することも、オブジェクトハンドルを使用して使用することもできます。オブジェクトハンドルを使用するには、from dataphin import odps 文と from dataphin import hivec 文を使用してインポートします。オブジェクトハンドルを使用すると、ローカルで使用した場合に発生する可能性のある次の問題を回避できます。
Hive がユーザー名とパスワードによる認証を使用する場合、開発者は認証情報を取得する必要があり、漏洩のリスクが高まります。また、ユーザー名とパスワードが変更された場合は、プログラムまたは変数を同期する必要があります。
Hive の Kerberos 認証を簡素化します。標準実装は複雑であり、keytab ファイルの漏洩や変更の問題などのリスクが生じます。
Dataphin はユーザーを認証できず、その権限システムをバイパスできます。
論理テーブルに対するクエリはサポートされていません。
PyHive と PyOdps 構文の範囲
物理テーブルのクエリ。
論理テーブルのクエリ。
システム関数とユーザー定義関数 (UDF) の呼び出し。
空間変数名の置き換え。たとえば、
${project_name}と${LD_name}は実際の名称に置き換えられます。グローバル変数とローカル変数の使用。
物理テーブルと論理テーブルに対するデータ操作言語 (DML) 文の使用。
物理テーブルに対するデータ定義言語 (DDL) 文の使用。
オブジェクト認証の使用。
hivec でサポートされているメソッド
次のコードを使用して、hivec のメソッドを表示できます。
from dataphin import hivec
print(dir(hivec)) hivec のメソッドは、pyhive.hive.Cursor の対応する名前のメソッドと同じです。
SQL 文の実行:
executeすべてのクエリ結果をフェッチする:
fetchall指定された数のクエリ結果をフェッチする:
fetchmany1 つのクエリ結果をフェッチする:
fetchoneカーソルと接続を閉じる:
close
使用例
Hadoop コンピュートエンジン
Dataphin の外部では、通常は PyHive をインストールしてから、hive パッケージを import を使用してインポートし、Hive に接続して対話します。次のコードは例です。
# パッケージのロード
from pyhive import hive
# 接続の確立
conn = hive.connect(host = '100.100.***.100', # HiveServer
port = 10000, # ポート
username = 'xxx', # ユーザー名
database = 'xxx', # データベース
password = 'xxx') # パスワード
# クエリ
cursor = conn.cursor()
cursor.execute('select * from table limit 10')
for result in cursor.fetchall():
print(result)
# 接続を閉じる
cursor.close()
conn.close()Dataphin では、Python 計算ノードで Hive を直接操作できます。これを行うには、from dataphin import hivec 文を使用して、プリインストール済みのリソースパッケージをインポートします。次のコードは例です。
# パッケージのインポート
from dataphin import hivec
# SQL 文の実行
hivec.execute("SELECT * FROM ${project_dev}.table WHERE ds != 0")
# SQL 結果の出力
for result in hivec.fetchall():
print(result)MaxCompute コンピュートエンジン
MaxCompute コンピュートエンジンを使用する場合、Python 計算ノードで MaxCompute を操作できます。これを行うには、from dataphin import odps 文を使用して、プリインストール済みのリソースパッケージをインポートします。次のコードは例です。
# パッケージのロード
from dataphin import odps
# SQL 文の実行
odps.run_sql('SELECT * FROM ${project_dev}.table WHERE ds != 0')
# 次のコードは結果を出力します
with odps.execute_sql('select 1').open_reader() as reader:
for record in reader:
print(record)