2023-03-01から1ヶ月間の記事一覧

【Scala】ScalaTest ~ with Mockito ~

■ はじめに https://dk521123.hatenablog.com/entry/2023/03/27/001306 https://dk521123.hatenablog.com/entry/2023/03/28/003906 https://dk521123.hatenablog.com/entry/2023/03/29/000014 の続き。 Scala の単体試験で、ScalaTest をベースにやってきた…

【Power Apps】Power Apps ~ 基本編 / Collection ~

■ はじめに https://dk521123.hatenablog.com/entry/2023/02/05/000322 https://dk521123.hatenablog.com/entry/2023/02/06/144231 https://dk521123.hatenablog.com/entry/2023/02/07/001115 の続き。 今回は、Power Appsにおいて、 配列・リストに当たるCo…

【Scala】ScalaTest ~ with ScalaCheck ~

■ はじめに https://dk521123.hatenablog.com/entry/2023/03/27/001306 https://dk521123.hatenablog.com/entry/2023/03/28/003906 の続き。 今回は、ScalaTest + ScalaCheck (org.scalatestplus) を使って プロパティベーステスト (Property Based Testing;…

【Scala】ScalaTest ~ 基本編 ~

■ はじめに https://dk521123.hatenablog.com/entry/2023/03/27/001306 の続き。 今回は、Scalaの単体試験する際に ScalaTest を使用した時のTipsについてまとめる 目次 【1】初期処理・後処理 1)BeforeAndAfter 2)BeforeAndAfterAll 【2】一時的テス…

【Scala】ScalaTest ~ 入門編 ~

■ はじめに ここ最近、狂ったように、プログラムや調べものをしてきたが とりあえず、最低限やれることが調べたので、後はブラッシュアップさせていきたい、、、 っと思ったのだが、単体試験のことを忘れていたので、調べてみた。 目次 【0】Scalaのテスト…

【Scala】Scala ~ JDBC / DB接続 ~

■ はじめに SparkからSnowflakeへの接続について考える https://dk521123.hatenablog.com/entry/2023/03/19/013833 で、JDBCでもSnowflakeにアクセスすることに触れたが 今回は、ScalaでJDBCドライバからDBにアクセスすることについて触れる 目次 【1】JDBC…

【Docker】Docker compose ~ LocalStack/Glue4.0 ~

■ はじめに Spark/Scalaの開発環境構築 ~ Windows編 ~ https://dk521123.hatenablog.com/entry/2023/03/20/115450 で、『本当は、Dockerで一発でばーんって作りたい、、、』って 言ったのだが、それを実践してみた 以前やった https://dk521123.hatenablog…

【Scala】Scala ~ AWS SDK ~

■ はじめに AWS Glue で Scala を使うことになって悪戦苦闘中なのだが Scalaの実装のしにくさとして、 Pythonのように便利な boto3 がある訳ではないので調べてみた。 とりあえず、以下のサービスを利用したい。 ~~~~~ + S3 + Secrets Manager + SES ~~~~~ …

【Scrum】スクラム開発 ~ 基本編 / 振り返り ~

■ はじめに https://dk521123.hatenablog.com/entry/2021/02/19/000000 でスクラムに関するイベントを扱ったが、 振り返り(レトロスペクティブ )について、 Fun/Done/Learn(ファン・ダン・ラン)ってのを学んだのでメモ。 目次 【1】スプリント レトロス…

【Scala】SBT ~ 入門編 ~

■ はじめに Scala を初めて、SBTについて今まで何となくやっていたが ちゃんと勉強しないとまずいと感じたので、メモ。 目次 【0】環境設定 【1】ビルドツール「sbt」 1)主な機能 2)sbt の処理の流れ 【2】フォルダ構成 1)build.sbt 2)build.prop…

【Scala】Scala ~ 基本編 / ジェネリック <T> ~

■ はじめに https://dk521123.hatenablog.com/entry/2023/03/16/012034 で YAMLファイルを扱った。ここで作成した 「例2:独自クラスにマッピングする」「例3:別YAML&リファクタリング」 を、どのクラスでも使えるようにしたい。 そこで、その第一歩とし…

【Scala】Spark/Scalaの開発環境構築 ~ Windows編 ~

■ はじめに https://dk521123.hatenablog.com/entry/2019/09/18/214814 で、Windows で Spark の実行環境を構築した。 で、最近、AWS Glue4.0になり、Sparkのバージョンもv3.3.0になり かつ、今の仕事で、Scalaを使うことになった。 そこで、今回は、「Windo…

【Snowflake】SparkからSnowflakeへの接続について考える

■ はじめに AWS Glue(Spark) から Snowflake へ接続する必要がでてきたので 方法について、調べてみた 目次 【0】単純にSQLを実行する 【1】Sparkコネクタ 【2】全体構成 【3】転送モード 1)内部転送 2)外部転送 【4】Snowflakeコネクタの設定 1…

【Scala】Scala ~ 基本編 / 正規表現 ~

■ はじめに Scala が慣れない、、、 今回は、Scala の 正規表現 (regular expression) について扱う。 正直、めちゃくちゃ、いまいち、、、 Javaの正規表現メソッド使った方がいいかも、、、 目次 【0】正規表現オブジェクト 1)メソッド 【1】抽出 【2…

【AWS】AWS Glue ~ Scalaでの実装 ~

■ はじめに AWS Glue は、3年以上使っていて、その際は、PythonでGlue jobを記述していた。 今、行っている仕事で、Scalaを使ってPoC(Proof of Concept:概念実証) をすることになったので、調べてみた。 別件:Glue4.0 ってゆーかーいつの間にGlue4.0がリ…

