本記事は「珠玉のアドベントカレンダー記事をリバイバル公開します」企画のために、以前Qiitaに投稿した記事を一部ブラッシュアップしたものになります。 はじめにみなさん、docker composeを利用しているでしょうか? 複数のdockerコンテナをまとめて立ち上げたり、環境変数を定義できたり便利ですよね。 この記事ではある程度docker composeを利用している方向けに私が便利、便利そうと感じたdocker composeの機能を挙げてみました。 docker compose cli v2を利用docker-composeではなく docker composeコマンドも利用可能になっています。 Docker Desktopでは v3.4.0から利用可能で、基本的にはコマンドの互換性あります。 ファイル監視による自動更新docker compose 2.20.0からCompose
Auto increment(自動採番)型を採用したくない場合 Auto Incrementは、データベースにおいて自動的に一意の識別子を生成するメカニズムです。通常、数値型の列が対象となり、新しいレコードが挿入されるたびにその列の値が自動的にインクリメントされます。典型的なIDですかね。 ここでは一意性の確保の話や、データ移行やバックアップのデメリットには言及せず、セキュリティとプライバシーの懸念にフォーカスして考えます。 予測可能性 Auto Increment型のIDは連番であるため、次に生成されるIDが容易に予測可能です。これにより、攻撃者がシステムの内部構造を推測し、不正アクセスを試みるリスクが高まります。 情報漏洩のリスク 連番のIDはデータベースの挿入順序を反映しているため、公開されることで企業の活動パターンやデータ生成の頻度が漏洩する可能性があります。 例) 競合他社は、公
↓↓↓↓訂正あります。↓↓↓↓ 2018/07/02に株式会社エフコード社内で行われた勉強会のスライドです。 訂正版(随時更新中): https://docs.google.com/presentation/d/15HOMfAbtdWwO48njcB8IdkN3kVAMu3wsmZo0O3S-f_4/edit?usp=sharing 専門家による資料・専門家向けの資料ではありません。自分自身で学習し、論文・文献等を読解してまとめた内容となります。間違い等あるかもしれませんが、あれば是非コメント頂ければと思います。 【訂正事項】 スライド16: 誤:たった一つのプロセスが故障しただけでも有限時間で合意できない 正:たった一つのプロセスが故障しうるだけでも有限時間で合意できない スライド20: 誤: 重要: あるschedule σ1, σ2 がdisjoint (nodeが被ってない) なら
SPAのアプリケーションで、外部のIdPを使ってOpenID Connect によるログイン機能を開発しようと考えています。IDトークンの保存先として、ブラウザのCookieかサーバーのDBに保存するかの2つの案があると思っています。調べた限り、サーバーサイドで持つべきという意見が多いように見えますが、以下のような背景がある中で開発しても、ブラウザのCookieでは持つべきなのではないのでしょうか? - IDトークン自体にも、個人の属性(氏名等)情報は無いことを確認している - サーバーサイドでIDトークンの署名検証をして、IDトークンの改ざんが無いか確認する - Http Only属性:JSによるCookieへのアクセスを防ぐため - Secure属性:流出防止のため - SameSite=strict:CSRF対策のため 結論から言えば、「どちらでもよい」となります。しかし、恐らく話は
期限の制約なく無料で提供される「Free Tier」クラウドサービスまとめ、DBaaS/BaaS/その他編(2024年版) いくつかのクラウドサービスでは、新規ユーザーに対する1年程度の無料トライアルや一定額のクーポンなどの提供だけでなく、期限の制約なくずっと無料で提供される、いわゆる「Free Tier」や「Always Free」と呼ばれるサービスが提供されています。 こうしたサービスは評価や一時的なテスト環境、あるいはホビー用途などに適しています。 本記事では期限の制約なく無料で提供されている主なクラウドサービスを、2024年版としてまとめました。(有料サービスの追加機能として無料で提供されているものは除外しています)。 ただしこれらの無料のサービスは、提供側の都合により一時的に申し込みや利用が制限されたり、提供が終了することがあります。提供側の都合に留意しつつ、良心的な範囲でご利用
PostgreSQLのマネージドサービスなどを提供しているTimescaleは、PostgreSQLで高速なベクトルデータベース機能を実現する拡張機能「Pgvectorcale」をオープンソースとして公開したことを発表しました。 大規模言語モデルを用いた生成AIの注目度が高まる中で、文章や画像、音声といったデータの特徴を数値で表現するベクトル化(もしくはエンベディング)により、大規模言語モデルで扱えるようにすることへの注目も高まってきています。 ベクトルデータベースは、このベクトル化された膨大なデータの保存や類似度の検索などが可能です。 例えば、RAG(Retrieval Augmented Generation)と呼ばれる手法により大規模言語モデルの回答に外部のデータベースから取得したデータを組み込むことができます。こうした場面でベクトルデータベースが活用されます。 高速ベクトルデータベ
Google、超高速に評価可能でポータブルな式言語「Common Expression Language」(CEL)発表 式言語とは一般に、プログラミング言語の一部やネットワークなどの構成ファイル、テンプレートファイルなどの中で、簡易な式やロジック、ポリシーなどを記述する際に使われる言語のことです。 こうした用途では、さまざまなプラットフォームに対応する移植性、起動時やプログラムの実行中に評価されることがあることから高速に評価が完了すること、安全に評価が実行できること、用途に応じて拡張しやすいこと、などが求められます。 CELは超高速に評価、ポータブル、サブセットサポート CELは正にこうした要件に対応した式言語となっており、Googleは次のような特徴があるとしています。 ナノ秒からマイクロ秒程度の高速な評価に最適化されている C++、Java、Goでサポートされるスタックによるポータブ
こんにちは。LINEヤフー株式会社で、出前館というプロダクトのサーバーサイドエンジニアをしている古田大志です。 株式会社出前館はLINEヤフーのグループ会社です。資本業務提携を結んでいて、LINEヤフーが開発などをサポートしています。 詳しくはこちらをご参照ください。(https://corporate.demae-can.co.jp/pr/news/demaecan/line.html)(外部サイト) 今回の記事では、その出前館における開発の内容を紹介させていただきます。 出前館はデリバリーサービス事業のプロダクトで、開発においてはマイクロサービスアーキテクチャを採用しています。出前館のマイクロサービスの1つに、クーポンに関するドメインの責務を持ったコンポーネントであるクーポンサービスがあります。 クーポンサービスでは、ビジネスエンハンスに伴う「非機能要件の増大」や「仕様の複雑さの肥大化
本記事は「珠玉のアドベントカレンダー記事をリバイバル公開します」企画のために、以前Qiitaに投稿した記事を改訂したものです。 はじめにPub/Sub型のメッセージングアーキテクチャを採用するにあたっては、kafkaなどのブローカーミドルウェアや、Amazon SNS、Google Cloud Pub/Subなどのマネージドサービスを利用するケースが多いかと思います。ところでPostgreSQLでも実はPub/Subができます。 すでに業務でPostgreSQLを使っていれば、新たにPub/Subブローカーを構築しなくても、疎結合なシステム間通信を簡易的に実現できます。 本記事ではこの機能の紹介と、Pub/SubクライアントをJavaで実装する場合の選択肢、考慮点を示しています。 ※実行環境はPostgreSQL 16.2とJava 21です ※データベースの文字コードはUTF-8としてい
トップ セミナー・お知らせ お知らせの記事一覧 国産LLM初、AIエージェントとして使える「KARAKURI LM 8x7B Instruct v0.1」を一般公開 ~6月20日・21日開催の AWS Summit 2024 で初披露~ カスタマーサポートDXを推進するカラクリ株式会社(東京都中央区:代表取締役CEO 小田志門、以下カラクリ)は、6月20日に国産LLMの中で初めて※1Function callingとRAGに対応した「KARAKURI LM 8x7B Instruct v0.1」を公開いたします。本対応により、「KARAKURI LM 8x7B Instruct v0.1」は様々なアプリケーションを人間に代わって操作するAIエージェント※2としての活用が可能です。そのため生成AIをビジネス実装をする際に、従来の国産モデルであれば必要だった「業界・企業特有のタスクのプログラミ
協業リテールメディアdivでデータエンジニアをしている千葉です。 本日は、先日弊社内で実施をしたAI事業本部 新人研修の一部である「データモデリング」について記載をします。 同じく講師として登壇をした yassun7010 も「データベースの歴史」について、ブログとして公開をしているため、合わせて見ていただけると嬉しいです。 ※今回の記事作成に合わせて一部加筆修正をしています。 基幹系と情報系 今回の研修では、データモデリングを扱うシステムを 基幹系 情報系 に分けて説明をしています。 というのも基幹系と情報系では、そもそもデータの扱われ方やシステムの特性が異なります。 基幹系システムではOLTPと呼ばれる処理システムになっており、オンラインでかつリアルタイムにデータを追加更新します。そのため、重要となってくるのが多くのトランザクション(処理数)を正確にさばくことです。代表例としては銀行の
こんにちは。技術部プラットフォームグループのshibatchです。プラットフォームエンジニアとして、主にSUZURIとminneをより良くするおしごとをしています。 さて私が主として携わっているSUZURIですが、2014年のサービス開始以来、一貫してHerokuを利用してきました。このたび、10年間使っていたプラットフォームを卒業し、新たにAmazon EKS(Elastic Kubernetes Service)へ移す方針に決めた経緯についてお話しします。EKSに移すという決定にするまでに多角的に検討し、時に悩みながら決定した過程について明らかにしていきます。 なお、現在プラットフォーム移設の真っ最中であり、移設の詳細な内容はこの記事に含めません。移設作業はほぼ完了に向かっており、また別途お話しする予定です。 この記事は以下の3部構成になっています。 Herokuから移行しようと思った
シングルバイナリでローカル実行可能、高速なOLAP用オープンソースDB「DuckDB 1.0」正式リリース オープンソースとして開発されているOLAP用データベース「DuckDB」が正式版となるバージョン1.0に到達したことが発表されました。 OLAP用のデータベースといえば、クライアント/サーバ方式の大規模なサーバアプリケーションが一般的ですが、DuckDBは、SQLiteのようにローカル環境上でシングルバイナリでローカル環境でも簡単に実行できる点が最大の特徴です。 SQLでクエリを記述すると同時に、Python、Java、Node.js、Rust、Go、C/C++、R、ODBCなどから呼び出せるAPIも備えており、クライアントアプリケーションに組み込むこともできます。 対応するプラットフォームはWindows(x86_64)、macOS(Intel/Apple Silicon)、Lin
MySQL/Aurora/TiDBロック入門 – 第2回ロックモニターの読み方【動画解説付】 MySQL とその互換 DB のロックやトランザクションの挙動を紹介する入門シリーズ、「第1回 トランザクション分離レベル」 では READ COMMITTED や REPEATABLE READ でどういう挙動になるか紹介しました。 第2回目の今回は MySQL InnoDB のロックモニターの読み方、使い方について解説します。MySQL のロック機構を理解するツールとして便利なのでぜひご一読ください! ★ 第1回 トランザクション分離レベル ★ 第2回 ロックモニターの読み方 ★ 第3回 ロック読み取り、共有ロックと排他ロック ★ 第4回 インテンションロック ★ 第5回 レコードロック ★ 第6回 ギャップロック ★ 第7回 ネクストキーロックと降順インデックス ★ 第8回 共有ロックで発生
デジタル情報によるデータベースはコンピュータの黎明期から構想されてきた。現代では演算能力の向上やネットワーク環境の発達を背景に、世界各地にさまざまなテーマのオンライン・アーカイブが構築、公開されている。 グラフィックデザインやタイポグラフィも例外ではない。とくに2010年代以降は20世紀のグラフィックデザインに対する歴史的な関心の高まりを受け、多種多彩なイメージアーカイブが構築されている。 そこで本記事では筆者の独断に基づいてデザイナーや学生に向け、グラフィックデザイン関係のオンライン・アーカイブを、古き良きインターネットの伝統であるリンク集というかたちで紹介していきたい。 グラフィックデザインのアーカイブは対象とするリソースの蓄積や環境という側面から、アメリカやヨーロッパの団体、機関による取り組みが先行してきた。しかし、2010年代以降には、個人や任意団体によるインディペンデントなアーカ
SNIA 1. 2. SNIA SNIA SNIA office@snia-j.org SNIA SNIA i office@snia-j.org Copyright 2024 SNIA . All rights reserved. ii 1 1 2 3 2.1 . . . . . . . . . . . . . . . . . . 3 2.2 . . . . . . . . . . . . . . 6 3 9 3.1 DAS Direct Attached Storage . . . . . . . . . . . . . 9 3.2 SAN Storage Area Network . . . . . . . . . . . . . . 10 3.3 NAS Network Attached Storage . . . . . . . . . . . . 11 3.4 . . . . . .
オラクルは、自然言語による質問からSQLクエリを生成したり、自然言語で求める機能を説明することでアプリケーションの生成まで実現する「Oracle APEX AI Assistant」(以下、APEX AI Assitant)を発表しました。 APEX AI Assistantは同社のローコード開発ツールであるOracle APEXの機能として提供されます。Orale APEXはOracle DatabaseはOracle Autonomous Databaseなどを含む同社のOracle Databaseクラウドサービスにおいて無償で利用可能です。 このAPEX AI Assistantを含むOracle APEXの新バージョンは今日から利用可能。 自然言語からSQL文を生成 Oracle APEXでデータベースアプリケーションを開発する場合、まずデータモデルを設定し、デザイナーで画面を作
Amazon Web Services ブログ SaaS 向けリレーショナルデータベースのスケーリング (Part 1: 一般的なスケーリングパターン) ビジネスが成長するにつれて、SaaS (Software as a Service) プロバイダーが直面する課題の 1 つは、テナントのエクスペリエンスをどのように維持するかです。これには、テナントベースが拡大するにつれて、許容できるパフォーマンスとレスポンスタイムを確保することが含まれます。Amazon Relational Database Service (Amazon RDS) や Amazon Aurora などのリレーショナルデータベースは、一般的に SaaS プロバイダーによって使用されています。ビジネスが成長するにつれて、データベースのスケーリング方法も決定する必要があります。 SaaS ビルダーとしての課題は、SaaS
2024年4月30日に、MySQLの新たなメジャーバージョン「MySQL 8.4.0」がリリースされました。本記事では、MySQLの新しい開発モデル「LTS」版と「Innovation Release」について紹介します。 はじめに 2024年4月30日に、MySQLの新たなメジャーバージョン(シリーズ)である「MySQL 8.4.0」がリリースされました。2018年4月にMySQL 8.0シリーズが正式リリースされて以来、実に6年ぶりのメジャーバージョン・リリースです。それまでのMySQLは概ね3年程度で新しいメジャーバージョンが公開されてきたので、今回の6年というのは、まさに「待望の」新バージョンと呼んでも差し支えないでしょう。 リリース方針の変更 MySQL 8.0シリーズが快調にリリースされ続けていた2023年7月に、今後のリリース方針の大きな変更に関するアナウンスがありました。か
DuckDB Foundationは2024年6月3日、オープンソースのインプロセス分析データベース「DuckDB」の正式リリースバージョン1.0.0(コードネーム“Snow Duck”)をリリースした。 Announcing DuckDB 1.0.0 DuckDBは高速に動作するインプロセス分析データベース。ビルドする際に外部依存関係がなく、インストールとデプロイが簡単で、ホストアプリケーション内でインプロセスで実行したり、単一のバイナリとして実行できる。Linux、macOS、Windowsや、すべての一般的なハードウェアアーキテクチャ上で実行可能で、 Python、Rに深く統合されているほか、Java、C、C++といった主要なプログラミング言語用のクライアントAPIを備えている。また豊富なSQL方言が利用可能で、CSV、Parquet、JSONなどのファイル形式で、ローカルファ
DuckDBチームは2024年6月3日(オランダ時間)、オープンソースの分析データベースシステム「DuckDB」の正式バージョン1.0.0を公開した。 DuckDBは、2018年にプロジェクトの最初のソースコードが作成された。現在のC++エンジンのコードは30万行を超える。速度、信頼性、ポータビリティ、使いやすさに重点を置いて設計されており、豊富なSQLの方言をサポートしている。サードパーティーによる拡張機能も複数構築、配布されている。 スタンドアロンのCLI(コマンドラインインタフェース)アプリケーションとして利用可能で、Python、R、Java、Wasmといったクライアントがあり、pandasやdplyrなどのパッケージと深く統合されている。 DuckDB 1.0.0の重点ポイント 関連記事 PostgreSQLの主要コントリビューター「EDB」が語る、クラウドネイティブデータベース
執筆時点でIDXを使った記事は見かけるものの、VSCodeを使ってローカルで試している日本語記事は自分はまだ見かけていないので、おそらく日本語では初の記事なんじゃないかと思います。 少なくともZennでは自分が最初の1人でした。 Firebase Data Connectとは Google I/O 2024で発表されたFirebaseの新機能です。 これを使うことで、GraphQLを介して、Cloud SQL For PostgreSQLへアクセスしデータのCRUDが可能になるようです。 Getting Start 記事執筆時点では限定公開プレビュー版なので、利用するためには限定公開プレビューへの申し込みが必要です。 申し込みはFirebaseプロジェクトの管理画面上から可能です。 ただし申し込み後すぐに使えるわけではなく、Googleさんの方で手続きをして頂いたのちに利用可能となります。
MySQL/Aurora/TiDBロック入門 – 第5回 WHERE 条件と違うロック読取り【解説動画付】 第5回は REPEATABLE READ と READ COMMITTED の分離レベルの違いによって変わったり、WHERE 条件で感じる直感的な範囲とは一致しない範囲でかかるなど、MySQL のロック読取りの挙動について解説します。 ロック読取りは実戦でよく使われている重要な手法で、細かい挙動も重要なポイントになります。動画と合わせて是非ご覧ください! ★ 第1回 トランザクション分離レベル ★ 第2回 ロックモニターの読み方 ★ 第3回 ロック読取りも SELECT は止められない ★ 第4回 INSERT を止めるインテンションロック ★ 第5回 WHERE 条件と違うロック読取り ★ 第6回 performance_schema でロックを測定 ★ 第7回 ギャップロックがあ
こんにちはSREチームの宮後(@miya10kei)です。最近、スマートホーム化にハマっていていろいろと買い漁っています🛒 N+1問題を検知するのって結構大変ですよね? 今回はDatadogを使ってN+1問題を可視化し、パフォーマンス改善につなげた話を紹介したいと思います。 ※ 2024/05/29に開催されたJapan Datadog User Group Meetup#4 でもLTしてきました🎤 speakerdeck.com N+1問題とは? N+1問題は主にデータベースへのクエリーを扱う際に出くわすパフォーマンス上の問題です。1つのクエリーでN件のデータを取得した後にそれぞれのデータに対して追加でクエリーが発行されることでパフォーマンスを大幅に低下させます。(1 + N問題と呼んだ方がしっくりくる気がしますが...🤫) 背景 この取り組みを始めた経緯は、システムへのリクエスト
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く