ucwork

営業出身エンジニア 忘れっぽいので勉強したことをメモっていくスタイル

ucwork

営業出身エンジニア 忘れっぽいので勉強したことをメモっていくスタイル

最近の記事

DockerでGolang最小開発環境構築

最近仕事でちょこちょこGolang書いてるが ある程度環境できた状態でプロジェクトに入ったので 自身の学習のためにもゼロから環境作ってみる Docker環境作成とりあえず「Hello World」出すとこ目標にしようと思う Golangおすすめディレクトリ構成によるとDockerfile系はbuildディレクトリに配置するといいみたいなのでこんな感じ $ tree.├── build│ └── Dockerfile└── cmd └── hello └

    • FlutterのGet startedだけやってみた

      最近お疲れ気味だったので気分転換にFlutter触ってみる Flutterてちらほら目にはしてたけど、いまいちわかってなかったので Get startedだけやってみる とりあえず、「iOS, Androidのアプリを1ソースコードで書ける Googleの作った素敵なフレームワーク JavaScriptではなくDartで書かれてる」くらいのイメージ Flutter SDKをMacにインストール基本的に公式の指示に従うだけ こんな感じでflutterコマンド打てるようにな

      • PyCharmにDocker内でinstallしたrequirements.txtを理解させる

        Dockerコンテナで稼働中のアプリケーションを ローカルのPyCharmで修正してるとimportが読み込まれてなくて 赤線引かれて怒られる ので、PyCharmに読み込ませてみる Dockerfileからimage作成file構成はこんな感じ $ lltotal 24drwxr-xr-x 5 s.uchiyama staff 160 8 23 21:27 ./drwxr-xr-x 3 s.uchiyama staff 96 8 12 23:44 .

        • KubernetesでSeleniumテスト

          何やかんやE2Eテスト自動化したことなかったのでやってみる ぐぐるとKubernetesベースのZaleniumなるツールが出てくるが GitHubのRepository見ると「もう開発してまへん」て書いてあったので Kubernetes Repositoryのsample参考に素直にやってみる ちなみにKubernetesの1pod=1ChromeのようにSelenium動かすことで 時間のかかるE2Eテストも並列実行できて素敵やん!としたい! Minikubeを起動す

        DockerでGolang最小開発環境構築

          dbtをBigQueryで使ってみる

          TimelineでdbtとBigQueryに関する記事が流れてきて そもそもdbtってなんやねんってなったので触ってみる とりあえず公式のTutorialを触ってみる dbtのインストールCloudのEditerかCLIでdbt使えるみたいだけど CLIで触りたいのでローカルにインストールしてみる $ brew tap fishtown-analytics/dbtUpdating Homebrew......Tapped 82 formulae (116 files, 1

          dbtをBigQueryで使ってみる

          VPN(IPsec)によるS3からGCSへのprivateデータ転送

          インターネット(https)経由でのS3->GCSデータ連携パターンは 以下記事で実験したので https://note.com/ucwork/n/n825ac1c96764 https://note.com/ucwork/n/n5fe04382409b 次はインターネットVPN(IPsec)経由でのデータ転送を実験してみる 全体的な流れこんなイメージ 1. AWS, GCP間をVPNで接続しprivate ipでアクセスできるようにする 2. GCSへのアクセスがpri

          VPN(IPsec)によるS3からGCSへのprivateデータ転送

          CloudBuild, ava, GolangでCodecov

          5名までは無料という噂のCodecov導入してみた 事前準備Codecov登録 何はともあれCodecovでSign Up! GitHubアカウントで登録していくとこんな画面にたどり着く トークンの保存 ここで出てきたトークンをSecret Managerに登録しておく Cloud Buildにロール追加 Cloud Buildの設定に表示されるサービスアカウントをIAMで探し 「シークレットマネージャー」->「Secret Managerのシークレットアクセサー」ロー

          CloudBuild, ava, GolangでCodecov

          S3からGCSへのデータ転送(GCPのサービスアカウント鍵渡すパターン)

          AWSのIAM情報をもらって こちらからS3にアクセスするパターンは実験してみたが https://note.com/ucwork/n/n5fe04382409b 次はGCPのサービスアカウント鍵を相手に渡して こちらのGCSに連携してもらうパターンを実験 こちら(GCP側)でやることGCSバケット作成 公式の推奨に従いアクセス制御「均一」でバケット作成 相手の会社に渡すサービスアカウントの作成 特にロールも与えずに作成 鍵をダウンロードしておく バケットにサービス

          S3からGCSへのデータ転送(GCPのサービスアカウント鍵渡すパターン)

          BigQueryのクラスタ使ってみた

          BigQueryのパーティション指定はしたことはあるけど クラスター使ったことなかったので使ってみた クラスターテーブル作成現在、パーティション分割テーブル以外のテーブルではクラスタリングはサポートされていません。 と公式にあるので、dateフィールドをパーティションにして クラスターにしたいフィールドを指定する (最大4つまで指定できるらしい) CREATE OR REPLACE TABLE `[dest_project_id].[dest_dataset].[des

          BigQueryのクラスタ使ってみた

          S3からGCSへのデータ転送(AWSのIAM情報もらうパターン)

          普段はGCP(GCS)ばっかり使ってて 「別クラウドからデータ受領」みたいなことをしたことなかったので 社外のどっかの会社がAWS(S3)にデータを配置してる想定で 社内のGCP(GCS)にデータを転送するシチュエーションをやってみた データ転送パターン1. インターネット(https)経由 a. こちらからAWS(S3)にアクセスしてGCP(GCS)にデータ転送★ b. 相手の会社の担当がAWS(S3)からGCP(GCS)にデータ転送 2. インターネットVP

          S3からGCSへのデータ転送(AWSのIAM情報もらうパターン)

          BigQueryのユーザー毎利用料金をDataPortalに表示する

          BigQueryって油断してると結構お金かかるので 自分への戒めも込めて誰がどれくらい使ってるか可視化してみたかった BigQuery操作ログをBigQueryにシンク誰が何Byteクエリを読み込んだか判別するためにログをBQにシンク GCP Consoleにて「ロギング」「ログ エクスプローラ」を選択 リソースにBigQueryを選択 ログ名にCLOUD AUDITのdata_accessを指定 シンクを作成を選択 シンクに必要な情報を適当に設定 1. シンクの

          BigQueryのユーザー毎利用料金をDataPortalに表示する

          BigQueryで横持ちを縦持ちに変換

          こう言う横持ちになってるテーブルを こう言う縦持ちのテーブルに変えたいと思ったら こんな記事を見つけたのでやってみた 実装してみた上記に書いたようにフィールド名に「d_xx」のような規則性があれば UDFのunpivotを呼び出して縦持ちに変換できた `sample-project.sample.pivot`を自身のプロジェクトのテーブルに変えて 'd_'を自身の規則性に準じたものに変えれば動くはず CREATE TEMP FUNCTION unpivot(x AN

          BigQueryで横持ちを縦持ちに変換

          MiniKFでReusableなComponentを作成

          前回MiniKFでとりあえずPipeline作成してみたけど 次はReusableなComponentを作成してみる 基本前回と同じで「ローカルからGCSにcsvアップロード」「GCSのcsvをBQにロードする」の二つを実現。 Componentに変更を加えなくても、引数GCSのバケット名等指定すればいろんな場所にデータ移行できればいいなという目論見 ディレクトリ構成以下構成で作成 本当はcomponentsディレクトリ作成して、「GCSからBQへロード」みたいな抽象度でc

          MiniKFでReusableなComponentを作成

          ローカルKubeflowのPipelineでGCPを操作する

          MiniKFでローカルにたてたKubeflowのPipelineでGCPを操作してみた とりあえず公式ドキュメントを参考に作成してみた感じ 今回はETL的なイメージで「csvファイルをGCSにアップロード」、「GCSからBQにデータをロード」と言う2stepをパイプラインで実現 csvをGCSにアップロードComponent作成基本ディレクトリ構成はベスプラ参考にしてこんな感じ (100MB以上あるcsvとかはgitで管理できないんのでgit-lfsあたりを導入 comp

          ローカルKubeflowのPipelineでGCPを操作する

          ローカルのKubeflowからGCPに接続

          前回Kubeflow触ってからしばらく時間が経ったが 仕事もドタバタしてなかなか触れなかった・・・ 今回は前回作ったMiniKF上のKubeflow(Jupyter Notebook)からGCPのBigQueryに接続してみるの巻 GCPサービスアカウントの作成&鍵のダウンロードGCPコンソールかコマンドライン から 「BigQuery 管理者」役割を付与したサービスアカウント を作成し、json形式の鍵をダウンロードする サービスアカウントの鍵情報を保持したSecret

          ローカルのKubeflowからGCPに接続

          KubeflowではJupyter NotebookからKubernetes操作できるみたい

          以下公式ドキュメントにあるように Jupyter NotebookからKubernetesのリソースを操作できるらしい やってみる !を頭に付けるとシェルスクリプト として認識されるらしいので 以下の通り実行すると起動中のpod一覧が表示された !kubectl get pods マニュフェスト yamlファイル作成してkubectl createすると Kubernetesのresource作成もできるみたい !kubectl create -f myspec.y

          KubeflowではJupyter NotebookからKubernetes操作できるみたい