【Scala】Scala ~ YAML ~

■ はじめに Scala で YAMLファイルを扱う方法を扱う 目次 【1】YAML用ライブラリ「org.yaml.snakeyaml.Yaml」 1)設定 2)API仕様 【2】サンプル 例1:Hello World 例2:独自クラスにマッピングする 例3:別YAML&リファクタリング 【1】YAML用ライ…

【AWS】AWS Glue ~ Glue Version 4.0 ~

AWS

■ はじめに https://dk521123.hatenablog.com/entry/2023/03/17/000000 で調査する過程で、 Glue4.0 がリリースしていることが分かったので、調べてみた 目次 【1】リリース時期 1)メモ:Legacy pagesのJobからは選択できない 【2】各バージョンの更新 …

【Scala】Scala ~ 基本編 / クラス ~

■ はじめに https://dk521123.hatenablog.com/entry/2023/03/10/193805 https://dk521123.hatenablog.com/entry/2023/03/12/184331 の続き。 今回は、クラス周辺について扱う。 試す環境 https://scastie.scala-lang.org/CEpZy3v4Taa0MCStp3LCYg 目次 【1】…

【Scala】Scala ~ 基本編 / コレクション ~

■ はじめに https://dk521123.hatenablog.com/entry/2023/03/10/193805 https://dk521123.hatenablog.com/entry/2023/03/12/184331 の続き。 今回は、配列やコレクションについて扱う。 試す環境 https://scastie.scala-lang.org/CEpZy3v4Taa0MCStp3LCYg 目…

【Scala】Scala ~ 入門編 ~

■ はじめに https://dk521123.hatenablog.com/entry/2023/03/10/193805 の続き。 Scalaで開発することになりそうなので 予習してたら、Javaと比べて、結構、変わっていた。 まずは、簡単な文法から整理していく なお、以下のサイトで動作確認しながらやると…

【Scala】Scala ~ ファイル名・パスの扱い ~

■ はじめに Scala の ファイル名・パスの扱いについて書き溜めていく 【1】ファイル名取得 import java.io._ val targetPath = "s3://your-bucket/hello/world/test.csv" val targetFile = new File(targetPath) val fileName = targetFile.getName() // Fi…

【Scala】Scala ~ 環境構築編 ~

■ はじめに https://dk521123.hatenablog.com/entry/2023/03/01/235100 https://dk521123.hatenablog.com/entry/2023/03/05/235755 で、Apache Flink について、触れたが、 Scalaで書かれていることを触れた。 もし、採用された場合、Scalaで開発することに…

【Scala】Scala ~ 基本編 / Option型 ~

■ はじめに 開発中だが、バグったので整理。 目次 【1】Option型 1)Some 2)None 【2】NULLおよび混同しそうなキーワード 1)null 2)None 3)Nothing 4)Nil 【1】Option型 * 値があるかないかを表す型 * 2種類のサブクラスを持っている 1)Some…

【Scala】Scala ~ 基本編 / 日付・日時 ~

■ はじめに 今回は、Scala の 日付/日時の扱いについて触れる。 徐々に書き溜めていく、、、 目次 【1】日付/日時フォーマット 【1】日付/日時フォーマット import java.util.Date val date1 = "%tY%

【AWS】Amazon Redshift ~ SHOW TABLE コマンド ~

AWS

■ はじめに 小ネタ。 調査で、AWS Redshift について触ることが多くて 既存のテーブルのDDL(CREATE TABLE文)が欲しいとの依頼があったので 調べてみた 目次 【1】SHOW TABLE コマンド 【2】構文 【3】実行例 【4】SHOW TABLE コマンドで CREAT TABLE文…

【AWS】Amazon Redshift ~ システムビュー ~

AWS

■ はじめに https://dk521123.hatenablog.com/entry/2023/03/02/230435 の続き。 今回は、Redshift に関するシステムビューについて、まとめる。 目次 【0】システムビュー 【1】STL ビュー 1)STL_SCAN 2)STL_QUERY 【2】SVCS ビュー 【3】SVL ビュ…

【Flink】Apache Flink ~ 環境構築編 ~

■ はじめに https://dk521123.hatenablog.com/entry/2023/03/01/235100 の続き。 今回は、Apache Flinkの開発環境を整える 目次 【1】サポートOS 【2】Windows での環境構築について 失敗談1:.bat での実行 失敗談2:Cygwin での実行 【3】環境構築手…

【Snowflake】Snowflakeのパフォーマンス改善 ~ クラスタリングキー ~

■ はじめに https://dk521123.hatenablog.com/entry/2022/12/07/111847 https://dk521123.hatenablog.com/entry/2023/02/27/120943 の続き。 今回は、クラスタリングキーおよび その周辺に関わるマイクロパーティションについて 自分なりにまとめてみる 目次…

【Scala】Scala ~ 基本編 / メソッド ~

■ はじめに Scala が慣れない、、、 今回は、関数(メソッド) について扱う。 目次 【1】構文 【2】戻り値 【3】使用上の注意 【4】implicit 1)Implicit conversion 2)Implicit parameter(文脈引き渡し) 【5】可変長引数 【1】構文 def メソッド…

【PostgreSQL】PostgreSQL ~ テーブル情報を取得するには ~

■ はじめに システムの マイグレーションを行っているのだが、 PostgreSQL 互換の AWS Redshift のテーブル情報の一覧が欲しい とのことなので調べてみた。 目次 【1】システムが保持しているビュー 1)pg_namespace 2)pg_class 3)pg_tables 4)pg_st…