/// BANGBOO BLOG ///
■21/3/9 11:39PM
Treachery
[Click for image]
:||b
Comment (0)

■21/3/6 1:43PM
ZERO
[Click for image]
値段と糖質とプリン体と度数、モノによっては明らかに太る感じがしない、ゆって0じゃ無い安酒でも糖質15g位らしいので良いのがなければいつものでいいかも。それより現像ができない!!→LR再インスコ→LRよりSony謹製の方が色が良かった→元画像が暗すぎが理由→LRでノイズを追加調整(元画像に注意、14mmf1.8の使い道がなく勿体ない)
極ZERO: 138/0/0/5 ちょい高、不味い、5%で軽いが酔えなくはない、太る感じ×Asahi Off: 118/0/0/3-4 酔えない、ノンアルの亜種かフルーティで旨い〇のどごしZERO: 118/0/0/4 フルーティで旨い、軽いが酔えなくはない〇贅沢ZERO: 118/0/x/6 プリン有 6%で嬉しいが雑味がすごくある気が▲バーリアル糖質50%off緑: 85/5-10/?/4 かるくない、そもそもZEROでないが旨い◯+氷結ZEROレモン: 108/0/0/5  レモンが強く旨い、飲みやすい◎鏡月焼酎ハイ: 98/0/0/7 スッキリ高アルコール度で満足感、ドライが好きかも◯+いいちんこ下町のハイボール: 168/0/0/7 高ぇ、重い感じがする▲
 →氷結Zeroレモン>鏡月ドライのコンボが強い
イオン麻婆豆腐辛口(肉付)vs丸美屋辛口(花椒なし):丸は味穏やか、Aは塩と肉多い →Aeonのとろみ入れるの減らす、甘口は邪魔甘さで、中辛が一番いいイオン四川式(肉無)vs丸美屋大辛(花椒付):Aは高いし辛い、お口は甘め好きda
Comment (0)

■21/2/21 1:00AM
BigQuery
■GCP(Google Cloud Platform)https://console.developers.google.com/GCPを活用するスキルを問われる「Associate Cloud Engineer」インフラストラクチャの知識を問われる「Professional Cloud Architect」データと機械学習の知識を問われる「Professional Data Engineer」 マシーンラーニング:教師ありをベースにパターンを線形として認識し相似のパターンを見つける ディープラーニング:人間が把握できる次元のデータ構造ではない多次元でパターンを見つける
  線形検索みたいなもんか

■Big queryリファレンス標準SQLとレガシーSQLがある、違いは?
標準 SQL のクエリ構文  |  BigQuery  |  Google Cloud
標準 SQL への移行  |  BigQuery  |  Google Cloud
標準 SQL のデータ型  |  BigQuery  |  Google Cloud
レガシー SQL 関数と演算子  |  BigQuery  |  Google Cloud
レガシー SQL のデータ型  |  BigQuery  |  Google CloudBigQuery: クラウド データ ウェアハウス  |  Google Cloud(チュートリアルみたいな) 

