Atsushi2022の日記

データエンジニアリングに関連する記事を投稿してます

2024-02-01から1ヶ月間の記事一覧

BigQuery関連で面白かったブログ・動画 4選

1. I spent 3 hours figuring out how BigQuery inserts, deletes and updates data internally. Here’s what I found. ライトノベルのようなタイトルですね。BigQuery内部でどのようにファイルを管理しているかキレイな図で紹介してくれてます。 データを挿…

BigQueryでのNULLのソート

BigQueryでORDER BY句を使用する場合、デフォルトのNULLの順序はASCかDESCで異なる。ASCの場合はNULLが最初に来るし、DESCの場合はNULLが最後に来る。 NULLS FIRST is applied by default if the sort order is ascending. NULLS LAST is applied by default…

MySQLが遅い時に参考にしたサイト一覧

概要 EmbulkでMySQLからデータを抽出しようとしたら遅かったので、関連となるトピックを色々調べた。とりあえず参考リンクだけ貼っておく。 クエリ処理の流れ (Oracle) SQLの処理 (SQL Server) SELECT ステートメントを処理する <非公式> MySQL Logical Arch…

Dataplexで外部キー制約を満たしているかのデータ品質チェック

BigQueryの外部キー制約は強制適用されないため、外部キー参照先の値(またはNULLのみ)しか入らないようにユーザー側で管理する必要がある。 そこでDataplexを使用して定期的に外部キー制約に沿った値になっているか確認できないかと考えた。 調べたところ…

BigQueryのPRIMARY KEYは強制適用されない

まったく知らなかったけど、BigQueryの主キー/外部キー制約は強制適用されない。。。 これは知らないと割と事故りそう。 わい)主キー設定したし、NULLだったらエラーになってくれるよねー。NULLが入らないから安心だな~ BigQuery)NULLでもオレ、全然いい…

BigQueryで全行削除するときはDELETEを使う

BigQueryでは全行削除するときはDELETEを使った方が良い。 Timetravelで復元もできるし、DELETEより早いし、お金もかからない。 BigQuery公式 When performing a DELETE operation to remove all the rows from a table, use TRUNCATE TABLE statement inste…

SQLでの計算量(Big O)

O(1) オーダー テーブルから任意の1行を取り出す SELECT TOP 1 * FROM table; O(log N) オーダー インデックスが張られた列に対してのWHERE句による抽出 O(log N)なので、テーブルサイズが大きくなっても、あまり時間計算量は増えない O(N) オーダー 以下の…

BigQuery、比較演算子でNULLを比較

BigQueryで、比較演算子で比較される対象のどちらかがNULLだと結果はNULLになる。以下のクエリの結果はどちらもNULLになる。 SELECT CAST(NULL AS INT64) < 1; SELECT CAST(NULL AS INT64) = CAST(NULL AS INT64); 以下の例だとNULL行と今日の日付の2行が存…

BigQueryでのDELETE-INSERTは、MERGE ~ ON FALSEで行う

BigQueryでDELETE-INSERTしたい場合、 MERGE ~ ON FALSE WHEN NOT MATCHED BY SOURCE THEN DELETE WHEN NOT MATCHED BY TARGET THEN INSERT ROW を使用すると良い。DELETE-INSERTを行えるうえ、動作も早いらしい。 ON FALSEとすることで、NOT MATCHED BY SOU…

SQLのBig Oに関するブログ記事

medium.com www.datacamp.com www.kdnuggets.com www.kdnuggets.com

BigQueryの外部テーブルでの allow_quoted_newlines オプション

BigQueryの外部テーブルでの allow_quoted_newlines オプション BigQuery で CSV ファイルから外部テーブルを作成する場合は、オプションが不足していないか確認してください。 ある日、元の CSV ファイルのフィールドの 1 つに引用符で囲まれた改行文字が含…

IntelliJの初期設定

概要 IntelliJの設定項目を忘備としてメモしておく。 主に使うのはTerraformとPythonなのでそのあたりの設定。 Git Toolboxが超便利。 設定項目 Plugins File Watchers Git ToolBox Terraform and HCL File Watchersへの設定 terraform fmt flake8(カスタム…

IntelliJでの複数カーソルによる文字列選択

概要 IntelliJで複数カーソルの使用方法を調べてみた。特に、覚えておくと重宝しそうなものに絞ってメモしておく。 覚えておきたい複数カーソル操作 キーボードを使用して現在のカーソルの上または下にカーソルを追加 Shiftを押しながら上下↑↓キーを押す そ…