dak ブログ

python、rubyなどのプログラミング、MySQL、サーバーの設定などの備忘録。レゴの写真も。

Rocky Linux に gcloud CLI をインストール

2024-07-28 00:25:50 | linux

Rocky Linux に gcloud CLI をインストールする方法のメモ。

以下を参考にインストールします。
https://cloud.google.com/sdk/docs/install-sdk?hl=ja#rpm

$ sudo tee -a /etc/yum.repos.d/google-cloud-sdk.repo << EOM
[google-cloud-cli]
name=Google Cloud CLI
baseurl=https://packages.cloud.google.com/yum/repos/cloud-sdk-el9-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=0
gpgkey=https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
EOM
$ sudo yum install google-cloud-cli

インストール後に gcloud init を実行します。

$ gcloud init

コマンドラインで GCP の機能を利用するには以下を実行します。

$ gcloud config set project {project_id}

BigQuery で実行中のジョブをキャンセル

2024-07-25 21:14:45 | BigQuery

BigQuery で実行中のジョブをキャンセルする方法のメモ。


実行中のジョブ一覧

以下でジョブ一覧を出力することができる。

bq ls --jobs

実行結果例

             jobId               Job Type    State      Start Time         Duration
 ------------------------------ ---------- --------- ----------------- ----------------
  bquxjob_3ba5c31b_190e9c1dd8a   query      RUNNING   25 Jul 20:58:34
  bquxjob_63ac3918_190e9bf7161   query      SUCCESS   25 Jul 20:55:55   0:02:00.769000
...

ジョブ情報の表示

以下でジョブに関する情報を表示することができる。

show --job "{project_id}:{location}.{job_id}" 

実行結果例

{project_id}:bquxjob_3ba5c31b_190e9c1dd8a

  Job Type    State      Start Time      Duration         User Email         Bytes Processed   Bytes Billed   Billing Tier   Labels
 ---------- --------- ----------------- ---------- ------------------------ ----------------- -------------- -------------- --------
  query      RUNNING   25 Jul 20:58:34              {user_email}


ジョブのキャンセル

以下でジョブをキャンセルすることができる。

bq cancel "{project_id}:{location}.{job_id}"

実行結果例

Waiting on bquxjob_3ba5c31b_190e9c1dd8a ... (16s) Current status: DONE
Job {projecct_id}:bquxjob_3ba5c31b_190e9c1dd8a

  Job Type    State      Start Time         Duration            User Email         Bytes Processed   Bytes Billed   Billing Tier   Labels
 ---------- --------- ----------------- ---------------- ------------------------ ----------------- -------------- -------------- --------
  query      FAILURE   25 Jul 20:58:34   0:03:16.366000   {user_email}            0                 0              1


Error encountered during job execution:
Job execution was cancelled: User requested cancellation

Job has been cancelled successfully.

ジョブ一覧では以下のように FAILURE となる。

bq ls --jobs

             jobId               Job Type    State      Start Time         Duration
 ------------------------------ ---------- --------- ----------------- ----------------
  bquxjob_3ba5c31b_190e9c1dd8a   query      FAILURE   25 Jul 20:58:34   0:03:16.366000
  bquxjob_63ac3918_190e9bf7161   query      SUCCESS   25 Jul 20:55:55   0:02:00.769000
  bquxjob_c547e29_190e9b61dd7    query      SUCCESS   25 Jul 20:45:44   0:00:10.844000

BigQuery で sleep する方法のメモ

2024-07-25 20:49:44 | BigQuery

BigQuery で Cloud SQL(MySQL)の sleep() を使って sleep する方法のメモ。


BigQuery から Cloud SQL に接続する方法

BigQuery で「+追加」をクリックし、「外部データソースへの接続」から DB への外部接続を設定。

上記で作成した外部接続の接続情報から、サービスアカウントIDをコピー。

「IAM と管理」メニューで「アクセス件を付与」をクリックし、「新しいプリンシパル」にコピーしたサービスアカウントIDをペースト、ロールに「Cloud SQL クライアント」を指定して「保存」。


BigQuery から Cloud SQL のクエリを実行

Cloud SQL で sleep() を実行することで、BigQuery で sleep することができる。

ただし、Cloud SQL への接続や BigQuery のオーバーヘッドなどで、sleep に指定した秒数よりも実行時間は長くなる。

select
  *
from
  external_query(
    "{外部接続の接続ID}",
    "select sleep({秒数});"
  )
;

外部接続の接続IDは、「接続情報」の「接続ID」に表示される projects/.../locations/.../connections/... の形式か、{ロケーション}.{接続ID} の形式。


JavaScript UDF 等で sleep したかったのですが、実現できなかったため、この方法を試してみました。


grep で除外対象のディレクトリを指定する方法

2024-07-23 00:04:04 | SVG

grep で除外対象のディレクトリを指定する方法のメモ。

$ grep -r abc
dir1/test1.txt:abc
dir3/test3.txt:abc
dir4/test4.txt:abc

--exclude-dir オプションで除外対象のディレクトリを指定することができます。

$ grep -r abc --exclude-dir=dir3
dir1/test1.txt:abc
dir4/test4.txt:abc

--exclude-dir オプションは複数個指定することができます。

$ grep -r abc --exclude-dir=dir3 --exclude-dir=dir4
dir1/test1.txt:abc

less でタブの幅を変更

2024-07-17 23:09:35 | linux

less コマンドでタブの幅を変更する方法のメモ。

以下のファイルをタブの幅を変更して表示します。

1234567890123456789
abc
{TAB}def
{TAB}{TAB}ghi