BigQuery解説:https://beyondjapan.com/blog/2016/03/what-is-bigquery/クエリ処理のツリーアーキテクチャによる分散並列処理複数のサーバーに対してツリー状に拡がっていき、並列にサーバー上で同時に分散処理 ルートサーバ>intermediateサーバ>leafサーバBigQuery MLという機能を利用すると、機械学習モデルをCloud AI PlatformのTensorFlowなどに連携させ、クエリ結果を素早くAIと連携Lookerというデータ分析プラットフォームとの連携よりクエリ結果を、データ統合、変換、分析、可視化、レポーティングすることができ、非常に強力なBI
列指向型・カラム型データベース・カラムナストレージ(一般的なRDBMSでは行単位でデータが保存) 必要なカラムのデータを取得するだけでよく、またデータは圧縮できるhttps://dev.classmethod.jp/articles/google-bigquery-debut/
GCPプロジェクト>データセット>テーブル(行row列columnで普通のテーブル、ネイティブbigqueryテーブル/Googleドライブのような外部テーブル、SQLクエリによるビュー)ジョブは非同期で実行され、ステータスをポーリング(データの読み込み、データのエクスポート、データのクエリ、データのコピーなど)
クエリ(ウェブ UI、bq コマンド、BigQuery REST APIの方法がある、SQLと同じ?SELECT   title, answer_count, view_count FROM  `bigquery-public-data.stackoverflow.posts_questions` ORDER BY  view_count DESC LIMIT 10BigQueryはSELECT tag, time FROM [dataset_name.table_name_20151206]のように必要な列だけを選択した場合にはスキャンの幅を狭めることは可能ですが、LIMITやWHERE句には何を書いてもテーブルをフルスキャンしてしまう節約 Amaのs3に入れRedshift内でテーブルを分割した後にBigQuery
Hadoopでも使われていたGoogle開発のエンジンであるMapReduceは、非構造化データをプログラミングモデルを通して扱うが、巨大なテーブルの結合や巨大な出力結果のエクスポートも可能である半面、処理時間は数分間から数日に及んだ、だが、BigQueryは、あらかじめデータを構造化してBigQueryのテーブルに格納しておかねばならないが、ほとんどのクエリは数秒で完了する
サードパーティ ツール(データの読み込みや視覚化を行うツールなど)を使用して BigQuery のデータにアクセス可
パブリックデータに直でアクセスできるSELECT * FROM `bigquery-public-data.usa_names.usa_1910_2013`BigQuery の一般公開データセット  |  Google Cloud

Google Cloud SDKをインストールすればコマンドラインが使える

■標準SQL
先頭行でレガシーか宣言 #standardSQL あるいは #legacySQLバッククォートでエスケープ、プロジェクト区切りも.(ドット)、From句のカンマはCross joinで全組合せかと思われ通常通りjoinやunionを使う事配列が使える、カラム一つに配列を入れて多元的に扱えるwithで一時テーブルを作れるexceptでカラムを除外、replaceでカラムの置き換えfunctionを作って使える 標準 SQL ユーザー定義関数  |  BigQuery  |  Google Cloud分析関数over()とwindowで計算ができる
 rank() over (order by x)は下記moreのRFMに使用している地理関数とかJSON関数とか色々関数もありそうスクリプトで変数やIfやLoopが使える 標準 SQL のスクリプト  |  BigQuery  |  Google Cloud

■レガシーSQL(標準SQLを使うのが由)予約語は角かっこを使ってエスケープ、プロジェクト区切りは:集計関数で WITHIN キーワードを使用すると、レコード内の繰り返しの値が集計?FROM句のカンマは標準SQLのCross joinとは異なりUNION ALL 演算子通常のSQL処理システムとは異なり、BigQueryは繰り返しデータの処理を前提として設計。繰り返しレコードの構造を操作するクエリを記述。その方法の1つが、FLATTEN 演算子?JOINは、INNER、[FULL|RIGHT|LEFT] OUTER、および CROSS JOIN 演算子をサポート、デフォルトINNER除外できる select + from A OMIT RECORD IF COUNT(payload.pages.page_name) <= 80;TOP を使用するには、SELECT 句に COUNT(*) を含める分析関数over()とwindowで計算ができる?(標準SQLと同様?)functionを作って使える(標準SQLと同様?)
JSON等のネストをフラット化

■DDL データ定義言語ステートメントの使用  |  BigQuery  |  Google Cloudhttps://www.isoroot.jp/blog/1651/auto_incrementもdefaultもprimary keyもindexもshow create tableないのでは?CREATE TABLE IF NOT EXISTS bangboo_data.x_xxx (  `no` INT64 NOT NULL,  `user_no` INT64 NOT NULL,  `name` STRING,  `date` DATETIME,)
■データアップロード時のスキーマ指定
自動検出はFirestore、Datastore、Avro、Parquet、ORCだけ?ほぼ手動のutf-8のcsvかjsonlかを使う形コンソールで手動スキーマ指定可(jsonスキーマを張付ける)、modeは省略可でデフォはnullable、JSONスキーマファイルupはaqコマンドのみ可、ローカルからup時のコマンドとスキーマ例↓bq load --source_format=CSV mydataset.mytable ./myfile.csv ./myschema.json[  {    "description": "quarter",    "mode": "REQUIRED",    "name": "qtr",    "type": "STRING"  },  {    "description": "total sales",    "mode": "NULLABLE",    "name": "sales",    "type": "FLOAT"  }]なお一旦Google Cloud Storageに放り込んでからやると高速 BigQueryにデータをバッチでインポートする - Qiita
COUNT DISTINCTだが、BigQueryでは概算値が返ってくる??。正確な値が必要な場合は、GROUP EACH BYとCOUNT(*)を組み合わせるhttps://www.buildinsider.net/web/bigquery/01

■BigQuery機能
///クエリ結果を別テーブルに書き込む
その他>クエリの設定>クエリ結果の宛先テーブルを設定する
BigQueryではSELECT結果を他テーブルにInsert / テーブル洗い替えなどができる - コード日進月歩 (hateblo.jp)
クエリ結果の書き込み  |  BigQuery  |  Google Cloud

///パラメータ(変数)を使う--parameter=min_count:INT64:250SELECT word FROM `prj.ds.t` WHERE AND count >= @min_countパラメータ化されたクエリの実行  |  BigQuery  |  Google Cloud

///*を受ける_TABLE_SUFFIXを使う(複数テーブルだとunion allになる)SELECT year FROM `bigquery-public-data.ds.gsod19*`WHERE _TABLE_SUFFIX BETWEEN '29' and '35'ワイルドカード テーブルを使用した複数テーブルに対するクエリ  |  BigQuery  |  Google Cloud

///時間のパラメータを使う
select * from mytable_{run_time-1h|"%Y%m%d"}実行時間run_time(UTC)から1時間引いた日→mytable_20180214クエリのスケジューリング  |  BigQuery  |  Google Cloud

///動的にテーブル名を指定してcreate table
パラメータや変数や_TABLE_FUFFIXだけでは難しい。変数はテーブル名とは解釈されない、_table_fuffixはselect分のfrom句に入れwhere句で内容を指定するがcreate分は無理、execute immediateを用いるDECLARE t STRING;SET t = (SELECT CONCAT('x_emp_at', FORMAT_DATE("%Y%m%d", DATE_ADD(CURRENT_DATE(), INTERVAL 1 DAY))));EXECUTE IMMEDIATE format('CREATE OR REPLACE TABLE `%s` AS SELECT * FROM `prj.bangboo_data.x_employee`', t);
ScheduledQueryでは出力テーブルの指定が可能でテーブル指定例:table001_{run_time-1h|"%Y%m%d"}でOK、なおSQL内にはrun_timeが使用できない
///既存のテーブルをコピー(CREATE OR REPLACE TABLEもあり)CREATE TABLE IF NOT EXISTS bangboo_data.x_employee_copy (  `no` INT64 NOT NULL,  `name` STRING,) asselect * from `prj.bangboo_data.x_employee`標準 SQL のクエリ構文  |  BigQuery  |  Google Cloudデータ定義言語ステートメントの使用  |  BigQuery  |  Google Cloud

///timestampとdatetime
datetime型カラムにはCURRENT_DATETIME()、timestamp型カラムにはCURRENT_TIMESTAMP()を使う
 timestampはUTC、datetimeはローカル的で地域指定ができる
 直近3分
 SELECT * FROM `aaa.ds.tbl111`
 WHERE `date` > DATETIME_SUB(CURRENT_DATETIME(), INTERVAL 3 MINUTE)

///パーティション
パーティション分割テーブルのクエリ  |  BigQuery  |  Google Cloud
 事前に作っておくかクエリ結果から作る→途中からではあまり意味がない
WHERE PARTITIONDATE BETWEEN '2021-01-01' AND '2021-01-02'
 --PARTITIONTIME BETWEEN TIMESTAMP('2021-01-01') AND TIMESTAMP('2021-01-02')

///Job kill
CALL BQ.JOBS.CANCEL('job_id')
CALL BQ.JOBS.CANCEL('project_id.job_id')

ジョブIDの取得
SELECT
 project_id,
 job_id,
 user_email,
 creation_time,
 start_time,
 --query, total_slot_ms
FROM `region-us`.INFORMATION_SCHEMA.JOBS_BY_PROJECT
 --`region-us`.INFORMATION_SCHEMA.JOBS_BY_USER
 --`region-us`.INFORMATION_SCHEMA.JOBS_BY_FOLDER
 --`region-us`.INFORMATION_SCHEMA.JOBS_BY_ORGANIZATION
WHERE state != "DONE"
 --state = "RUNNING"
 --state = "PENDING"
AND user_email = 'my@email.com'
AND project_id = 'paa'
AND start_time < TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 3 MINUTE)
AND total_slot_ms > (1000 * 30)
AND PARTITIONDATE BETWEEN '2021-01-01' AND '2021-01-02'
 --PARTITIONTIME BETWEEN TIMESTAMP('2021-01-01') AND TIMESTAMP('2021-01-02')
///プログラムで使う
https://googleapis.dev/python/bigquery/latestfrom google.cloud import bigqueryclient = bigquery.Client()QUERY = ('SELECT name FROM `bigquery-public-data.usa_names.usa_1910_2013`')query_job = client.query(QUERY)rows = query_job.result()for row in rows:    print(row.name)

■IAM(Identity and Access Management) https://cloud.google.com/iam/docs/overview?hl=jahttps://cloud.google.com/iam?hl=ja
IAMベストプラクティス https://cloud.google.com/iam/docs/using-iam-securely
操作方法 https://cloud.google.com/iam/docs/how-to?hl=ja
ロール https://cloud.google.com/iam/docs/understanding-roles?hl=jahttps://www.isoroot.jp/blog/1244/https://medium.com/google-cloud-jp/gcp-iam-beginner-b2e1ef7ad9c2

//IAMの機能機械学習を使ったスマート アクセス制御の最適化デバイスのセキュリティ、IP アドレス、リソースタイプ、日時などの属性に基づいて、リソースに対するきめ細かいアクセス制御ポリシー権限の認可、解除、委任に関するすべての監査証跡の履歴ユーザーとグループのプロビジョニングや管理、シングル サインオンの設定、2 要素認証プロセス(2FA)
//IAMポリシー
IDをGroup(●●部)にアサイン Members(Group等)にRoles(●●役)をアサイン  MembersとはグループやドメインやID(Googleユーザアカウント、サービスアカウント) Roles(●●役)にPermissions(権限)を付与
ロールは作成ができ●●世話役みたいな感じか
permissionsは権限で「resourcemanager.projects.get」とかで付与する
 個人や無料アカだと組織がない?→フォルダが作成できない?
 組織がないとグループが作成できない→グループがないとIDにRoleを付与するしか
フォルダは組織ツリー状でリソース管理、グループはその人の集まりで部課で権限管理?
ポリシーはMSのGPOみたいものも組み込みで存在する
サービスアカウントはAPI用、人が使うことは想定されていない

//リソース
階層:Organization > Folders > Project > Resource(Google Cloud services)
割り当て:日や分に対してのデータ量の上限等を設定
必要以上に権限を付与しない組み込みロールが多い、改変してロールを作るか権限はサービス名.リソース.動詞という命名規則検証:該当ユーザがproject-idにアクセスできるか?https://console.cloud.google.com/logs?project=project-id

(More)
Comment (0)

Navi: 1 | 2 | 3 | 4  >
-Home
-Column [122]
-Europe [9]
-Gadget [72]
-Web [106]
-Bike [3]

@/// BANGBOO BLOG ///