less -x{num} でタブを num 個分の空白文字に変更できます。

$ less -x8 test.txt
1234567890123456789
abc
        def
                ghi
$ less -x4 test.txt
1234567890123456789
abc
    def
        ghi
$ less -x2 test.txt
1234567890123456789
abc
  def
    ghi

Virtual Box を使って Windows で Rocky Linux を起動

2024-07-15 15:25:31 | linux

Windows に Virtual Box をインストールして Rocky Linux を動かしてみました。

python

VirtualBox のインストールに必要な python をインストール

  • python.org で windows 版 python をダウンロード。
    https://www.python.org/downloads/windows/
  • インストーラを実行してインストール。
    初期画面で path の追加にチェックしておく
  • コマンドプロンプトを起動し、以下で win32api をインストール。
    pip install pywin32

OS イメージ

  • 以下で Rocky Linux をダウンロード。
    https://rockylinux.org/ja/download

Virtual Box

  • 以下で Virtual Box の Windows インストーラをダウンロード。
    https://www.oracle.com/jp/virtualization/technologies/vm/downloads/virtualbox-downloads.html
  • インストーラを実行して Virtual Box をインストール。
  • Virtual Box を起動し、Rocky Linux の iso イメージファイルから Rocky Linux をインストール。
  • インストール中に root のパスワード設定と、ユーザ作成時に管理者設定を行う。
  • Virtual Box の 設定 > ネットワーク > 割り当て で「ブリッジアダプター」を指定。
  • IP アドレスの確認のため、Rocky Linux のコンソールで ifconfig をインストール
    sudo yum install net-tools

BigQuery の ml.generate_text() で temperature を指定する方法

2024-07-02 00:29:40 | BigQuery
BigQuery の ml.generate_text() で temperature を指定する方法のメモ。
temperature は以下にあるように AI の回答のランダム性の度合いに影響します。

https://cloud.google.com/vertex-ai/generative-ai/docs/model-reference/text?hl=ja
温度は、トークン選択のランダム性の度合いを制御します。温度が低いほど、確定的で自由度や創造性を抑えたレスポンスが求められるプロンプトに適しています。一方、温度が高いと、より多様で創造的な結果を導くことができます。温度が 0 の場合、確率が最も高いトークンが常に選択されます。この場合、特定のプロンプトに対するレスポンスはほとんど確定的ですが、わずかに変動する可能性は残ります。

BigQuery で生成AIでテキストを生成する際に、以下のようにして temperature を指定することができます。
select
  *
from
  ml.generate_text(
    model `test_dataset.generative_model`
    , (select 'BigQuery ML の temperature はどんな効果がありますか' as prompt)
    , struct (
        0.2 as temperature
        , true as flatten_json_output
      )
  )
;
実行結果
[{
  "ml_generate_text_llm_result": "## BigQuery の今後の展望\n\nBigQuery は、Google Cloud Platform のサーバーレスデータウェアハウスです。ペタバイト規模のデータを高速かつ効率的に処理できるため、多くの企業で利用されています。\n\nBigQuery の今後の展望としては、以下の点が挙げられます。\n\n* **さらなる高速化とスケーラビリティの向上**: Google は、BigQuery のパフォーマンスを継続的に向上させています。今後も、より高速なクエリ処理や、より大規模なデータセットの処理を可能にする機能が追加される予定です。\n* **機械学習機能の強化**: BigQuery は、すでに機械学習機能",
  "ml_generate_text_rai_result": "[{\"category\":1,\"probability\":1,\"probability_score\":0.018978037,\"severity\":1,\"severity_score\":0.040692952},{\"category\":2,\"probability\":1,\"probability_score\":0.011508148,\"severity\":1,\"severity_score\":0.059537489},{\"category\":3,\"probability\":1,\"probability_score\":0.13296424,\"severity\":1,\"severity_score\":0.097906686},{\"category\":4,\"probability\":1,\"probability_score\":0.030271869,\"severity\":1,\"severity_score\":0.02811406}]",
  "ml_generate_text_status": "",
  "prompt": "BigQuery の今後の展望を教えてください"
}]
"0.2 as temperature" を "1.0 as temperature" に変更した場合の実行結果
1.0 の方がより創造的な回答をしていると思われます。
[{
  "ml_generate_text_llm_result": "## BigQuery の今後の展望\n\nBigQueryは常に進化を続けており、今後も様々な新機能が追加される予定です。以下は、BigQueryの今後の展望に関する主なポイントです。\n\n### リアルタイム分析の強化\n\n* **ストリーム分析機能の向上:** BigQueryはリアルタイム分析を可能にする BigQuery ストリーム機能を備えていますが、今後もその機能が強化される予定です。これには、より高速なデータ処理や、より豊富な分析機能の追加などが含まれます。\n* **機械学習の活用:** リアルタイム分析と機械学習を組み合わせることで、より高度な分析が可能",
  "ml_generate_text_rai_result": "[{\"category\":1,\"probability\":1,\"probability_score\":0.018905448,\"severity\":1,\"severity_score\":0.040464837},{\"category\":2,\"probability\":1,\"probability_score\":0.014559518,\"severity\":1,\"severity_score\":0.063250519},{\"category\":3,\"probability\":1,\"probability_score\":0.089454599,\"severity\":1,\"severity_score\":0.076960839},{\"category\":4,\"probability\":1,\"probability_score\":0.042483207,\"severity\":1,\"severity_score\":0.02811406}]",
  "ml_generate_text_status": "",
  "prompt": "BigQuery の今後の展望を教えてください"
}]